第6章
- 单词
- emissive 自发光
- specular 高光反射
- diffuse 漫反射
- ambient 环境光
- 函数
- saturate(x) 将x限制在[0,1]范围
- reflect (i,n) 求反射光方向 。i入射方向,光源指向表面。n法线方向
- 光照模型
-
漫反射光照模型(兰伯特):
- 入射光的颜色 x 材质的漫反射系数 x max (0,法线方向 x 光源方向)
- 入射光颜色 使用Lighting.cginc里的_LightColor0.rgb
- 材质漫反射,用Properties定义,在外部配置
- 光源向量 使用Lighting.cginc里的_WorldSpaceLightPos0
- 法线向量和光源向量需要归一化,且需要处于同一坐标系下
-
漫反射光照模型(半兰伯特):
- 入射光的颜色 x 材质的漫反射系数 x ((法线方向 x 光源方向) x 0.5+0.5)
-
高光反射模型
- 入射光的颜色 x 材质的高光反射系数 x max(0,视角方向 x 反射光方向)的光泽度次幂
- 光泽度,用Properties定义,在外部配置
- 反射光用reflect来求得
- 入射方向用_WorldSpaceLightPos0,方向是表面指向光源。使用reflect函数时需要取反
- 视角方向可以用_WorldSpaceCameraPos来求,需要减去顶点的世界坐标
-
Blinn-Phong光照模型
- 入射光的颜色 x 材质的高光反射系数 x max(0,法线方向 x h)的光泽度次幂
- h = normalize(视角方向 + 光照方向)
-