漫反射
两者差异
逐顶点光照在一些细分较高的模型中会出现马赛克的感觉,逐像素光照效果会相对平滑一些,但是这两者的背光面没有明暗变化,看起来会像平面。
逐顶点&逐像素&半兰伯特效果对比
高光反射
整体来说Blinn-Phong会更符合现实情况
一些可以方便操作的内置函数
o.worldNormal = mul(v.normal,(float3x3)unity_WorldToObject);
可以替换为
o.worldNormal = UnityObjectToWorldNormal(v.normal);
fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);
可替换为
fixed3 worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldPos));
fixed3 viewDir =normalize(_WorldSpaceCameraPos.xyz - i.worldPos.xyz);
可替换为
fixed3 viewDir = normalize(UnityWorldSpaceViewDir(i.worldPos));