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

Merge pull request #99 from fuzhenn/patch-1

fix typo in glsl
This commit is contained in:
Meow J
2018-03-01 15:50:54 -05:00
committed by GitHub

View File

@@ -194,7 +194,7 @@ float G = GeometrySmith(N, V, L, roughness);
```glsl
vec3 nominator = NDF * G * F;
float denominator = 4 * max(dot(N, V), 0.0) * max(dot(N, L), 0.0) + 0.001;
float denominator = 4.0 * max(dot(N, V), 0.0) * max(dot(N, L), 0.0) + 0.001;
vec3 specular = nominator / denominator;
```
@@ -304,7 +304,7 @@ void main()
kD *= 1.0 - metallic;
vec3 nominator = NDF * G * F;
float denominator = 4 * max(dot(N, V), 0.0) * max(dot(N, L), 0.0) + 0.001;
float denominator = 4.0 * max(dot(N, V), 0.0) * max(dot(N, L), 0.0) + 0.001;
vec3 specular = nominator / denominator;
// add to outgoing radiance Lo
@@ -371,4 +371,4 @@ void main()
<br>
- 首先是球体的生成主流的球体顶点生成有两种方法作者源码采用的是UVSphere方法 IcoSpher方法可以参考[这里](http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html)
<br>
- 对于贴图的PBR来说我们需要TBN矩阵做坐标转换(切线空间-> 世界空间 或者 世界空间 -> 切线空间,参考 法线贴图 章节。)。这有两种方法一种是在片段着色器中使用叉乘计算TBN矩阵(作者采用的方法)另外一种是在根据顶点预计算TBN然后VAO中传入TBN矩阵理论上来说后者会比较快(但是比较麻烦),不过在译者的实际测试中两者速度差距不大。
- 对于贴图的PBR来说我们需要TBN矩阵做坐标转换(切线空间-> 世界空间 或者 世界空间 -> 切线空间,参考 法线贴图 章节。)。这有两种方法一种是在片段着色器中使用叉乘计算TBN矩阵(作者采用的方法)另外一种是在根据顶点预计算TBN然后VAO中传入TBN矩阵理论上来说后者会比较快(但是比较麻烦),不过在译者的实际测试中两者速度差距不大。