首页 > 技术文章 > Shaderlab -chapter7

Jaysonhome 2020-08-18 22:02 原文

半勃兰特光照模型
本质 结果范围 -1~1变为0~1。


Shader "Unlit/First"
{ 
	//1 属性
	Properties {
		//_MainTex("MainTex",2D)= "White" {};
		_Color ("color",Color) = (1,1,1,1)
	}
	//2 子Shader
	SubShader{
		//3 Pass
		Pass{
			//4设置渲染状态和标签
			Tags{ "Queue" = "Transparent" "LightMode"="ForwardBase"}
			//5 开始CG代码片段
			CGPROGRAM
			//1 该代码片段的编译指令
			#pragma vertex vert
			#pragma fragment frag 
			//2 include光照变量
			#include "Lighting.cginc"
			//sampler2D _MainTex;

			//3 声明变量和结构体
			float4 _Color;
			struct a2v{
				float4 vert: POSITION;
				fixed3 normal:NORMAL;
			};
			struct v2f{
				float4 pos:SV_POSITION;// SV-system value表示是光栅化后的坐标
			};

			//4函数实现
			//顶点着色器
			v2f vert(a2v v){
				v2f o;
				o.pos = mul(UNITY_MATRIX_MVP, v.vert);
				return o;	
			}

			//片元着色器
			fixed4 frag(v2f i):SV_TARGET0 // SV-system value表示是光栅化后的..
			{
				return fixed4(_Color.rgb,1);
			}
	
			ENDCG
		}
	}
	//6 备用
	FallBack "DIFFUSE"
}

推荐阅读