常见的光照模型有以下几种
- Lambert(兰伯特)
- Half Lambert(半兰伯特)
- Phong
- Blinn Phong
Lambert(兰伯特)
粗糙的物体表面向各个方向等强度地反射光的现象叫作漫反射,产生这种现象的表面体称为理想漫反射体(Lambert 反射体)。
公式
漫反射Diffuse = 平行光颜色 * max(0, 平行光方向·法线方向)
漫反射Diffuse = 平行光颜色 * max(0, cosθ)
教程
Half Lambert(半兰伯特)
Half Lambert 基于Lambert模型,是为了让整体趋向更亮,减少暗部区域
公式
漫反射Diffuse = 平行光颜色 * (平行光方向·法线方向 * 0.5 + 0.5)
漫反射Diffuse = 平行光颜色 * (cosθ * 0.5 + 0.5)
教程
Phong
物理世界的某些物体看起来并不会像 Lambert 光照模型描述的那样简单。比如光滑的金属表面被光照射时,某一点处会有很强的反射光(肉眼可见的光斑)。这是因为在接近镜面反射角的某个区域内,反射了入射光的大部分光强,这种现象称作镜面反射(高光反射)
在镜面反射中相对于漫反射增加了一个观察角度,Phong 光照模型就是基于光照的方向和用户的视角方向进行计算的
公式
高光反射Specular = 直射光 * pow(max(0, cosθ), 高光反射参数)
θ = 反射光方向和视野方向的夹角
教程
Blinn Phong
Blinn 是基于Phong模型,一种高效计算和模拟高光的方式,它是通过视角方向和光线方向构成的半角向量完成的。BlinnPhong 光照模型则是混合和了 Lambert 的漫反射和 Blinn 计算高光的模式,渲染有时比 Phong 高光更柔和、更平滑,此外它的处理速度相当快
公式
Specular = 直射光 * pow(max(0, cosθ), 高光反射参数)
θ = 法线和h的夹角
h = 平行光与视野方向的平分线
教程
- 本文固定链接: http://www.u3d8.com/?p=2650
- 转载请注明: 网虫虫 在 u3d8.com 发表过