光照模型:
自发光,漫反射,高光组成最常见的光照模型。
自发光:shader中无需自己计算可以是用系统api 获取到 :UNITY_LIGHTMODEL_AMBIENT
漫反射:
公式: diffuse = Kd * lightColor * max(dot(N, L), 0)
其中:
Kd是材质的漫反射颜色,这里感觉可以理解为物体的自发光的颜色,如果是白色(1,1,1,1)不用特殊处理。
lightColor是入射漫反射光的颜色,灯光的颜色。
N是规范化的表面法向量,法向量垂直于物体表面,90度。
L是规范化的从顶点到光源的向量。理解为: 物体的每个顶点与光源形成的向量,因为每个顶点都会参与光照计算。
dot(N,L) 该点的法线和该点灯光方向的点积, 几何意义:N·L=|N|*|L|*cosθ,推导公式 当相互垂直是cos90度=0,结果是该点没有光照,则是黑色的。这里只有环境光的颜色。

这篇博客主要介绍了Unity中的光照模型,包括自发光、漫反射和高光的计算原理。自发光可以通过UNITY_LIGHTMODEL_AMBIENT获取;漫反射遵循特定公式,涉及材质的漫反射颜色、灯光颜色和法向量;高光计算有两种方式:冯氏计算法和Blinn-Phong模型,后者简化了反射方向的计算。
最低0.47元/天 解锁文章
1019

被折叠的 条评论
为什么被折叠?



