置换贴图工具非常适合添加曲面细节,相比于常规的建模方法能够节省大量时间。置换贴图与凹凸贴图的不同之处在于,它会改变几何体,因此将会得到正确的轮廓和自阴影效果。根据输入的类型,置换会以两种方式发生:浮动、RGB 和 RGBA 输入将沿法线置换,而向量输入将沿向量置换。
上面的示例显示的是一个简单平面,添加置换贴图后便呈现出看上去很不错的简单场景。
您应该确保作为基础的网格几何体有足够多的多边形,否则置换产生的低分辨率几何体与用于生成这些几何体的高分辨率网格之间可能会出现细微的差别。
请确保使用 32 位或 16 位浮点格式存储图像,而不是整数格式。整数格式将无法正常工作。这是因为整数格式不支持负像素值,而浮点置换贴图需要使用负像素值。
将“细分类型”(Subdivision Type)更改为 Catclark 或线性细分规则并增加迭代数量可提高置换质量。在此示例中,“细分迭代”(Subdivision Iterations)数量已增加到 8。
增加细分迭代数量时必须小心谨慎(每个迭代都将使几何体变为原来的四倍)。这种细分会在渲染过程中光线接触对象的边界框时发生。与增加 DCC 软件内的网格细分(此操作会向渲染器发送细分的几何体)相比,这是更好的选择。
arnold_displacement_settings
可以基于每个面或每个对象设定置换设置。但是,在置换节点的 Arnold 属性中输入的任何值将覆盖这些设置。如果在每个对象上使用多个置换着色器,由于一个对象只能有一个“边界填充”(Bounds Padding)值,因此 Arnold 会使用所有值中的最大值。自动凹凸会导致与填充相同的问题,因此只有在至少有一个置换着色器将其启用时,Arnold 才会启用它。
height
控制置换量。置换高度可以为正值或负值。此属性仅适用于法线置换。您可以使用此值来补偿导出的置换贴图和低分辨率几何体之间的任何不一致。
bounds_padding
填充定义对象边界框的扩展量,以便可以包含来自置换着色器的任何附加置换。置换将在光线第一次接触边界框时进行计算,因此将此值设置得太高会降低渲染效率。而将其设置得太低会导致置换网格被剪裁。
在 Arnold 中进行置换的正确工作流程是,先让着色器给出最终置换值,然后使用 bounds_padding 属性来偏移边界框。
zero_value
这是一个用于对置换量进行偏移的浮点值。它定义置换贴图中视作零置换的值。该值可能会因置换贴图的生成方式而有所不同。
autobump
自动凹凸可将置换贴图的高频部分置于 bump 属性中,从而无需设置很多的“细分迭代”(Subdivision Iteration)值。置换节点的 Arnold 属性中默认启用自动凹凸。
自动凹凸算法需要使用 UV 坐标来计算曲面切线。请确保您的多边形网格已应用 UV 集。
技术信息:
自动凹凸启用时,Arnold 会在置换之前创建网格所有顶点的副本(我们将其称为“参考”网格或 Pref)。如果我们以超高的细分率对多边形网格进行了细分,则在置换曲面 P 上的某个曲面点进行着色之前,在非置换曲面上可找到该点的等效 Pref,并在该 Pref 上对置换着色器进行求值,以估算 P 处的等效法线是什么。
Arnold 的自动凹凸与使用置换着色器进行凹凸贴图之间的主要区别在于,自动凹凸可以访问 Pref,而 bump2d 不能,且会在已经进行置换的点上执行置换着色器,这可能会“复合”置换量。
唯一的额外存储用于在置换之前复制 P。不会对置换贴图进行分析;Arnold 完全基于顶点在置换贴图(或程序)中所处的“位置”来对其进行置换,而不管是否碰巧“遇到”高频尖峰。
vector_displacement 向量置换
传统的置换贴图对于所有不在基础网格多边形垂直方向上发生的曲面更改均不适用。向量置换贴图可以在不同于面法线的方向上进行置换,具有更大的灵活性。向量置换使用颜色通道指定特定空间中的向量,从而以该方向和幅值来置换几何体的顶点。
简单清晰,帮助很大!
111
1212
111
✗我爱你✗ ✗我爱你✗ ✗我爱你✗ ✗我爱你✗
1111111111
6666
Windows 10 | Chrome 77.0.3829.0