surface shader自定义光照模型

本文深入探讨如何在Unity中使用Surface Shader自定义光照模型,通过控制表面着色器的数学逻辑来实现独特的光照效果,适合游戏开发和图形编程爱好者学习。
摘要由CSDN通过智能技术生成
Shader "Custom/BasicDiffuse"
{
	Properties{
		_EmissiveColor("Emissive Color", Color) = (1, 1, 1, 1)
		_AmbientColor("AmbientCOlor", Color) = (1, 1, 1, 1)
		_MySliderValue("This is a slider", Range(0, 10)) = 2.5
		_RampTex("RampTex", 2D) = "white"{}
	}
	SubShader{
		Tags{"RenderType" = "Opaque"}
		LOD 200
		CGPROGRAM
		//#pragma surface surf Lambert
		//自定义光照模型
		#pragma surface surf BasicDiffuse	
		

		float4 _EmissiveColor;
		float4 _AmbientColor;
		float _MySliderValue;
		sampler2D _RampTex;

		struct Input
		{
			float2 uv_RampTex;
		};

		void surf(Input IN, inout SurfaceOutput o) {
			float4 c;
			c = pow((_EmissiveColor + _AmbientColor), _MySliderValue);
			o.Albedo = c.rgb;
			o.Alpha = c.a;

		}
		inline float4 LightingBasicDiffuse(SurfaceOutput s, fixed3 lightDir,half3 viewDir, fixed atten) {
			//兰伯特光照模型
			//float difLight = max(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值