*BaseVertex和gl_VertexID

pal*_*e8x 7 opengl glsl

我已经浏览了规范和OpenGL论坛,但实际上并没有理解这一点:

是否*BaseVertex应该将绘图命令的版本添加到GLSL变量中gl_VertexID?在它工作时,gl_VertexID包含从添加到它ELEMENT_ARRAY_BUFFER之前的边界取得的索引basevertex.

所以,我的问题是:这是正确的行为吗?我认为gl_VertexID应该包含用于获取顶点的索引.

dat*_*olf 5

是的,这是正确的行为.BaseVertex的使用场景是,您只需要切换这一个值,而不是使用gl*Pointer函数将缓冲区偏移调整到顶点数组中.

我们的想法是,您可以将多个网格(模型文件)中的数据加载到单个VBO中,而无需调整索引.