一个简单的顶点/片元着色器

一个简单的顶点/片元着色器

  • 顶点/片元着色器的结构

参考资料: Unity Shader 入门精要 冯乐乐著 第5章开始Unity Shder 学习之旅 P101

顶点/片元着色器的结构

在Unity 中,Unity Shader 大致包含以下Shader 、SubShader 、Properties 、Pass 等语义块。

Shader "Custom/test_shader_light"
{
    Properties
    {
      //1、声明了一个属性
	   _Color ("Color Tint",Color) =(1.0,1.0,1.0,1.0)
    }
    SubShader
    {
		Pass{
	
			CGPROGRAM

			//2、编译指令,它们将告诉Unity ,哪个函数包含了顶点着色器的代码,哪个函数包含了片元着色器的代码
			#pragma vertex vert		
			#pragma fragment frag

			//1、在Unity 中,必须要有变量名与Properties 中定义的的属性名保持一致
			fixed4 _Color;

			//顶点着色器的代码,它将模型空间的点转换到裁剪坐标系中。
			 float4 vert(float4 v:POSITION):SV_POSITION{
				return UnityObjectToClipPos(v);
			 }

			 //片元着色器的代码,直接使用定义的Color 属性
			 fixed4 frag():SV_Target{				
				return _Color;
			 }       
			ENDCG
		}
    }
    FallBack "Diffuse"
}

一个简单的顶点/片元着色器_第1张图片

你可能感兴趣的:(Unity,Shader)