![]() |
1
4
你需要明白
在3D图形中,通常需要将两个或多个顶点放置在同一位置,但具有不同的法线、颜色或纹理坐标。这就是立方体的情况-立方体通常只有8个角,但所有这些角都连接3条边,每条边都有不同的法线,所以这就是为什么你看到的所有示例立方体都有24个顶点的原因。 事实上,立方体非常类似于球体,具有非常简单的几何结构,球体上的每个顶点都只有一条法线,并且顶点周围的照明是平滑的。在立方体中,需要将每一侧着色为平面,因此构建该一侧的所有顶点都需要相同的法线。 如果将立方体视为6个不同的四边形,并创建所有具有独立顶点的四边形的话,可能更容易理解。 |
![]() |
2
0
可以使用传递几何体着色器来解决此问题。 几何体着色器接受一个形状并输出另一个形状(可以是相同类型)。在您的情况下,它应该只输出与输入相同的三角形。它还应计算正常值并将其发送给FS 在此处查找VS、GS和FS的代码: https://community.khronos.org/t/calculate-normals-in-vertex-shader/71573/4 有关几何着色器的详细信息,请查看此处的“可视化法线向量”: https://learnopengl.com/Advanced-OpenGL/Geometry-Shader |
|
user3186555 · WebGL颜色约定-我使用哪种以及为什么? 7 年前 |
![]() |
Elias · 在webgl中生成文本纹理:Alpha不透明 7 年前 |
![]() |
x2dragunov2x · 每帧绘制一个持久三角形[重复] 7 年前 |
![]() |
Elias · webgl 2d将两个透明纹理叠加在一起 7 年前 |