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 写入着色器具有穿过参数,您可以使用该参数将其插入到着色树中。例如,下面是 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_input)
要写入 AOV 的输入值。
AOV 名称 (aov_name)
AOV 的名称。
混合不透明度 (blend_opacity)
对于透明曲面,此参数控制是只将第一个曲面写入 AOV,还是将所有透明曲面的值混合在一起。
AOV 读取着色器可用于从内置 AOV(例如内置 N AOV)读取浮点型、整型或颜色数据。另外,AOV 读取着色器还可用于重新设置内置 AOV 的格式,例如,在烘焙到纹理时输出从内置 N AOV 派生的法线贴图。AOV 读取着色器不支持 LPE AOV(例如 RGBA、direct_diffuse 和镜面反射)。
AOV 名称 (aov_name)
AOV 的名称。