Per-Pixel模式用于高分辨率模型(数字艺术)和低分辨率模型(像素艺术),在这些模型中您需要与其他环境最大程度地兼容并且需要极其清晰的纹理。
所以我们决定实现per-pixel绘画。
请注意,此模式下的深度绘制仅支持normal map的实时生成,而不是实际绘制的置换,但基于此信息,可以导出displacement map和normal map。
我们首先要讨论的是per-pixel绘画。它在 v3 周期的第一次迭代中被引入3DCoat 。著名的3DCoat V2 使用微顶点绘制。
在这种方法中,每张脸(只允许四边形)都表示为 N x M 顶点的补丁(每张脸的 N 和 M 可能不同)。
每个顶点都有颜色和空间坐标,因此允许任何类型的位移。但是,这种方法有局限性,因为很难编辑非四边形面的网格;将补丁投影到纹理会导致质量损失,因此很难import纹理、编辑和export,因为导出后的纹理看起来有点模糊。
以下是这项技术的基本要点:
•Painting不是在顶点上执行,而是直接在纹理上的像素上执行。看起来 2D 纹理上的每个像素都表示为 3D 空间中的一个点。
• 每个像素都包含任意数量的颜色、不透明度、法线位移和光泽度层。
• 每一层都可以与前一层混合,使用常见且众所周知的颜色和置换混合操作。
• 3D 空间中的每个纹理点在per-pixel表示中都有其邻居。这很重要,因为它允许在模型上绘画并执行非本地操作,例如使用画笔进行模糊和锐化。
• 一些操作在 3D 空间中执行,如绘画、填充和应用曲线,而其他操作在 2D 投影中执行,如涂抹。这一切对用户来说都是透明的。
• 大多数操作(可选)不仅可以在对象的可见侧执行,也可以在不可见侧执行,例如在表面上应用曲线、填充和绘制环、矩形和多边形。
• 与其他应用程序的交换变得快速,并且没有质量损失,您可以在管道的任何阶段使用3DCoat ,进行最后的润色或执行完整的纹理。
• 您可以importnormal map并将其用作纹理绘制的参考。也可以更改normal map;您可以应用一些平滑(而不是在接缝处)或淡化某些区域。
• 纹理上的无缝绘画和平滑:该技术可用于任何类型的纹理、低多边形或高多边形。您可以编辑从 32 x 32 到 8192 x 8192 的纹理(如果您有 1GB 或更多的显存)。它可用于广泛的应用,从手机图形到需要巨大纹理的高端游戏项目和电影。该技术支持平铺、自相交和镜像纹理,没有任何问题。总之,per-pixel绘制相对于微顶点绘制的优点列表如下:
• 比微顶点绘制快得多。
• 支持平铺、自相交和镜像UV集(微顶点绘画仅支持非重叠纹理)。
• 比微顶点方法占用更少的内存。
• 提供良好的绘画精度,没有任何额外的模糊。与微顶点绘画相比,唯一的缺点是per-pixel绘画不支持矢量位移,仅支持法向位移。有时这使它成为一个关键点,所以我们保留了per pixel和微顶点两种方法。例如,使用微顶点方法在烘焙的体素雕塑上绘画可以得到更好的结果。
per-pixel绘画相对于投影绘画的优势:
• 可以对模型背面的像素进行操作,例如填充、模糊和应用整体效果。
•Painting质量不取决于物体到相机的距离。
• 更精确的绘画效果;你所看到的就是你得到的。与空间中通常的纹理绘画相比,关键优势在于可以模糊画笔下的像素,因为每个像素都有其邻居。