glVertexAttribPointer stride GL_INVALID_VALUE opengl 3.3

时间:2016-08-19 12:01:19

标签: c++ opengl

我遇到的问题与this question中描述的类似,但从未得到过回答。基本上当我打电话时

glVertexAttribPointer

stride

大于此确切值:640。引发了OpenGL GL_INVALID_VALUE错误。根据{{​​3}},可以在一个案例中提出这样的恐怖:

  

如果步幅为负,则生成GL_INVALID_VALUE。

这显然不是我的理由。

在OpenGL 4.4中,根据documentation

指定最大值并设置为GL_MAX_VERTEX_ATTRIB_STRIDE

对于最大顶点跨度,旧版本的OpenGL(在我的情况下为3.3)中是否存在某个幻数?该函数是否有任何其他原因可以引发GL_INVALID_VALUE

1 个答案:

答案 0 :(得分:1)

  

对于最大顶点跨度,旧版本的OpenGL(在我的情况下为3.3)中是否存在某个幻数?

旧的版本?没有。实施没有给予拒绝使用任何步幅。只要它是正数或零,实施就必须允许它。

  

此函数是否有任何其他原因可以引发GL_INVALID_VALUE?

是:硬件无法处理。如果您只获得GL 3.3,那么您的硬件已经很老了。所以它的下限可能比2048的4.4要求低。

现在很明显,实现不应该发出错误,除非规范说它可以。但是遵守规范从来就不是NVIDIA实施的主要目标......