镜像球/灰色球着色器

镜像球/灰色球着色器

介绍

在视觉效果行业中,通常会在集上拍摄镜像球(也称为“灯光探测”),以及灰色球的照片以用于照明参照。

理想情况下,通过多次曝光拍摄照片,并使用工具1 将它们组合成单个高动态范围图像,并/或将镜像球/灰色球展开到球形环境贴图中。

但是,通常很难重新获取球形贴图的正确方向,以便该方向与用于渲染 CG 场景的摄影机相匹配。此外,镜像球/灰色球的单个照片中含有某些角度的不理想数据,这些角度是不希望在最终渲染中看到的。

这些着色器旨在简化以下特殊情况:已经从将从其渲染最终图像的精确摄影机角度拍摄镜像球/灰色球。

它仅利用 mental ray 摄影机坐标空间并将镜像球/灰色球应用于此空间,因此反射方向将始终“粘滞”到渲染摄影机。

镜像球

此着色器用作环境着色器,因为它基于光线方向进行查找。它将正确的方向映射到镜像球的点上,并检索其颜色。

declare shader "mip_mirrorball" (
        color  texture "texture",
        scalar "multiplier"   default 1.0,
        scalar "degamma"      default 1.0,
        scalar "blur"         default 0.0,
    )
    apply texture, environment
    version 3
end declare

texture 参数应指向裁剪的镜像球的图像,以便球可以准确接触到图像的边。理想状况下,它应该直接指向 mental ray 颜色纹理,但它也可以是另一个着色器。

如有必要,着色器可以通过 degamma 参数将反向 Gamma 校正应用于纹理。如果 Gamma 由链中的其他着色器处理,或者使用全局 mental ray Gamma,请使用值 1.0,它表示“保持不变”。

颜色与倍增相乘,并且如果 texture 参数点指向文字式 mental ray 纹理,则可以使用 blur 参数使其模糊。

灰色球

此着色器可用作环境着色器,也可用作纹理着色器,因为它根据曲面法线的方向进行查找。它将法线向量的方向映射到灰色球的点上,并检索其颜色。

declare shader "mip_grayball" (
        color  texture "texture",
        scalar "multiplier"   default 1.0,
        scalar "degamma"      default 1.0,
        scalar "blur"         default 0.0,
    )
    apply texture, environment
    version 3
end declare

这些参数与 mip_mirrorball 相同。

示例

以下是用于渲染示例的照片:

镜像球照片
镜像球照片
灰色球照片
灰色球照片

以下是几个对象与使用 mip_mirrorball 创建的环境。这些对象也由基于同一环境的最终聚集照亮:

一个角度
一个角度
另一个角度
另一个角度

以上图像中值得注意的是反射的方向如何始终保持与摄影机平行。因此,此着色器仅供在渲染摄影机方向(大致)匹配拍摄镜像球照片的方向时使用。

使用灰色球着色器时:

原始 mip_grayball 着色器
原始 mip_grayball 着色器
使用环境光遮挡
使用环境光遮挡

左侧图像是 mip_grayball 着色器的原始输出,但在右侧图像中,将着色器放入 mib_amb_occlusion 着色器的 Bright 窗口中,在此情况下会遮挡它,并使用弯曲法线查找它2

可在 matteuseagetips 页面上找到更多用法提示。


脚注
1
例如 Photosphere (Mac) 或 HDRShop (PC)
2
如果不希望使用弯曲法线查找 mib_amb_occlusion,请将其 Mode 参数设置为 -1。然后,使用原始(未弯曲)法线查找 bright 参数,这样可产生更平滑的结果。