From 0eb75a5ddc8773620384fe162e28c361059e3de3 Mon Sep 17 00:00:00 2001 From: Fu Zhen Date: Wed, 28 Feb 2018 14:32:13 +0800 Subject: [PATCH] fix typo in glsl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正了两个GLSL中的小错误,整数会导致GLSL编译出错 --- docs/07 PBR/02 Lighting.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/07 PBR/02 Lighting.md b/docs/07 PBR/02 Lighting.md index 04adff8..03f1e4b 100755 --- a/docs/07 PBR/02 Lighting.md +++ b/docs/07 PBR/02 Lighting.md @@ -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()
- 首先是球体的生成,主流的球体顶点生成有两种方法,作者源码采用的是UVSphere方法, IcoSpher方法可以参考[这里](http://blog.andreaskahler.com/2009/06/creating-icosphere-mesh-in-code.html)
- - 对于贴图的PBR来说,我们需要TBN矩阵做坐标转换(切线空间-> 世界空间 或者 世界空间 -> 切线空间,参考 法线贴图 章节。)。这有两种方法,一种是在片段着色器中使用叉乘计算TBN矩阵(作者采用的方法);另外一种是在根据顶点预计算TBN然后VAO中传入TBN矩阵,理论上来说后者会比较快(但是比较麻烦),不过在译者的实际测试中两者速度差距不大。 \ No newline at end of file + - 对于贴图的PBR来说,我们需要TBN矩阵做坐标转换(切线空间-> 世界空间 或者 世界空间 -> 切线空间,参考 法线贴图 章节。)。这有两种方法,一种是在片段着色器中使用叉乘计算TBN矩阵(作者采用的方法);另外一种是在根据顶点预计算TBN然后VAO中传入TBN矩阵,理论上来说后者会比较快(但是比较麻烦),不过在译者的实际测试中两者速度差距不大。