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

Update 09 Geometry Shader.md

去除重复段落
This commit is contained in:
ryosga
2022-05-23 10:37:37 +08:00
committed by Gary Wang
parent 93f165d356
commit 518c27de3d

View File

@@ -281,8 +281,6 @@ out vec3 fColor;
因为片段着色器只需要一个(插值的)颜色,发送多个颜色并没有什么意义。所以,<var>fColor</var>向量就不是一个数组,而是一个单独的向量。当发射一个顶点的时候,每个顶点将会使用最后在<var>fColor</var>中储存的值,来用于片段着色器的运行。对我们的房子来说,我们只需要在第一个顶点发射之前,使用顶点着色器中的颜色填充<var>fColor</var>一次就可以了。 因为片段着色器只需要一个(插值的)颜色,发送多个颜色并没有什么意义。所以,<var>fColor</var>向量就不是一个数组,而是一个单独的向量。当发射一个顶点的时候,每个顶点将会使用最后在<var>fColor</var>中储存的值,来用于片段着色器的运行。对我们的房子来说,我们只需要在第一个顶点发射之前,使用顶点着色器中的颜色填充<var>fColor</var>一次就可以了。
因为片段着色器只需要一个已进行了插值的颜色传送多个颜色没有意义。fColor向量这样就不是一个数组而是一个单一的向量。当发射一个顶点时为了它的片段着色器运行每个顶点都会储存最后在fColor中储存的值。对于这些房子来说我们可以在第一个顶点被发射对整个房子上色前只使用来自顶点着色器的颜色填充fColor一次
```c++ ```c++
fColor = gs_in[0].color; // gs_in[0] 因为只有一个输入顶点 fColor = gs_in[0].color; // gs_in[0] 因为只有一个输入顶点
gl_Position = position + vec4(-0.2, -0.2, 0.0, 0.0); // 1:左下 gl_Position = position + vec4(-0.2, -0.2, 0.0, 0.0); // 1:左下
@@ -495,4 +493,4 @@ void main()
尽管我们的纳米装现在看起来像是一个体毛很多而且带着隔热手套的人,它能够很有效地帮助我们判断模型的法线是否正确。你可以想象到,这样的几何着色器也经常用于给物体添加<def>毛发</def>(Fur)。 尽管我们的纳米装现在看起来像是一个体毛很多而且带着隔热手套的人,它能够很有效地帮助我们判断模型的法线是否正确。你可以想象到,这样的几何着色器也经常用于给物体添加<def>毛发</def>(Fur)。
你可以在[这里](https://learnopengl.com/code_viewer_gh.php?code=src/4.advanced_opengl/9.3.geometry_shader_normals/normal_visualization.cpp)找到源码。 你可以在[这里](https://learnopengl.com/code_viewer_gh.php?code=src/4.advanced_opengl/9.3.geometry_shader_normals/normal_visualization.cpp)找到源码。