AOV 读取和 AOV 写入着色器

AOV 写入着色器

AOV 写入着色器可用于将浮点型、整型、向量或颜色数据写入自定义 AOV。

有两种方法可以使用 AOV 写入着色器:

全局 AOV 着色器

全局 AOV 着色器是在进行常规曲面着色后要求值的一组着色器。使用全局 AOV 着色器时,您可以添加着色器以写入特定 AOV,而无需修改应用于形状的原始着色器树。这些全局 AOV 着色器也可以针对大气和背景上下文运行。

全局 AOV 着色器会在 Arnold 渲染选项中列出。在 ass 文件中如下所示:

options
{
 outputs 2 1 STRING
  "RGBA RGBA defaultArnoldFilter/gaussian_filter defaultArnoldDriver/driver_exr.RGBA"
  "ao RGBA defaultArnoldFilter/gaussian_filter defaultArnoldDriver/driver_exr.RGBA"
  aov_shaders "defaultArnoldRenderOptions/aov_write_rgba_util"
}

aov_write_rgba
{
 name defaultArnoldRenderOptions/aov_write_rgba_util
 aov_input aiUtility1
 aov_name "util"
}

utility
{
 name aiUtility1
 shade_mode "ambocc"
 overlay_mode "polywire"
}

不同的 Arnold 插件提供了不同的方法来设置全局 AOV 着色器。在 Maya 中,只需将着色器添加到自定义 AOV,MtoA 会自动插入所需的 AOV 写入着色器:

在其他 Arnold 插件(例如 Houdini、3ds Max 以及 Cinema 4d 和 Katana)中,必须将 AOV 着色器连接到 Arnold 渲染设置:

穿过 AOV 写入着色器

AOV 写入着色器具有穿过参数,您可以使用该参数将其插入到着色树中。例如,下面是 C4DtoA 中的一个 AOV 写入 RGB 着色器。在美景 AOV 中,仍使用标准曲面着色器进行着色,以及使用工具着色器自定义 AOV。

此处用到的 Arnold 节点如下所示:

polymesh
{
 name /pSphere1/pSphereShape1
 shader "writeRgba1"
}

aov_write_rgba
{
 name writeRgba1
 passthrough aiStandardSurface2
 aov_input utility1
 aov_name "util"
}

utility
{
 name utility1
 shade_mode "ambocc"
 overlay_mode "polywire"
}

standard_surface
{
 name aiStandardSurface2
 base 0.5
 base_color 0.103779204 0.59212029 0.850649357
 specular_roughness 0
 specular_IOR 1.51999998
 specular_anisotropy 0.5
 transmission_depth 1
 coat 1
 coat_roughness 0
}

AOV 写入参数

穿过

允许在着色器网络中进行并行求值。

AOV 输入 (aov_input)

要写入 AOV 的输入值。

AOV 名称 (aov_name)

AOV 的名称。

混合不透明度 (blend_opacity)

对于透明曲面,此参数控制是只将第一个曲面写入 AOV,还是将所有透明曲面的值混合在一起。

AOV 读取着色器

AOV 读取着色器可用于从内置 AOV(例如内置 N AOV)读取浮点型、整型或颜色数据。另外,AOV 读取着色器还可用于重新设置内置 AOV 的格式,例如,在烘焙到纹理时输出从内置 N AOV 派生的法线贴图。AOV 读取着色器不支持 LPE AOV(例如 RGBA、direct_diffuse 和镜面反射)。

AOV 名称 (aov_name)

AOV 的名称。