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

Merge pull request #95 from fuzhenn/patch-1

add texture links in Normal Mapping.md
This commit is contained in:
Meow J
2018-02-22 18:49:52 -05:00
committed by GitHub

View File

@@ -45,7 +45,7 @@ vec3 rgb_normal = normal * 0.5 + 0.5; // 从 [-1,1] 转换至 [0,1]
这会是一种偏蓝色调的纹理你在网上找到的几乎所有法线贴图都是这样的。这是因为所有法线的指向都偏向z轴0, 0, 1这是一种偏蓝的颜色。法线向量从z轴方向也向其他方向轻微偏移颜色也就发生了轻微变化这样看起来便有了一种深度。例如你可以看到在每个砖块的顶部颜色倾向于偏绿这是因为砖块的顶部的法线偏向于指向正y轴方向0, 1, 0这样它就是绿色的了。
在一个简单的朝向正z轴的平面上我们可以用这个diffuse纹理和这个法线贴图来渲染前面部分的图片。要注意的是这个链接里的法线贴图和上面展示的那个不一样。原因是OpenGL读取的纹理的y或V坐标和纹理通常被创建的方式相反。链接里的法线贴图的y或绿色元素是相反的你可以看到绿色现在在下边如果你没考虑这个光照就不正确了译注如果你现在不再使用SOIL了那就不要用链接里的那个法线贴图这个问题是SOIL载入纹理上下颠倒所致它也会把法线在y方向上颠倒。加载纹理把它们绑定到合适的纹理单元然后使用下面的改变了的像素着色器来渲染一个平面
在一个简单的朝向正z轴的平面上我们可以用[这个diffuse纹理](https://learnopengl.com/img/textures/brickwall.jpg)和[这个法线贴图](https://learnopengl.com/img/textures/brickwall_normal.jpg)来渲染前面部分的图片。要注意的是这个链接里的法线贴图和上面展示的那个不一样。原因是OpenGL读取的纹理的y或V坐标和纹理通常被创建的方式相反。链接里的法线贴图的y或绿色元素是相反的你可以看到绿色现在在下边如果你没考虑这个光照就不正确了译注如果你现在不再使用SOIL了那就不要用链接里的那个法线贴图这个问题是SOIL载入纹理上下颠倒所致它也会把法线在y方向上颠倒。加载纹理把它们绑定到合适的纹理单元然后使用下面的改变了的像素着色器来渲染一个平面
```c++
uniform sampler2D normalMap;