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曲面细分的核心之一。