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

OpenSubdiv.OPENSUBDIV_VERSION.Osd.Entry

OpenSubdiv.OPENSUBDIV_VERSION.Osd.Entry 是一个用于存储顶点和稀疏顶点数据的类。

成员变量

  • int numVertices:存储顶点数量。
  • int numValues:存储稀疏顶点数量。
  • int *sparselyValidValuesIdx:存储稀疏顶点的有效索引列表。
  • int *sparselyInvalidValueIdx:存储稀疏顶点的无效索引列表。
  • float *vertexBuffer:存储顶点数据。
  • float *valueBuffer:存储稀疏顶点数据。

成员函数

  • void SetNumVertices(int numVerts):设置顶点数量。
  • void SetNumValues(int numValues):设置稀疏顶点数量。
  • int GetNumVertices() const:获取顶点数量。
  • int GetNumValues() const:获取稀疏顶点数量。
  • float* GetVertexBuffer() const:获取顶点数据的指针。
  • float* GetValueBuffer() const:获取稀疏顶点数据的指针。
  • int* GetSparselyValidValueIndices() const:获取有效的稀疏顶点索引列表的指针。
  • int* GetSparselyInvalidValueIndices() const:获取无效的稀疏顶点索引列表的指针。

使用示例

#include <opensubdiv/osd/vertexDescriptor.h>

OpenSubdiv::Osd::Entry entry;

entry.SetNumVertices(3);
entry.SetNumValues(1);

float *vbuffer = entry.GetVertexBuffer();
vbuffer[0] = 0;
vbuffer[1] = 1;
vbuffer[2] = 2;

float *valBuffer = entry.GetValueBuffer();
valBuffer[0] = 1.0;

int *validValIndices = entry.GetSparselyValidValueIndices();
validValIndices[0] = 1;

int *invalidValIndices = entry.GetSparselyInvalidValueIndices();
invalidValIndices[0] = 2;

本文档参考 OpenSubdiv 官方文档编写,若有更改或错误之处敬请谅解。