第六章光照模型

漫反射

在这里插入图片描述
在这里插入图片描述
两者差异
逐顶点光照在一些细分较高的模型中会出现马赛克的感觉,逐像素光照效果会相对平滑一些,但是这两者的背光面没有明暗变化,看起来会像平面。

逐顶点&逐像素&半兰伯特效果对比
在这里插入图片描述

高光反射

在这里插入图片描述
整体来说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));

猜你喜欢

转载自blog.csdn.net/weixin_45972052/article/details/122480651