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加速的预览,不会出现在导出的纹理数据文件中。