osg.DrawElementsIndirectCommand是OpenSceneGraph中用于绘制索引数组的类,在OpenGL中经常使用的glDrawElementsIndirect函数可以调用该类来进行绘制。
DrawElementsIndirectCommand(
GLuint count = 0,
GLuint instancecount = 1,
GLuint firstindex = 0,
GLuint basevertex = 0,
GLuint baseinstance = 0
);
GLuint getCount() const
返回绘制索引数组的元素数量。
void setCount(GLuint count)
设置绘制索引数组的元素数量。
GLuint getInstanceCount() const
返回实例数据的数量。
void setInstanceCount(GLuint instancecount)
设置实例数据的数量。
GLuint getFirstIndex() const
返回在缓冲区中的第一个元素的索引。
void setFirstIndex(GLuint firstindex)
设置在缓冲区中的第一个元素的索引。
GLuint getBaseVertex() const
返回基准顶点的索引。
void setBaseVertex(GLuint basevertex)
设置基准顶点的索引。
GLuint getBaseInstance() const
返回基准实例数据的索引。
void setBaseInstance(GLuint baseinstance)
设置基准实例数据的索引。
osg.DrawElementsIndirectCommand常常用于绘制大型模型的索引数组。在绘制时,可以使用glDrawElementsIndirect函数调用该类来进行绘制。
例如:
osg::ref_ptr<osg::DrawElementsIndirectCommand> command = new osg::DrawElementsIndirectCommand(24, 1, 0, 0, 0);
glDrawElementsIndirect(GL_TRIANGLES, GL_UNSIGNED_SHORT, command.get());