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

OpenSubdiv.OPENSUBDIV_VERSION.Far.LimitStencilTable

概述

OpenSubdiv.OPENSUBDIV_VERSION.Far.LimitStencilTable是OpenSubdiv库中的一个类,用于计算控制顶点在子图(patch)上的权重(weight)。

功能

该类的功能是计算子图中每个顶点的权重,并在经过迭代处理后,返回一个大小为(numVertices * maxCoefficients)的数组,存储在coefficientsBuffer中。

构造函数

Far::LimitStencilTable::LimitStencilTable(
    Far::StencilTable const & vertexStencils,
    int numVertices, int numWeights,
    int const * sizes,
    int const * offsets,
    int ** basisIndices,
    float ** limitValues,
    int const * indices,
    float const * weights,
    int const * sizesPacked,
    int const * offsetsPacked,
    int maxCoefficientsPerVertex,
    bool includeNeighbors)
  • vertexStencils是输入的StencilTable对象
  • numVertices是控制顶点的数量
  • numWeights是每个控制顶点在子图中的权重数量
  • sizes是指向每个控制顶点权重数量的指针
  • offsets是指向每个控制顶点权重起始位置的指针
  • basisIndices是指向每个控制顶点所关联的基函数的指针数组
  • limitValues是指向控制顶点上的限制值的指针数组
  • indices是指向StencilTable索引的指针
  • weights是指向StencilTable权重的指针
  • sizesPacked是指向紧凑(packed)的控制顶点权重数量的指针
  • offsetsPacked是指向紧凑的控制顶点权重起始位置的指针
  • maxCoefficientsPerVertex是每个控制顶点最多允许的权重数量
  • includeNeighbors是一个布尔值,表示是否包括相邻控制顶点中的权重

成员函数

int GetNumControlVertices() const
  • 返回控制顶点数量。
int GetMaxNumCoefficients() const
  • 返回每个控制顶点最多允许的权重数量。
int GetOffset(int vertex) const
  • 返回控制顶点vertex对应的权重起始位置。
int GetSize(int vertex) const
  • 返回控制顶点vertex对应的权重数量。
int const * GetSizes() const
  • 返回指向控制顶点权重数量数组的指针。
int const * GetOffsets() const
  • 返回指向控制顶点权重起始位置数组的指针。
int const * GetSizesPacked() const
  • 返回指向紧凑的控制顶点权重数量的指针。
int const * GetOffsetsPacked() const
  • 返回指向紧凑的控制顶点权重起始位置的指针。
int const * GetBasisIndices() const
  • 返回指向每个控制顶点所关联的基函数的指针。
float const * GetLimitValues() const
  • 返回指向每个控制顶点上的限制值的指针。
int const * GetIndices() const
  • 返回指向StencilTable索引的指针。
float const * GetWeights() const
  • 返回指向StencilTable权重的指针。
int GetVertexStencilIndex(int index) const
  • 返回StencilTable中index对应的控制顶点编号。
int FindVertexWeightOffset(int vertex, int index) const
  • 返回控制顶点vertex在权重数组中的偏移量。
int FindVertexWeightSize(int vertex) const
  • 返回控制顶点vertex在权重数组中的权重数量。

参考文献