1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-23 04:35:28 +08:00

Update 01 Advanced Lighting.md

This commit is contained in:
jckcoenf
2019-11-14 09:29:36 +08:00
committed by GitHub
parent 189b0a67e3
commit 41d1d08faf

View File

@@ -21,7 +21,7 @@
![](../img/05/01/advanced_lighting_over_90.png) ![](../img/05/01/advanced_lighting_over_90.png)
现在问题就应该很明显了。左图中是我们熟悉的冯氏光照中的反射向量,其中$\theta$角小于90度。而右图中视线与反射方向之间的夹角明显大于90度这种情况下镜面光分量会变为0.0。这在大多数情况下都不是什么问题,因为观察方向离反射方向都非常远。然而,当物体的镜面光分量非常小时,它产生的镜面高光半径足以让这些相反方向的光线对亮度产生足够大的影响。在这种情况下就不能忽略它们对镜面光分量的贡献了。 现在问题就应该很明显了。左图中是我们熟悉的冯氏光照中的反射向量,其中$\theta$角小于90度。而右图中视线与反射方向之间的夹角明显大于90度这种情况下镜面光分量会变为0.0。这在大多数情况下都不是什么问题,因为观察方向离反射方向都非常远。然而,当物体的反光度非常小时,它产生的镜面高光半径足以让这些相反方向的光线对亮度产生足够大的影响。在这种情况下就不能忽略它们对镜面光分量的贡献了。
1977年James F. Blinn在冯氏着色模型上加以拓展引入了<def>Blinn-Phong</def>着色模型。Blinn-Phong模型与冯氏模型非常相似但是它对镜面光模型的处理上有一些不同让我们能够解决之前提到的问题。Blinn-Phong模型不再依赖于反射向量而是采用了所谓的<def>半程向量</def>(Halfway Vector),即光线与视线夹角一半方向上的一个单位向量。当半程向量与法线向量越接近时,镜面光分量就越大。 1977年James F. Blinn在冯氏着色模型上加以拓展引入了<def>Blinn-Phong</def>着色模型。Blinn-Phong模型与冯氏模型非常相似但是它对镜面光模型的处理上有一些不同让我们能够解决之前提到的问题。Blinn-Phong模型不再依赖于反射向量而是采用了所谓的<def>半程向量</def>(Halfway Vector),即光线与视线夹角一半方向上的一个单位向量。当半程向量与法线向量越接近时,镜面光分量就越大。