Ptex

Ptex(每面纹理化)是由Walt Disney Animation Studios开发的一种纹理贴图系统,可以替代传统的纹理贴图方法。Ptex通过消除美术师手动创建UV贴图的需求,解决了与传统纹理贴图相关的各种问题。

使用Ptex,几何图形的每个面都有自己独特的纹理。这样就可以动态更改各个组面孔上纹理的分辨率。

Ptex文件包含每面纹理和面/边缘邻接数据以及几何元数据,这对于预览纹理和检查它们是否对给定几何有效非常有用。

视频:  快速浏览一下使用Ptex项目视频,了解如何在其中创建和使用Ptex项目Mari
该视频显示了使用Mari 3。即使Mari 4个工作空间不同,工作流程保持不变。要查看主要的UI差异,请参见Mari 3.3与4.0

Ptex支持

UV补丁是根据艺术家创建的UV贴图映射到3D几何区域的2D纹理。除了使用传统的UV贴图之外, Mari还支持Ptex。使用Ptex,由于没有与模型关联的明确UV,因此UV贴片不再是有效的概念。结果,紫外线斑块已被Ptex面的紫外线图集取代。

当一个新的Mari项目加载无紫外线.obj文件或.ptx (Ptex)文件包含几何图形,该几何图形的每个面都分配有一个纹理,然后,每个纹理都分配给UV图集的未使用区域。

这些面部纹理的堆积是按照大小递减的顺序进行的,因此,具有不同纹理分辨率的相邻面部在UV地图集中可能在空间上不连贯。因此,在UV视图中绘画没有逻辑意义。

目前,Ptex支持Mari包括:

开始使用紫外线不足的新项目.obj.ptx文件(包含几何元数据)

(可选)分配在.obj归档自己的Ptex布局

任意大小和形状的多边形.obj档案

指定面孔的均匀或世界空间的texel密度纹理分辨率

在3D视图中绘制到Ptex几何体上

调整所选Ptex面纹理的大小,从1x1(三角形为2x2)一直到8192x8192

创建共享Ptex面部纹理分辨率的新通道

将频道导出到.ptx文件,并可以选择包含几何元数据和面/边邻接
信息

输入.ptx文件进入拓扑等效的通道

从中创建新的几何图形版本时,可以在多个Ptex几何图形中保留涂料.obj文件,只要它们在拓扑上是等效的

用于Ptex项目创建,按面操作以及导入/导出功能的Python绑定。请参阅中的Python HTML文档Python > API了解更多信息

允许在导入时调整面部纹理的大小并转换数据格式。

局限性MariPtex的GPU预览

MariPtex面部纹理存储的实现针对面部调整大小的灵活性和GPU的渲染预览性能。与UV贴图不同,Ptex纹理存储中不一定要保持3D空间中面的位置。作为此实现的结果,当GPU操作需要跨面采样并且相邻面驻留在纹理内存中时,可能会观察到预览伪像。

例如,当对意外的面部纹理进行采样时,使用相对较大的采样内核的着色器可能会遇到一些预览渲染伪像。

在导航场景时,由于面部纹理在生成的Mip映射纹理中的混合(用于改善GPU性能),也可能会观察到伪影。当使用许多小脸部纹理时,这一点可能会更加明显。

注意:  这些工件仅影响GPU加速的预览,不会出现在导出的纹理数据文件中。