【发布时间】:2014-09-04 04:16:35
【问题描述】:
假设我正在渲染一个 3d GL_TRIANGLE。该对象需要 3 个顶点才能定义:A、B、C。我将这些数据放入缓冲区并通过 glVertexAttribPointer 将其绑定到着色器。
现在我想将法线传递给着色器。对于每个三角形,应该有 1 个法线向量,但如果我尝试通过 glVertexAttribPointer 将其传递,我需要为点 A、B、C 定义相同的法线 3 次。 是否可以在 glVertexAttribPointer 中每隔 3 个其他顶点传入 1 个顶点以避免这种情况?
或者将它传递给所有顶点是否是个好主意?
【问题讨论】:
-
这不容易。如果不同属性的数组不匹配,则需要为每个属性设置单独的索引数组,以将属性分配给顶点。这是不支持的。我在这里对类似问题的回答对此进行了详细说明:stackoverflow.com/questions/25349620/….
标签: c++ opengl shader vertex-shader