1
0
mirror of https://github.com/LearnOpenGL-CN/LearnOpenGL-CN.git synced 2025-08-22 20:25:28 +08:00

docs: replace 冯氏 to 风氏

This commit is contained in:
夜轮_NachtgeistW
2024-07-22 15:53:17 +08:00
committed by Gary Wang
parent 6c4ad5ec81
commit c4b1eb0dd8
7 changed files with 33 additions and 33 deletions

View File

@@ -43,7 +43,7 @@ G缓冲(G-buffer)是对所有用来储存光照相关的数据,并在最后的
- 所有光源的位置和颜色向量
- 玩家或者观察者的位置向量
有了这些(逐片段)变量的处置权,我们就能够计算我们很熟悉的(布林-)氏光照(Blinn-Phong Lighting)了。光源的位置颜色和玩家的观察位置可以通过uniform变量来设置但是其它变量对于每个对象的片段都是不同的。如果我们能以某种方式传输完全相同的数据到最终的延迟光照处理阶段中我们就能计算与之前相同的光照效果了尽管我们只是在渲染一个2D方形的片段。
有了这些(逐片段)变量的处置权,我们就能够计算我们很熟悉的(布林-)氏光照(Blinn-Phong Lighting)了。光源的位置颜色和玩家的观察位置可以通过uniform变量来设置但是其它变量对于每个对象的片段都是不同的。如果我们能以某种方式传输完全相同的数据到最终的延迟光照处理阶段中我们就能计算与之前相同的光照效果了尽管我们只是在渲染一个2D方形的片段。
OpenGL并没有限制我们能在纹理中能存储的东西所以现在你应该清楚在一个或多个屏幕大小的纹理中储存所有逐片段数据并在之后光照处理阶段中使用的可行性了。因为G缓冲纹理将会和光照处理阶段中的2D方形一样大我们会获得和正向渲染设置完全一样的片段数据但在光照处理阶段这里是一对一映射。
@@ -222,7 +222,7 @@ void main()
光照处理阶段着色器接受三个uniform纹理代表G缓冲它们包含了我们在几何处理阶段储存的所有数据。如果我们现在再使用当前片段的纹理坐标采样这些数据我们将会获得和之前完全一样的片段值这就像我们在直接渲染几何体。在片段着色器的一开始我们通过一个简单的纹理查找从G缓冲纹理中获取了光照相关的变量。注意我们从`gAlbedoSpec`纹理中同时获取了`Albedo`颜色和`Spqcular`强度。
因为我们现在已经有了必要的逐片段变量(和相关的uniform变量)来计算布林-氏光照(Blinn-Phong Lighting),我们不需要对光照代码做任何修改了。我们在延迟着色法中唯一需要改的就是获取光照输入变量的方法。
因为我们现在已经有了必要的逐片段变量(和相关的uniform变量)来计算布林-氏光照(Blinn-Phong Lighting),我们不需要对光照代码做任何修改了。我们在延迟着色法中唯一需要改的就是获取光照输入变量的方法。
运行一个包含32个小光源的简单Demo会是像这样子的