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

Update 04 Normal Mapping.md

This commit is contained in:
小笠原 やきん
2016-07-28 11:08:10 +08:00
committed by GitHub
parent 429e1f7330
commit 056c72fc75

View File

@@ -14,7 +14,7 @@
光照并没有呈现出任何裂痕和孔洞完全忽略了砖块之间凹进去的线条表面看起来完全就是平的。我们可以使用specular贴图根据深度或其他细节阻止部分表面被照的更亮以此部分地解决问题但这并不是一个好方案。我们需要的是某种可以告知光照系统给所有有关物体表面类似深度这样的细节的方式。 光照并没有呈现出任何裂痕和孔洞完全忽略了砖块之间凹进去的线条表面看起来完全就是平的。我们可以使用specular贴图根据深度或其他细节阻止部分表面被照的更亮以此部分地解决问题但这并不是一个好方案。我们需要的是某种可以告知光照系统给所有有关物体表面类似深度这样的细节的方式。
如果我们光的视角来看这个问题是什么使表面被视为完全平坦的表面来照亮答案会是表面的法线向量。以光照算法的视角考虑的话只有一件事决定物体的形状这就是垂直于它的法线向量。砖块表面只有一个法线向量表面完全根据这个法线向量被以一致的方式照亮。如果每个fragment都是用自己的不同的法线会怎样这样我们就可以根据表面细微的细节对法线向量进行改变这样就会获得一种表面看起来要复杂得多的幻觉 如果我们光的视角来看这个问题是什么使表面被视为完全平坦的表面来照亮答案会是表面的法线向量。以光照算法的视角考虑的话只有一件事决定物体的形状这就是垂直于它的法线向量。砖块表面只有一个法线向量表面完全根据这个法线向量被以一致的方式照亮。如果每个fragment都是用自己的不同的法线会怎样这样我们就可以根据表面细微的细节对法线向量进行改变这样就会获得一种表面看起来要复杂得多的幻觉
![](http://learnopengl.com/img/advanced-lighting/normal_mapping_surfaces.png) ![](http://learnopengl.com/img/advanced-lighting/normal_mapping_surfaces.png)
@@ -409,4 +409,4 @@ mat3 TBN = mat3(T, B, N)
- [Tutorial 26: Normal Mapping](http://ogldev.atspace.co.uk/www/tutorial26/tutorial26.html)ogldev的法线贴图教程。 - [Tutorial 26: Normal Mapping](http://ogldev.atspace.co.uk/www/tutorial26/tutorial26.html)ogldev的法线贴图教程。
- [How Normal Mapping Works](https://www.youtube.com/watch?v=LIOPYmknj5Q)TheBennyBox的讲述法线贴图如何工作的视频。 - [How Normal Mapping Works](https://www.youtube.com/watch?v=LIOPYmknj5Q)TheBennyBox的讲述法线贴图如何工作的视频。
- [Normal Mapping Mathematics](https://www.youtube.com/watch?v=4FaWLgsctqY)TheBennyBox关于法线贴图的数学原理的教程。 - [Normal Mapping Mathematics](https://www.youtube.com/watch?v=4FaWLgsctqY)TheBennyBox关于法线贴图的数学原理的教程。
- [Tutorial 13: Normal Mapping](http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/)opengl-tutorial.org提供的法线贴图教程。 - [Tutorial 13: Normal Mapping](http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-13-normal-mapping/)opengl-tutorial.org提供的法线贴图教程。