效果图
顶点着色器
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.normaluv = TRANSFORM_TEX(v.normaluv, _NormalTex);
o.noiseuv = TRANSFORM_TEX(v.noiseuv, _NoiseTex);
//点到相机的方向,未归一化
o.viewDir = WorldSpaceViewDir(v.vertex);
//点到光源的方向,未归一化
o.lightDir = WorldSpaceLightDir(v.vertex);
UNITY_TRANSFER_FOG(o,o.vertex);
return o;
}
获取法线贴图、噪声贴图的uv,世界坐标下的光照向量和观察向量
像素着色器
fixed4 frag (v2f i) :