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
中查找该片段的数据。以上是Osd.CLPatchTable
的技术文档,该类是实现Bezier曲面细分的核心之一。