1. Drawer
- [HideInInspector]:面板上隐藏
- [NoScaleOffset]:隐藏该纹理贴图的TillingOffset
- [Normal]:检查该纹理是否设为法线贴图
- [HDR]:将颜色类型设为高动态范围颜色(摄像机也要开启HDR才有效果)
- [PowerSlider(value)]:滑动条 - 对于有些参数0-1的部分很敏感,而再大没那么敏感的时候,可以用这个属性来调整滑动的手感
- [Header(value)]:标题
- [Space(value)]:空行的高度
- [Toggle]:开关,可以用变体来代替
2. 浮点数精度
- fixed:-2~2,精度1/256,可以用来表示颜色,但慎用
- half:-6000~6000,精度大概三位小数,表示一些向量、hdr的颜色是够的
- float:世界坐标位置、uv坐标
3. vertex可访问输入(都是float)
- POSITION:顶点位置
- TEXCOORD0123:UV通道1234
- NORMAL:法线方向
- TANGENT:切线方向
- COLOR:顶点色
4. vertex常用输出
- pos(CS) - float4:
o.pos = UnityObjectToClipPos(v.vertex);
- uv0 - float2 - 一般纹理UV:
o.uv0 = v.uv0;/o.uv0 = TRANSFORM_TEX(v.uv0, _Maintex);
- uv1 - float2 - LightmapUV:
o.uv1 = v.uv1;/o.uv1 = v.uv1 * unity_LightmapST.xy + unity_LightmapST.zw;
- posWS - half3:
o.posWS = mul(unity_ObjectToWorld, v.vertex);
- nDirWS/tDirWS/bDirWS - half3 - 法线切线副切线方向:
o.nDirWS = UnityObjectToWorldNormal(v.normal);
o.tDirWS = normalize(mul(unity_ObjectToWorld, float4(v.tangent.xyz, 0.0)).xyz);
o.bDirWS = normalize(cross(o.nDirWS, o.tDirWS) * v.tangent.w);
- color - fixed4/half4 - 顶点色:
o.color = v.color;
5. 函数复用
- 注意要用的函数定义要放在用之前
6. cginc库
- 创建:文件拓展名改为.cginc,加一个防止重复包含的框架:
#ifndef MY_CGINC
#define MY_CGINC
…
#endif
- 包含:#include “相对路径/MyCginc.cginc”