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

OpenSubdiv.OPENSUBDIV_VERSION.Osd.GLStencilTableSSBO

Osd.GLStencilTableSSBO是OpenSubdiv库中的一个类,用于存储Stencil表数据,并使它们可用于细分环节中的数据查询和更新。

使用方法

创建Stencil表

要创建Osd.GLStencilTableSSBO对象,需要调用其构造函数,并传递Stencil表的大小和OpenGL的上下文环境。

Osd::GLStencilTableSSBO *stencilTable = new Osd::GLStencilTableSSBO(numStencils, glCtx);

更新Stencil表数据

要更新Stencil表中的数据,可以使用SetStencil()方法,其中参数faceIndex表示要更新的面的索引,depth表示要更新的Stencil的深度值,mask表示可执行的位掩码。

stencilTable->SetStencil(faceIndex, depth, mask);

查询Stencil表数据

要查询Stencil表中的数据,可以使用GetStencil()方法,其中参数faceIndex表示要查询的面的索引。

const Osd::Stencil stencil = stencilTable->GetStencil(faceIndex);

清空Stencil表数据

要清空Stencil表中的数据,可以使用Clear()方法。

stencilTable->Clear();

销毁Stencil表

要销毁Osd.GLStencilTableSSBO对象,可以使用其析构函数。

delete stencilTable;

API文档

Osd.GLStencilTableSSBO::Osd.GLStencilTableSSBO()

Osd.GLStencilTableSSBO类的构造函数,用于创建Stencil表对象。

Osd::GLStencilTableSSBO *stencilTable = new Osd::GLStencilTableSSBO(numStencils, glCtx);

参数:

  • numStencils:Stencil表的大小。
  • glCtx:OpenGL的上下文环境。

Osd.GLStencilTableSSBO::~Osd.GLStencilTableSSBO()

Osd.GLStencilTableSSBO类的析构函数,用于销毁Stencil表对象。

delete stencilTable;

void Osd.GLStencilTableSSBO::Clear()

清空Stencil表。

stencilTable->Clear();

const Osd::Stencil& Osd.GLStencilTableSSBO::GetStencil(int faceIndex) const

获取指定面的Stencil数据。

const Osd::Stencil stencil = stencilTable->GetStencil(faceIndex);

参数:

  • faceIndex:面的索引。

返回值:

  • stencil:指定面的Stencil数据。

void Osd.GLStencilTableSSBO::SetStencil(int faceIndex, int depth, unsigned int mask)

设置指定面的Stencil数据。

stencilTable->SetStencil(faceIndex, depth, mask);

参数:

  • faceIndex:面的索引。
  • depth:Stencil的深度值。
  • mask:可执行的位掩码。