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

OpenSubdiv.OPENSUBDIV_VERSION.Sdc.Crease

OpenSubdiv是Pixar专门开发的一款基于离散曲面离散化算法的开源库,Sdc.Crease是其中一个重要的模块,用于处理曲面上的折痕。

了解Sdc.Crease

在离散曲面上,折痕是由四条或更多条边的连接形成的,这些边构成了可设置权重的Crease Edge。在Sdc.Crease中,Edge权重的默认值为0,表示曲面是光滑的,当Edge权重为非零时,该边上的顶点将被冻结,并且该边两侧顶点的平均值将不再相等,从而形成折痕。Crease Edge的值可以在建立拓扑时手动设定,也可以根据需要动态调整。

使用Sdc.Crease

Sdc.Crease库提供了一组API来设置Crease Edge的值和查询Edge的信息。在计算曲面离散化前,需要首先创建一个Sdc.Crease对象,并设置每个Crease Edge的值:

Sdc::Crease crease(0); //创建一个Crease对象
crease.SetEnabled(true); //启用Crease
crease.SetVertexSharpness(vertexID, sharpness); //设置Vertex的Sharpness值
crease.SetEdgeSharpness(edgeID, sharpness); //设置Edge的Sharpness值

之后,在构建拓扑的时候需要调用SetPtexIndex等函数,以告知Sdc.Crease相应边的Sharpness值。

使用Sdc.Crease库计算曲面离散化后,可通过Crease算法获取Crease Edge相关信息:

Sdc::Crease crease(0); //创建一个Crease对象
crease.SetEnabled(true); //启用Crease
//使用Crease算法获取Crease Edge相关信息

总结

通过使用Sdc.Crease,可以轻松在曲面上构建折痕,并在计算曲面离散化后获取Crease Edge的相关信息。对于需要在曲面上进行折痕处理的应用场景,Sdc.Crease是不可或缺的工具。