unity shader学习 简单的顶点-片段 shader

来源:互联网 发布:反转链表 java 编辑:程序博客网 时间:2024/05/16 14:48
Shader "Custom/Simple vert fragment Shader"   //shader的名字及路径{    Properties  //属性定义    {        _MainTex("Texture", 2D) = "white" {}  //主纹理    }    SubShader //子着色器(必须有一个)    {       Pass  //Pass过程块        {            CGPROGRAM      //进入CG编程            #pragma vertex vert  //定义顶点预处理命令            #pragma fragment frag  //定义片段预处理命令            #include "UnityCG.cginc" //导入UnityCG.cginc文件 (包含Helper Function )            uniform sampler2D _MainTex;  //在CG函数中连接外部属性_MainTex(uniform 是关键字)            float4 _MainTex_ST; //纹理的缩放和偏移量            struct appdata  //定义顶点输入结构体,并绑定语义            {                float4 vertex:POSITION;    //位置坐标(x,y,z,w)                float2 texcoord:TEXCOORD0; //纹理坐标(x,y)            };            struct v2f  //定义顶点输出结构体(也是片段的输入)            {                float4 pos:SV_POSITION;                float2 uv:TEXCOORD0;            };            v2f vert(in appdata input)            {                v2f o;                o.pos = UnityObjectToClipPos(input.vertex);//将顶点坐标由物体空间变换到齐次裁剪空间                o.uv = TRANSFORM_TEX(input.texcoord, _MainTex);//纹理的缩放和偏移量                return o;            }            fixed4  frag(v2f input) :SV_Target            {                fixed4  col = tex2D(_MainTex,input.uv);//对纹理按UV坐标进行采用                return col;            }            ENDCG  //结束CG编程      }    }}

这里写图片描述

阅读全文
0 0