Shader理论(5):基本框架

前言:

本文总结记录了Shader片元着色器的基本框架,标注了每个部分的含义,在写Shader时先搭起基本框架,再根据想要效果的物理模型等填充内容。

框架:

    1 	Shader "HQY2/01"{ //路径
    2 	    Properties { //属性,出现在材质面板
    3 	        _Diffuse ("Diffuse", Color) = (1,1,1,1) //漫反射颜色
    4 	        _MainTex ("MainTex", 2D) = "white" {} //主贴图
    5 	        _Specular("Specular", Color) = (1,1,1,1) //高光反射颜色
    6 	        _Gloss("Gloss", Range(8,256)) = 20 //高光反射范围
    7 	    }
    8 	    SubShader { //针对显卡A的SubShader
    9 	            Tags {} //SubShader的标签
   10 	        Pass{
   11 	            Tags { "RenderType"="Opaque" "LightMode"="ForwardBase"} //Pass的标签
   12 	            LOD 200
   13 	            CGPROGRAM //代码片段编译指令
   14 	                #pragma vertex vert //告诉unity这个函数包含了顶点着色器的代码
   15 	                #pragma fragment frag //告诉unity这个函数包含了片元着色器的代码
   16 	                #include "Lighting.cginc" //头文件
   17 	                fixed4 _Diffuse;
   18 	                sampler2D _MainTex;
   19 	                fixed4 _Specular;
   20 	                float _Gloss;
   21 	                struct a2v{ //结构体定义顶点着色器的输入
   22 	                    float4 vertex:POSITION;
   23 	                    float3 normal:NORMAL;
   24 	                };
   25 	
   26 	                struct v2f{ //结构体定义顶点着色器的输出
   27 	                    float4 pos:SV_POSITION; //SV_POSITION语义告诉Unity,pos里包含了顶点在裁剪空间中的位置信息
   28 	                    float3 worldNormal:TEXCOORD0;
   29 	                    float3 worldPos:TEXCOORD1;
   30 	                };
   31 	
   32 	                v2f vert(a2v v){
   33 	                    v2f o; //声明输出结构
   34 	                
   35 	                    return o;
   36 	                }
   37 	
   38 	                fixed4 frag(v2f i):SV_TARGET{
   39 	                
   40 	                }        
   41 	            ENDCG //结束代码片段
   42 	        }        
   43 	    }
   44 	    FallBack "Diffuse" //若SubShader失败后用于回调的Unity Shader
	}

内容:

  1. 漫反射
  2. 高光反射
  3. 主贴图
  4. 凹凸贴图
  5. 渐变纹理
  6. 遮罩纹理
  7. 透明度测试
  8. 透明度混合
  9. 纹理动画(SpriteSheet)
  10. 顶点动画
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值