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

OpenSubdiv.OPENSUBDIV_VERSION.Bfr.VertexDescriptor

介绍

OpenSubdiv.OPENSUBDIV_VERSION.Bfr.VertexDescriptor类定义了描述顶点属性的结构,以便在OpenSubdiv处理中提供必要的信息。这个类用于描述BFR(Buffer)的结构。

成员函数

构造函数

Bfr.VertexDescriptor()

Bfr.VertexDescriptor类的默认构造函数会创建一个空的顶点描述符。

存取方法

void Clear()

这个方法会将当前的描述符清空,以便重新使用。

int GetNumVertexElements() const

这个方法返回当前描述符中定义的顶点属性数量。

VertexAttrib GetVertexAttrib(int i) const

这个方法返回指定索引的顶点属性。

VertexAttrib& AddVertexAttrib(AttribType type)

这个方法会添加一个新的顶点属性,并返回该属性的引用。

int GetAttribTypeSize(AttribType type) const

这个方法会返回指定属性类型的大小,单位是字节。

int GetAttribTypeNumComponents(AttribType type) const

这个方法会返回指定属性类型的组件数量。

内部类

struct VertexAttrib

描述单个顶点属性的结构体。

成员变量
  • AttribType type:属性类型
  • AttribDataType dataType:属性数据类型
  • int numComponents:组件数量(例如,3表示该属性是一个3D向量)
  • int offset:属性在缓冲区中的偏移量(单位:字节)

示例

OpenSubdiv::Bf.VertexDescriptor desc;
desc.AddVertexAttrib(OpenSubdiv::Bf.VERT_ATTRIB_POSITION);
desc.AddVertexAttrib(OpenSubdiv::Bf.VERT_ATTRIB_NORMAL);
desc.AddVertexAttrib(OpenSubdiv::Bf.VERT_ATTRIB_TEXCOORD);

这个例子中,我们创建了一个新的顶点描述符,并添加了三个属性:位置、法线和纹理坐标。