glVertexAttribPointer stride GL_INVALID_VALUE opengl 3.3

glVertexAttribPointer stride GL_INVALID_VALUE opengl 3.3

本文关键字:opengl stride VALUE INVALID glVertexAttribPointer GL      更新时间:2023-10-16

我遇到了与这个问题中描述的类似的问题,但从未得到回答。当我调用

glVertexAttribPointer

stride大于此确切值:640。引发OpenGL GL_INVALID_VALUE错误。根据文档,在一种情况下可以引发这样的错误:

如果stride为负值,则生成GL_INVALID_VALUE。

显然不是我的情况

在OpenGL 4.4中,根据此站点指定最大值并设置为GL_MAX_VERTEX_ATTRIB_STRIDE

是否有一定的魔术数在旧版本的OpenGL(在我的情况下3.3)的最大顶点跨距?

这个函数能引发GL_INVALID_VALUE,还有其他原因吗?

在旧版本的OpenGL(在我的情况下是3.3)中是否有一个最大顶点跨距的神奇数字?

旧版本?不。实现没有被允许拒绝你使用任何大步。只要它是正的或零,实现就必须允许它。

是否有其他原因导致该函数引发GL_INVALID_VALUE?

是:硬件无法处理。如果你只得到GL 3.3,那么你的硬件是相当旧的。因此,它可能会有一个低于4.4的2048的要求。

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