diff --git a/docs/01 Getting started/03 Hello Window.md b/docs/01 Getting started/03 Hello Window.md index 6a08bbe..b81c77d 100644 --- a/docs/01 Getting started/03 Hello Window.md +++ b/docs/01 Getting started/03 Hello Window.md @@ -32,7 +32,7 @@ int main() } ``` -首先,我们在main函数中调用glfwInit函数来初始化GLFW,然后我们可以使用glfwWindowHint函数来配置GLFW。glfwWindowHint函数的第一个参数代表选项的名称,我们可以从很多以`GLFW_`开头的枚举值中选择;第二个参数接受一个整形,用来设置这个选项的值。该函数的所有的选项以及对应的值都可以在 [GLFW's window handling](http://www.glfw.org/docs/latest/window.html#window_hints) 这篇文档中找到。如果你现在编译你的cpp文件会得到大量的 *undefined reference* (未定义的引用)错误,也就是说你并未顺利地链接GLFW库。 +首先,我们在main函数中调用glfwInit函数来初始化GLFW,然后我们可以使用glfwWindowHint函数来配置GLFW。glfwWindowHint函数的第一个参数代表选项的名称,我们可以从很多以`GLFW_`开头的枚举值中选择;第二个参数接受一个整型,用来设置这个选项的值。该函数的所有的选项以及对应的值都可以在 [GLFW's window handling](http://www.glfw.org/docs/latest/window.html#window_hints) 这篇文档中找到。如果你现在编译你的cpp文件会得到大量的 *undefined reference* (未定义的引用)错误,也就是说你并未顺利地链接GLFW库。 由于本站的教程都是基于OpenGL 3.3版本展开讨论的,所以我们需要告诉GLFW我们要使用的OpenGL版本是3.3,这样GLFW会在创建OpenGL上下文时做出适当的调整。这也可以确保用户在没有适当的OpenGL版本支持的情况下无法运行。我们将主版本号(Major)和次版本号(Minor)都设为3。我们同样明确告诉GLFW我们使用的是核心模式(Core-profile)。明确告诉GLFW我们需要使用核心模式意味着我们只能使用OpenGL功能的一个子集(没有我们已不再需要的向后兼容特性)。如果使用的是Mac OS X系统,你还需要加下面这行代码到你的初始化代码中这些配置才能起作用(将上面的代码解除注释): diff --git a/docs/05 Advanced Lighting/03 Shadows/01 Shadow Mapping.md b/docs/05 Advanced Lighting/03 Shadows/01 Shadow Mapping.md index 3bbb02b..5a3d02b 100644 --- a/docs/05 Advanced Lighting/03 Shadows/01 Shadow Mapping.md +++ b/docs/05 Advanced Lighting/03 Shadows/01 Shadow Mapping.md @@ -449,7 +449,7 @@ glTexParameterfv(GL_TEXTURE_2D, GL_TEXTURE_BORDER_COLOR, borderColor); 当一个点比光的远平面还要远时,它的投影坐标的z坐标大于1.0。这种情况下,GL_CLAMP_TO_BORDER环绕方式不起作用,因为我们把坐标的z元素和深度贴图的值进行了对比;它总是为大于1.0的z返回true。 -解决这个问题也很简单,我们简单的强制把shadow的值设为0.0,不管投影向量的z坐标是否大于1.0: +解决这个问题也很简单,只要投影向量的z坐标大于1.0,我们就把shadow的值强制设为0.0: ```c++ float ShadowCalculation(vec4 fragPosLightSpace) diff --git a/docs/05 Advanced Lighting/03 Shadows/02 Point Shadows.md b/docs/05 Advanced Lighting/03 Shadows/02 Point Shadows.md index b966361..e35cd25 100644 --- a/docs/05 Advanced Lighting/03 Shadows/02 Point Shadows.md +++ b/docs/05 Advanced Lighting/03 Shadows/02 Point Shadows.md @@ -193,10 +193,10 @@ void main() ```c++ #version 330 core in vec4 FragPos; - + uniform vec3 lightPos; uniform float far_plane; - + void main() { // get distance between fragment and light source @@ -205,7 +205,7 @@ void main() // map to [0;1] range by dividing by far_plane lightDistance = lightDistance / far_plane; - // Write this as modified depth + // write this as modified depth gl_FragDepth = lightDistance; } ``` diff --git a/docs/07 PBR/01 Theory.md b/docs/07 PBR/01 Theory.md index 724bd59..e1567ad 100644 --- a/docs/07 PBR/01 Theory.md +++ b/docs/07 PBR/01 Theory.md @@ -301,7 +301,7 @@ float GeometrySmith(vec3 N, vec3 V, vec3 L, float k) 菲涅尔方程是一个相当复杂的方程式,不过幸运的是菲涅尔方程可以用Fresnel-Schlick近似法求得近似解: $$ -F_{Schlick}(n, v, F_0) = F_0 + (1 - F_0) ( 1 - (n \cdot v))^5 +F_{Schlick}(h, v, F_0) = F_0 + (1 - F_0) ( 1 - (h \cdot v))^5 $$ \(F_0\)表示平面的基础反射率,它是利用所谓**折射指数**(Indices of Refraction)或者说IOR计算得出的。然后正如你可以从球体表面看到的那样,我们越是朝球面掠角的方向上看(此时视线和表面法线的夹角接近90度)菲涅尔现象就越明显,反光就越强: diff --git a/mkdocs.yml b/mkdocs.yml index 28ac2fd..1725859 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -50,9 +50,6 @@ pages: - 泛光: '05 Advanced Lighting/07 Bloom.md' - 延迟着色法: '05 Advanced Lighting/08 Deferred Shading.md' - SSAO: '05 Advanced Lighting/09 SSAO.md' - - 特效: - - 雾: '08 Effects/01 Fog.md' - - 卡通着色: '08 Effects/02 Toon shading.md' - PBR: - 理论: '07 PBR/01 Theory.md' - 光照: '07 PBR/02 Lighting.md'