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

OpenSubdiv.OPENSUBDIV_VERSION.Far.StencilTableFactoryReal


OpenSubdiv.OPENSUBDIV_VERSION.Far.StencilTableFactoryReal是一个C++类,它会根据输入的网格表面数据,生成对应的Far.StencilTable。

成员函数

  • static Far::StencilTable* Create(Far::TopologyRefiner const& refiner, Far::StencilTable::StencilType type, int maxlevel)

    根据访问拓扑细分器(refiner)生成Far::StencilTable对象,并返回其指针。type参数指定为主要的stencil类型。用于计算的最大细分级别由maxlevel参数给出。

    如果输入类型被标记为STENCIL_JACOBI,则产生的stencil表将包括用于动态雅各比松弛算法的模板。如果输入类型被标记为STENCIL_GS,则将为用于逐级高斯-赛德尔算法计算的模板生成stencil表。

  • template <class T> static Far::StencilTable* Create(Far::TopologyRefiner const& refiner, Far::StencilTable::StencilType type, int maxlevel, T const& dispatcher)

在Create函数的基础上,增加dispatcher参数,提供对自定义计算的支持。

参数说明

  • refiner:访问拓扑细分器
  • type:主要的stencil类型
  • maxlevel:用于计算的最大细分级别
  • dispatcher:自定义计算的调配程序

返回值说明

  • Create函数返回生成的Far::StencilTable指针

示例

Far::TopologyRefiner refiner(*mesh, // 输入的网格数据
                              Far::TopologyRefiner::Options(options),
                              FVarLevel ? &FVarDesc : 0);

// 获取一个有限制的SizeRoutine的示例对象
OpenSubdiv::CpuStencilTableT<OpenSubdiv::Stencil, float, Color> stencilTable;

// 创建stencil表
Far::StencilTable * stencil = OpenSubdiv::Far::StencilTableFactory::Create(
    refiner, Far::StencilTable::STENCIL_JACOBI, true,
    stencilTable );

参考链接