1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-23 12:45:29 +08:00

修改关于Normal Distribution Function的翻译2

This commit is contained in:
coppx
2021-12-07 09:14:08 +08:00
parent 84a681b1e5
commit d7c509abf2
3 changed files with 5 additions and 5 deletions

View File

@@ -201,9 +201,9 @@ Cook-Torrance BRDF的镜面反射部分包含三个函数此外分母部分
以上的每一种函数都是用来估算相应的物理参数的而且你会发现用来实现相应物理机制的每种函数都有不止一种形式。它们有的非常真实有的则性能高效。你可以按照自己的需求任意选择自己想要的函数的实现方法。英佩游戏公司的Brian Karis对于这些函数的多种近似实现方式进行了大量的[研究](http://graphicrants.blogspot.nl/2013/08/specular-brdf-reference.html)。我们将会采用Epic Games在Unreal Engine 4中所使用的函数其中D使用Trowbridge-Reitz GGXF使用Fresnel-Schlick近似(Fresnel-Schlick Approximation)而G使用Smith's Schlick-GGX。
### 正态分布函数
### 法线分布函数
<def>正态分布函数</def>\(D\),或者说镜面分布,从统计学上近似的表示了与某些(中间)向量\(h\)取向一致的微平面的比率。举例来说,假设给定向量\(h\)如果我们的微平面中有35%与向量\(h\)取向一致,则正态分布函数或者说NDF将会返回0.35。目前有很多种NDF都可以从统计学上来估算微平面的总体取向度只要给定一些粗糙度的参数以及一个我们马上将会要用到的参数Trowbridge-Reitz GGX
<def>法线分布函数</def>\(D\),或者说镜面分布,从统计学上近似的表示了与某些(中间)向量\(h\)取向一致的微平面的比率。举例来说,假设给定向量\(h\)如果我们的微平面中有35%与向量\(h\)取向一致,则法线分布函数或者说NDF将会返回0.35。目前有很多种NDF都可以从统计学上来估算微平面的总体取向度只要给定一些粗糙度的参数以及一个我们马上将会要用到的参数Trowbridge-Reitz GGX
$$
NDF_{GGX TR}(n, h, \alpha) = \frac{\alpha^2}{\pi((n \cdot h)^2 (\alpha^2 - 1) + 1)^2}
@@ -217,7 +217,7 @@ $$
当粗糙度很低也就是说表面很光滑的时候与中间向量取向一致的微平面会高度集中在一个很小的半径范围内。由于这种集中性NDF最终会生成一个非常明亮的斑点。但是当表面比较粗糙的时候微平面的取向方向会更加的随机。你将会发现与\(h\)向量取向一致的微平面分布在一个大得多的半径范围内,但是同时较低的集中性也会让我们的最终效果显得更加灰暗。
使用GLSL代码编写的Trowbridge-Reitz GGX正态分布函数是下面这个样子的:
使用GLSL代码编写的Trowbridge-Reitz GGX法线分布函数是下面这个样子的:
```c++
float D_GGX_TR(vec3 N, vec3 H, float a)