1.先来一段单张纹理贴图的shader示例代码:

 1 // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
 2 
 3 Shader "Custom/MyShader"{
 4 Properties{
 5     //外部可调属性
 6     _MainTex ("Main Tex", 2D) = "white" {}
 7 }
 8 SubShader
 9 {
10     //设置使用本Subshader所需要满足的渲染路径等参数,如果满足,即使用本shader
11     Tags {"Queue"="Transparent""RenderType"="Transparent"}
12     Pass
13     {
14     //设置该pass 的渲染状态和标签
15     Tags { "LightMode"="ForwardBase" }
16     //开始cg代码片段
17     CGPROGRAM
18     //该代码的编译指令, 
19     #pragma vertex vert//设置顶点着色器的函数名称
20     #pragma fragment frag//设置片段着色器的函数名称
21     #include "Lighting.cginc"//包含库文件
22 
23     struct a2v {
24         float4 vertex : POSITION;//当前要渲染的顶点坐标
25         float4 texcoord : TEXCOORD0;//当前要渲染的顶点的第一套纹理坐标
26     };
27             
28     struct v2f {
29         float4 pos : SV_POSITION;//
30         float2 uv : TEXCOORD0;
31     };
32     sampler2D _MainTex;
33     float4 _MainTex_ST;
34 
35     v2f vert(a2v v)
36     {
37         v2f o;
38         o.pos=UnityObjectToClipPos(v.vertex);//将顶点坐标变换到裁剪空间中
39         o.uv = TRANSFORM_TEX(v.texcoord,_MainTex);//变换uv坐标
40         return o;
41     }
42 
43     fixed4 frag(v2f i):SV_Target
44     {
45         fixed4 c = tex2D (_MainTex, i.uv);//对纹理坐标进行采样
46         return c;
47     }
48     ENDCG
49     }
50     //SubShader
51     //{
52     //    //如果不满足第一个subshader所需要的条件,那么再来检测是否满足第二subshader 的条件。    
53     //}
54     }
55 FallBack "Diffuse"
56 }
MyShader.shader

相关文章:

  • 2021-06-17
  • 2022-02-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-16
  • 2021-09-11
猜你喜欢
  • 2022-12-23
  • 2022-02-27
  • 2021-11-11
  • 2022-12-23
  • 2021-10-10
  • 2021-05-13
  • 2021-10-15
相关资源
相似解决方案