OpenGL glVertexAttribPointer正常

时间:2014-09-04 04:16:36

标签: c++ opengl shader vertex-shader

假设我正在渲染3d GL_TRIANGLE。该对象需要3个顶点才能定义:A,B,C。我将这些数据放入缓冲区并通过glVertexAttribPointer将其绑定到着色器。

现在我想将正常传递给着色器。对于每个三角形,应该有1个法向量,但如果我尝试通过glVertexAttribPointer传递它,我需要为点A,B,C定义相同的法线3次。 是否可以在glVertexAttribPointer中每隔3个顶点传入1个顶点以避免这种情况?

或者为所有顶点传递它是一个好主意吗?

1 个答案:

答案 0 :(得分:3)

  

现在我想将正常传递给着色器。对于每个三角形,应该有1个法向量

不,有3个法线。每个顶点一个。

  

是否可以在glVertexAttribPointer中每3个其他顶点传入1个顶点以避免这种情况?

不,因为顶点属性属于一起而且无法分开。

  

或者为所有顶点传递它是一个好主意吗?

当然。让每个人的生活更轻松。