OpenSubdiv.OPENSUBDIV_VERSION.Far.StencilTableFactory
OpenSubdiv.OPENSUBDIV_VERSION.Far.StencilTableFactory
是一个用于构建Subdivision表面的边缘标记和置换着色器的工厂,它使用FarStencilTable以执行自适应细分。
FarStencilTableFactory类
构造函数
函数名 |
描述 |
FarStencilTableFactory() |
构造一个空的“ FarStencilTableFactory ”对象。 |
方法
函数名 |
描述 |
Create(table) -> bool |
基于一个“ FarTable ”对象来创建FarStencilTable对象。如果成功,则返回True,如果失败,则返回False。 |
SetMaxLevels(levels) |
设置该“ FarStencilTableFactory ”对象允许的最大细分级别。 |
SetUseInfSharpVerts(value) |
设置该“ FarStencilTableFactory ”对象是否使用无穷远尖端以生成自适应细分。 |
FarStencilTable类
方法
函数名 |
描述 |
GetSizes(level) -> Tuple[int, int, int] |
返回给定细分级别的顶点、边缘和面的总数。 |
GetOffsets(level) -> Tuple[Sequence[int], Sequence[int], Sequence[int]] |
返回需要从顶点、边和面读取数据的偏移量。 |
示例
以下是使用FarStencilTableFactory的示例代码:
import OpenSubdiv.OPENSUBDIV_VERSION as osd
table_factory = osd.Far.StencilTableFactory()
table_factory.SetMaxLevels(3)
table_factory.SetUseInfSharpVerts(True)
far_table = osd.Far.Table()
if table_factory.Create(far_table):
print("Created FarStencilTable succesfully!")
else:
print("Failed to create FarStencilTable!")
参考