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
类提供了补丁的参数信息,可以用于在细分表面上定位和细分补丁。
此类将细分表面的顶点、边和面分解成更小的补丁,得到更具细节的表面几何形状。