OpenSubdiv.OPENSUBDIV_VERSION.Bfr
OpenSubdiv.OPENSUBDIV_VERSION.Far
OpenSubdiv.OPENSUBDIV_VERSION.Osd
OpenSubdiv.OPENSUBDIV_VERSION.Sdc
OpenSubdiv.OPENSUBDIV_VERSION.Vtr

OpenSubdiv.OPENSUBDIV_VERSION.Osd.GLVertexBuffer

Osd.GLVertexBuffer是OpenSubdiv库中实现的用于OpenGL渲染的顶点缓冲类。它提供了对OpenGL缓冲对象的封装,以方便地管理和使用缓冲。

成员变量

  • GLuint _vbo:存储顶点数据的OpenGL缓冲对象。
  • int _numElements:缓冲中存储的元素数量。
  • GLenum _dataType:缓冲中存储数据类型的枚举值。
  • int _numComponents:每个元素包含的组件数量。
  • int _stride:每个元素的字节大小。
  • int _offset:每个元素的首字节偏移量。

成员函数

  • Osd.GLVertexBuffer(int numElements, int numComponents, GLenum dataType, bool createStorage=true):构造函数,创建一个包含numElements个元素,每个元素包含numComponents个组件,数据类型为dataType的顶点缓冲。
  • ~Osd.GLVertexBuffer():析构函数,释放顶点缓冲占用的资源。
  • void updateData(const void * src, int numElements, int start=0):将src指向的数据更新到顶点缓冲中,从第start个元素开始更新numElements个元素。
  • void bindVBO():将顶点缓冲绑定到OpenGL的顶点缓冲绑定点。
  • void unbindVBO():解除顶点缓冲绑定。

使用示例

Osd::GLVertexBuffer *vertexBuffer = new Osd::GLVertexBuffer(numVertices, 3, GL_FLOAT);
vertexBuffer->updateData(vertices);

vertexBuffer->bindVBO();
//调用OpenGL渲染函数
vertexBuffer->unbindVBO();

以上代码创建了一个包含numVertices个顶点坐标的顶点缓冲,将缓冲绑定到OpenGL的顶点缓冲绑定点,并渲染该顶点缓冲中的数据。