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

OpenSubdiv.OPENSUBDIV_VERSION.Far.PatchParam

描述

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 类提供了补丁的参数信息,可以用于在细分表面上定位和细分补丁。

此类将细分表面的顶点、边和面分解成更小的补丁,得到更具细节的表面几何形状。