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

OpenSubdiv.OPENSUBDIV_VERSION.Far.LimitStencilReal

概述

OpenSubdiv是一个用于对多边形网格进行逐步细分的C++库。该库可以应用于许多3D应用程序,如数字影像和游戏引擎。Far.LimitStencilReal是OpenSubdiv库的一部分,用于计算限制范围内的细分数据。

类型定义

template <class T>
class Far::LimitStencilReal : public Far::LimitStencil<T>

成员函数

  • void Clear():清除细分数据。
  • void Resize(int numControlVertices, int numStencils):重新调整细分数据的大小。
    • numControlVertices:控制顶点的数量。
    • numStencils:限制范围内的笔刷数量。
  • void SetValue(int stencilIndex, int cvIndex, T const & value):设置笔刷和控制顶点之间的增量。
    • stencilIndex:笔刷的索引。
    • cvIndex:控制顶点的索引。
    • value:增量值。
  • void AddWithWeight(int stencilIndex, int cvIndex, T const & value, float weight):用给定权重将增量添加到笔刷和控制顶点之间。
    • stencilIndex:笔刷的索引。
    • cvIndex:控制顶点的索引。
    • value:增量值。
    • weight:权重值。
  • void Synchronize():同步细分数据。
  • Far::LimitStencilData const & GetLimitStencilData(int stencilIndex) const:获取指定笔刷的限制范围内的细分数据。
    • stencilIndex:笔刷的索引。

使用示例

// 创建LimitStencilReal对象
Far::LimitStencilReal<float> limitStencil;

// 设置细分数据的大小
int numControlVertices = 4;
int numStencils = 1;
limitStencil.Resize(numControlVertices, numStencils);

// 设置笔刷和控制顶点之间的增量
int stencilIndex = 0;
int cvIndex = 1;
float value = 0.5f;
limitStencil.SetValue(stencilIndex, cvIndex, value);

// 添加带权重的增量到笔刷和控制顶点之间
float weight = 0.2f;
limitStencil.AddWithWeight(stencilIndex, cvIndex, value, weight);

// 同步细分数据
limitStencil.Synchronize();

// 获取笔刷的限制范围内的细分数据
Far::LimitStencilData const & limitStencilData = limitStencil.GetLimitStencilData(stencilIndex);

以上是OpenSubdiv.OPENSUBDIV_VERSION.Far.LimitStencilReal的相关内容,欢迎使用OpenSubdiv库对多边形网格进行逐步细分。