赞
踩
更多标记见官方文档unity3D/Editor/Data/en/ScriptReference/MaterialPropertyDrawer.html
//定义Numbers(数值)和Sliders(区间值)
name ("display name", Range (min, max)) = number
name ("display name", Float) = number
name ("display name", Int) = number
//定义Colors(颜色)和Vectors(向量)
//颜色表示为一个四维向量,对应颜色的RGBA通道;每个分量取值为[0,1]
//向量必须是四维向量
name ("display name", Color) = (number,number,number,number)
name ("display name", Vector) = (number,number,number,number)
//定义Textures(纹理)
name ("display name", 2D) = "defaulttexture" {}
name ("display name", Cube) = "defaulttexture" {}
name ("display name", 3D) = "defaulttexture" {}
SubShader { //[Tags]标签,[RenderSeup]状态 都是可选的,如果在pass里面用的话那么将会应用于所有的pass //[RenderSeup]用来设置显卡的各种状态,例如开启混合|深度测试等等 //[Tags]是一个键值对,用来表示,subshader和渲染引擎之间的关系,告诉引擎,我该怎样,或者如何渲染对象 Tags { "RenderType" = "Opaque" "LightMode" = "ForwardBase" } LOD 100 //顶点,片元着色器的书写都会在pass里面,但是surfaceShader不需要 //surfaceShader是对片元,顶点着色器更高一层的抽象,价值在于处理光照细节 Pass { CGPROGRAM //开启CG代码段 //编译指令 #pragma vertex vert #pragma fragment frag //颜色和向量用float4 / half4 / fixed4存储,精度从高到低 //数值用float / half/ fixed存储,精度从高到低 //2D纹理 / 3D纹理 / Cubemap分别用sampler2D / 3D / CUBE存储 sampler2D _Texture; float4 _Texture_ST; float4 _Texture_TexelSize; fixed4 _Color; float4 _Vector; samplerCUBE _Cubemap; //定义了一个结构体 struct appdata//vert的输入 { float4 vertex : POSITION; float2 uv : TEXCOORD0; }; struct v2f//vert的输出 { float2 uv : TEXCOORD0; float4 vertex : SV_POSITION; }; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); return o; } fixed4 frag (v2f i) : SV_Target { return col; } ENDCG/ENDCGsampler } } //如果上面的subshader都不满足条件,就会执行下面的东西 FallBack "Diffuse" FallBack off//关闭
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。