2022年的第一个shader

Shader"UnityShaderBook/SimpleShader"
{
  SubShader
  {
    Pass
    {
        CGPROGRAM
        #pragma vertex vert // 定义顶点着色器函数为vert
        #pragma fragment frag  // 定义片元着色器函数为frag
        // 这两行是非常重要的编译指令,vert和frag分别是顶点着色器和片元着色器的函数名
        
        float4 vert(float4 v:POSITION):SV_POSITION
        {
          return UnityObjectToClipPos(v); //将顶点进行MVP矩阵变换
        }
        
        fixed4 frag():SV_Target
        {
          return fixed4(1.0,1.0,1.0,1.0);
        }
        ENDCG

    }

  }    
}

如果想要读取更多的顶点信息,需要引入结构体

Shader "Unity Shaders Book/Cha5/Simple shader Struct"
{
    SubShader
    {
        Pass
        {
            CGPROGRAM

            #pragma vertex vert
            #pragma fragment frag

            struct a2v
            {
                float4 vertex : POSITION;
                float3 normal : Normal;
                float4 texcoord : TEXCOORD0;
             };  //读取顶点的位置 法线 和第0套UV信息;
          



            float4 vert(a2v v) : SV_POSITION
            {
                return UnityObjectToClipPos(v.vertex);
            }
            fixed4 frag() : SV_Target
            {
                return fixed4(1.0, 1.0, 1.0, 1.0);
            }
            ENDCG
        }

    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容