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

OpenSubdiv.OPENSUBDIV_VERSION.Far.TopologyRefinerFactory

简介

OpenSubdiv.OPENSUBDIV_VERSION.Far.TopologyRefinerFactory 是 OpenSubdiv 库中的一个类,用于创建 FarTopologyRefiner 对象。该对象可以被用来将原始网格进行细分,生成一个细分后的网格。

方法

Create(topologyDescriptor: FarTopologyDescriptor, options: FarMeshOptions) -> FarTopologyRefiner

创建一个 FarTopologyRefiner 对象。

参数

  • topologyDescriptor:类型为 FarTopologyDescriptor,表示细分所需的拓扑数据。
  • options:类型为 FarMeshOptions,表示细分所需的附加参数。

返回值

类型为 FarTopologyRefiner,表示生成的细分网格的拓扑信息。

示例

以下示例展示了如何使用 OpenSubdiv.OPENSUBDIV_VERSION.Far.TopologyRefinerFactory 创建一个简单的细分网格拓扑信息。

import OpenSubdiv.OPENSUBDIV_VERSION as osd

# 定义一些拓扑数据,这里只给出一个简单的点云
points = [(-1, -1, 0), (-1, 1, 0), (1, 1, 0), (1, -1, 0)]

# 创建一个 FarTopologyDescriptor 对象
topologyDesc = osd.FarTopologyDescriptor()
numVertices = len(points)
for i in range(numVertices):
    topologyDesc.vertices.append(i)

# 添加连接信息
for i in range(numVertices):
    pIndex = i
    nIndex = (i+1) % numVertices
    topologyDesc.numVertsPerFace.append(2)
    topologyDesc.vertIndices.append(pIndex)
    topologyDesc.vertIndices.append(nIndex)

# 创建一个 FarTopologyRefiner 对象
options = osd.FarMeshOptions()
refiner = osd.FarTopologyRefinerFactory.Create(topologyDesc, options)

异常

该方法无法抛出异常。

参考链接

  • [OpenSubdiv] (https://graphics.pixar.com/opensubdiv/docs/far_topology_refinement.html)