首页 > 代码库 > 一个简单的贴图shader

一个简单的贴图shader

 1 Shader "Unlit/NewUnlitShader"
 2 {
 3     Properties
 4     {
 5         _Tex ("Texture", 2D) = "white" {}//外部贴图资源的导入渠道
 6     }
 7     SubShader
 8     {
 9         Tags { "RenderType"="Opaque" }
10         LOD 100
11 
12         Pass
13         {
14             CGPROGRAM
15             #pragma vertex vert
16             #pragma fragment frag
17 
18             struct appdata
19             {
20                 float4 vertex : POSITION;//顶点坐标
21                 float2 texcoord : TEXCOORD0;//某顶点的纹理坐标,注意和_Tex_ST可不一样
22             };
23 
24             struct v2f
25             {
26                 float2 uv : TEXCOORD0;//贴图坐标
27                 float4 pos : SV_POSITION;//顶点在裁剪空间中的位置信息
28             };
29 
30             sampler2D _Tex;//取和Propertiea中相同的名字来获取外部值
31             float4 _Tex_ST;//加后缀_ST获取贴图的纹理信息
32             
33             v2f vert (appdata v)
34             {
35                 v2f o;
36                 o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
37                 o.uv=v.texcoord*_Tex_ST.xy+_Tex_ST.zw;
38                 /*如果包含了UnityCG.cginc可以这样写。
39                 o.pos = UnityObjectToClipPos(v.vertex);
40                 o.uv = TRANSFORM_TEX(v.uv, _MainTex);*/
41                 return o;
42                 
43             }
44             
45             fixed4 frag (v2f i) : SV_Target
46             {
47                 fixed4 col = tex2D(_Tex, i.uv);
48                 return col;
49             }
50             ENDCG
51         }
52     }
53 }

 

一个简单的贴图shader