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

OpenSubdiv.OPENSUBDIV_VERSION.Osd.CLPatchTable

Osd.CLPatchTable是OpenSubdiv库中的一个类,用于存储所有Bezier曲面片段(clpatches)的信息。

成员变量

  • numPatches:该CLPatchTable中Bezier曲面片段的总数。
  • patches:一个指针数组,每个指针指向一个Bezier曲面片段(Osd.CLPatchDescriptor结构体)。该数组的长度等于numPatches
  • patchesIndex:一个指针数组,每个指针指向一个整数数组,表示每个Bezier曲面片段在Osd.CLComputeContext中的地址偏移量。该数组的长度等于numPatches

成员函数

  • ~CLPatchTable():析构函数。
  • GetPatchArray(patchIndex, level):返回一个Osd.CLPatchArray结构体,该结构体表示一个Bezier曲面片段及其子曲面片段在给定细分级别上的顶点编号范围。patchIndex是该Bezier曲面片段在patches数组中的索引,level是所需细分级别。
  • GetPatchIndex(patchIndex):返回指定Bezier曲面片段的地址偏移量,该偏移量可用于在Osd.CLComputeContext中查找该片段的数据。

提供支持的细分算法

  • Catmull-Clark
  • Loop
  • Bilateral
  • Modified Butterfly
  • Adaptive
  • Linear

以上是Osd.CLPatchTable的技术文档,该类是实现Bezier曲面细分的核心之一。