cs
Properties {
[Header(Texture)]
_MainTex ("RGB:颜色 A:透贴", 2D) = "white"{}
_NormTex ("RGB:法线贴图", 2D) = "bump" {}
_MaskTex ("R:高光强度 G:边缘光强度 B:高光染色 A:高光次幂",2D) ="black"{}
_MetalnessTex ("金属度遮罩",2D) ="black"{}
_EmissionMask ("自发光遮罩",2D) ="black"{}
_DiffWarpTex ("颜色Warp图",2D) ="gray"{}
_FresWarpTex ("菲涅尔Warp图",2D) ="gray"{}
_CubeMap ("环境图",Cube) ="_Skybox"{}
}
1 基础颜色
cs
half3 baseCol = var_MainTex.rgb;
2 透明贴图(黑透白不透)
cs
half opacity = var_MainTex.a;
3 高光强度
cs
half specInt = var_MaskTex.r;
4 轮廓光强度
很像AO,但又处理的比较剧烈,叠加了一些纹理信息
cs
half rimInt = var_MaskTex.g;
5 高光染色
越黑,染的色越多;越白,染的色越少。
金属部分希望染的很多。
cs
half specTint = var_MaskTex.b;
6 高光次幂 / 光滑度
金属稍微粗糙,想让他的高光扩大。
布料粗糙
皮革牙齿光滑
cs
half specPow = var_MaskTex.a;
7 金属度
越白,金属度越高,越黑,金属度越低
cs
half metallic = var_MetalnessTex.r;
8 自发光
cs
half emitInt = var_EmissionMask.r;
9 菲涅尔项
cs
half3 var_FresWarpTex = tex2D(_FresWarpTex, ndotv);
half3 fresWarp = var_FresWarpTex;
10 菲涅尔项-颜色
理论上。这个图会先乘以一个颜色,详情见官方
cs
return fresWarp.r;
11 菲涅尔项-边缘光
边缘光很实,过度比较硬
cs
return fresWarp.g;
12 菲涅尔-高光
除了cubemap的高光,还想加上fresnel样子的高光
cs
return fresWarp.b;
13 环境球
这个光照成分对于金属很重要
cs
half3 var_CubeMap = texCUBElod(_CubeMap, float4(vrDirWS, lerp(8.0, 0.0, var_MaskTex.a))).rgb ;
half3 cubemap = var_CubeMap;
return fixed4(cubemap,1);
14 投影
cs
half shadow = LIGHT_ATTENUATION(i);
15 漫反射RampTex
cs
uniform sampler2D _DiffWarpTex; uniform float4 _DiffWarpTex_ST;
half3 var_DiffWarpTex = tex2D(_DiffWarpTex,TRANSFORM_TEX(half2(ndotl,0.5), _DiffWarpTex));
half3 diffWarp = var_DiffWarpTex;
return fixed4(diffWarp,1);
Lambert
半Lambert