OpenSubdiv.OPENSUBDIV_VERSION.Far.PatchParam 类是 OpenSubdiv 库中的一个类,用于表示细分补丁的参数。
补丁参数包括补丁的级别、细分方式以及每个补丁的控制顶点等信息。
int _level : 补丁的级别。
Farsegment _seg : 补丁的细分方式。
int _u : 补丁在u方向上的控制顶点数量。
int _v : 补丁在v方向上的控制顶点数量。
int _vertsOffset : 处理此参数的细分表面网格的顶点偏移。
int _patchOffset : 处理此参数的细分表面网格的补丁偏移。
unsigned int _patchSize : 补丁的大小,该大小是基于细分级别计算得出的。
PatchParam()构造函数,创建一个默认的 PatchParam 对象。
PatchParam(level, seg, u, v, vertsOffset, patchOffset, patchSize)构造函数,创建一个具有给定参数的 PatchParam 对象。
参数说明:
level : 补丁的级别。seg : 补丁的细分方式。u : 补丁在u方向上的控制顶点数量。v : 补丁在v方向上的控制顶点数量。vertsOffset : 处理此参数的细分表面网格的顶点偏移。patchOffset : 处理此参数的细分表面网格的补丁偏移。patchSize : 补丁的大小。GetControlVertices()获取此补丁的所有控制顶点。
返回一个const指针,指向这个补丁的控制顶点数组。
GetLevel()获取此补丁的级别。
返回此补丁的级别。
GetNumControlVertices()获取此补丁的控制顶点数目。
返回此补丁的控制顶点数目(即行数和列数的积)。
GetPatchSize()获取此补丁的大小。
返回此补丁的大小,即补丁在细分级别为0时的大小。
IsRegular()判断此补丁是否为正则补丁。
如果此补丁为正则补丁,则返回 true ;否则返回 false。
operator==()比较两个 PatchParam 对象是否相等。
如果两个 PatchParam 对象具有相同的参数值,则返回 true;否则返回 false。
operator!=()比较两个 PatchParam 对象是否不相等。
如果两个 PatchParam 对象具有不同的参数值,则返回 true;否则返回 false。
OpenSubdiv.OPENSUBDIV_VERSION.Far.PatchParam 类提供了补丁的参数信息,可以用于在细分表面上定位和细分补丁。
此类将细分表面的顶点、边和面分解成更小的补丁,得到更具细节的表面几何形状。