常规
因为有许多可能的全局光照反弹算法的组合,为给定的工程类型保存一组设置可以有效加快工作流程,因此可以使用预设选项来为指定的工程类型保存全局光照设置。
这时,要知道你的工程是如何设置的。你应该区分两种主要类型:
这些预设应该只作为起始点来使用。这些设置可以在之后进行进行调整来优化渲染质量和渲染时间。更多的细节可以在各个选项的描述中找到。你还可以参考渲染示例,它演示了各种全局光照设置组合的效果。
可以偶尔尝试不常用的算法组合,你可能会发现一些在特定场景中比预设更好的组合。
当修改了一项全局光照设置,这个选项会被激活。
辐照缓存:漫射深度为1,这是最快的全局光照算法。
室内空间
辐照缓存 + 辐射贴图:降低漫射深度的快速预览。
辐照缓存 + 光线映射。
辐照缓存 + 光线映射。
辐照缓存 + 辐照缓存。
辐照缓存 + 光线映射。
辐照缓存 + 光线映射。
下面的信息对室内预设很重要:
室外空间
辐照缓存 + 辐射贴图:降低漫射深度的快速预览。
辐照缓存 + 准蒙特卡洛。
辐照缓存 + 准蒙特卡洛。
下面的信息对室外预设很重要:
对象可视化
辐照缓存 + 光线映射。
辐照缓存 + 辐照缓存。
对象可视化的采光良好,并经常位于构图中心,这意味着它通常只需要少量的光线反射。
物理渲染器的进程式采样
准蒙特卡洛 + 准蒙特卡洛。
准蒙特卡洛 + 光线映射。
这两个选项是设计来与物理渲染器的
你还可以参考使用各种算法组合的渲染示例。
CINEMA 4D 中的全局光照分两个部分运作:
在渲染时,两种算法的结果会被合成来产生整体的全局光照效果。
为什么要分这些算法?因为首次反弹算法对渲染质量来说是最重要的,因此要使用如准蒙特卡洛或辐照缓存这样高质量的算法,当然这也会相应地花费很长时间进行渲染。对于来回反射的光线来说,则可以使用如辐射贴图或光线映射这样质量较低而渲染速度较快的算法。
根据项目的配置,可以使用不同的算法组合,全局光照设置中已经为此设定了各种预设。
查看全局光照渲染的第一步。
还可以参考这些渲染示例,它们使用了各种算法组合进行渲染(例如准蒙特卡洛+光线映射表示首次反弹算法为准蒙特卡洛、二次反弹算法为光线映射)。
接下来是关于各种算法的描述。
首次反弹算法
准蒙特卡洛是最准确但也是最慢的算法(当二次反弹算法设为光线映射时,渲染结果也非常优秀,且渲染时间合适)。当使用准蒙特卡洛+准蒙特卡洛时,动画不会出现闪烁(如果没有消除噪点)。更多细节参见这里(准蒙特卡洛的工作原理)。
辐照缓存是一种简化的、快速的算法,它会确定一个给定工程中最重要的区域,计算这些地方的全局光照和插值。如果数值设置太低,动画可能会出现闪烁。更多细节参见这里(辐照缓存)。
这是 CINEMA R15 之前版本的辐照缓存。保存这一算法是为了让之前版本的工程也可以渲染得到相同的结果。注意,这种算法不能与 Team Render 一同使用。
二次反弹算法
在室外场景中,将二次反弹算法设为准蒙特卡洛,与辐照缓存搭配是最佳的算法组合。而最准确、也最慢的组合是准蒙特卡洛+准蒙特卡洛。
在使用小型光源(被设定为 GI 区域光或 GI 入口)的室内场景中,将二次反弹算法设为辐照缓存可以得到不错的渲染结果。在使用准蒙特卡洛+辐照缓存的组合时,请减少采样的数值。在内部,会为辐照缓存使用大量的准蒙特卡洛采样,这会大幅增加渲染时间。
将二次反弹算法设为辐射贴图适合快速预览渲染,因为其漫射深度较低(反射光线较少)。更多细节参见这里(辐射贴图)。
将二次反弹算法设为光线映射适合渲染室内空间,这时需要很多光线,这可以由光线映射的大量光线反射快速地产生。更多细节参见这里(光线映射)。
禁用二次全局光照计算,这意味着漫射深度为1(见上文)。
强度 [0.1..10000%]
强度 [0.1..10000%]
根据首次或二次反弹算法,使用这些设置来调整全局光照的亮度(见上文)。
这些设置可以用来单独设定使用在全局光照的首次反弹算法和二次反弹算法中的颜色饱和度。这在物理天空产生的投影太蓝或光线映射产生的效果太过饱和的情况下非常有用。在两种情况中,二次反弹算法的饱和度都可以调低。如果其他算法产生的饱和度太低(有时将二次反弹算法为辐照缓存/准蒙特卡洛时会出现这种情况),则可以增加饱和度。
注意,如果首次反弹算法的饱和度设为0%,则二次反弹算法中不会出现颜色。
对辐射贴图而言,二次反弹算法的饱和度只会影响真实区域光(而不包含多边形灯光)以及物理天空(它通过太阳光来提供真实光源)。
颜色饱和度还可以对材质进行修改(参见饱和度)。这些参数都是全局的,会对整个工程产生影响。
漫射深度(只有在二次反弹算法设为辐照缓存或者准蒙特卡洛)决定了光线可以被反射的频率(请注意多边形灯光和真实灯光之间的区别,参见这里)。更高的漫射深度会相应地,不过也是适度地增加渲染时间(漫射深度为1和2之间的区别要比2和8之间的区别大得多,这与之前的全局光照版本完全不同),但是光线的散布会更加均匀、亮度更高且更真实。但是在一个正常场景中,漫射深度大于3时产生的效果会越来越不明显,而只会增加亮度。
注意,gamma 校正可以在一定程度上用来补偿较低的漫射深度值。
一般来说,高漫射深度可以使用光线映射来实现。
当计算光线映射时(参见光线映射),发射到场景中的视觉采样会使用这里设定的“反弹”数量来进行计算。更高的数值会产生更高亮度和更均匀的光线散布,而不会增加渲染时间。在封闭空间内亮度的增加较少,在户外场景中,视觉采样会快速到达天空,然后不再反射。
提醒:在计算高漫射深度时,光线映射是最快的全局光照算法!
这里的 Gamma 值只会影响间接全局光照,它定义了内部渲染的亮度在 RGB 模式下如何显示。简单的说,它定义了从最暗(黑色)到最亮(白色)的渐变方式。
这就可以让很暗的渲染(如低漫射深度的渲染结果)变得明亮。但是请注意,高 Gamma 值会减少对比,让图像整体变“平”(数值设为1到3时被证明是最有效的;在一些情况下可能会需要更高的数值)。数值低于1时会让图像变暗,反之,数值高于1时会变亮(参考上面的示例)。
采样
采样标签的设置会影响准蒙特卡洛和辐照缓存作为首次反弹算法时的全局光照次采样(如果这两种算法也被用在二次反弹算法中,那么在这里设定的数值只有部分会被使用):为了采集环境中的光线,会发送多少采样,以及发送到哪里?别被这些设置吓到了,第一项设置采样是最重要的,而其他参数是用来调节的。
查看下面的图像,它展示了全局光照模式准蒙特卡洛是如何工作的(辐照缓存原理类似,但是不会对每个像素使用漫射深度3)。
在上图中你可以看到,当来自左下方的采样碰撞到物体时额外的采样是如何产生的(采样会用来采集环境中一个指定区域的颜色和亮度)。如你所见,在漫射深度1与第一个对象的交点处是最混乱的(之后反射光(漫射深度2、3)会逐渐减少对渲染结果的影响)。
下面描述的采样设置主要定义是否以及会在球体1上产生多少采样。
为了避免过多的术语,请查看下面的图像,它们使用了不同的选项来渲染场景:
一个区域光被放置在房间后方,右边墙上的窗户中可以看到被指定有 HDRI 的天空对象(它可以渲染硬投影)。场景中没有放置 CINEMA 4D 灯光,首次反弹算法为准蒙特卡洛(如果使用辐照缓存,则图像中会出现斑点而不是颗粒噪点)。
保持离散采样选项启用一般不会出错,只有在一些特殊情况下,你想要故意排除一种采样时可以禁用它。如果场景中没有区域光或天空,渲染时间的差别会很明显。
你可以通过选择这里的选项来控制精度和采样数量设置。
它整合了两种设置采样数的方法:
使用这个设置会自动设定一个最佳的采样数量。最优的采样数量取决于工程(在首次反弹算法为辐照缓存的情况下则取决于辐照缓存设置)以及设定的精度值。
这项设置设定了要使用的固定采样数量。较高的数值会产生较好的渲染质量(对于准蒙特卡洛会反映在在颗粒噪点上;对于辐照缓存则会减少斑点数量)。根据工程的不同,会使用上千的数值(参见每个着色点计算的采样数量)。
用来渲染的采样数量也会被用在离散面积采样和离散天空采样中,如果它们没有设置采样数量。
正常情况下,应该启用这个选项。禁用这个选项则不会从着色点以半球方向发送采样(也称为“首次采样器”)。通常是不需要禁用这个选项的,但是这么做有助于决定区域光或天空是如何影响场景的(因为漫射深度会减少为1)。在这种情况下,应该启用离散面积采样和离散天空采样。
这种采样方法非常适合使用大面积、均匀的区域光的场景(例如阴云密布天空,它不需要接下来描述的采样方法)。
要让这种采样类型工作,GI 区域光(或者GI 入口)选项必须在相应材质(光照通道)中启用。
这种采样方法会发送额外的采样到(多边形)区域光,这会强调场景对比,它对全局光照效果有重要的影响。
注意,如果禁用该选项,区域光不会从全局光照计算中省略,这些灯光不会受到注意,并且会被半球采样随机碰撞到(相应地会产生颗粒噪点)。
这个选项只有在首次反弹算法为辐照缓存时才会发挥作用。通常,在创建辐照缓存时,每个灯光都会被计入缓存。但是,这在场景中有小型的明亮区域光的情况下无效,渲染图像中会出现斑点。如果启用了强制每像素选项,区域光的计算会从缓存中分离出来,并单独计算每个像素(如对象表面,但是不包括背景、天空等),就像准蒙特卡洛算法默认所做的那样。
这些计算的结果不会保存到辐照缓存,因此对动画的每一帧都要重新计算。
使用这些数值可以设置自定义的采样数量。如果禁用自定义数量,会使用与采样设置中设定的采样数量相同的数值。
这种采样模式会将天空纳入计算(如物理天空或设置了 HDRI 纹理的天空对象)。
一个天空贴图会在渲染过程中进行计算,这主要会将额外产生的采样集中在最亮的区域。这意味着有足够对比的 HDRI 纹理可以在局部非常明亮的区域投射阴影,如下图所示。
注意,物理天空的合并天空与太阳选项确保了天空在内部(包括太阳的效果)像 HDRI 纹理一样进行处理。
如果禁用该选项,天空不会从全局光照计算中省略,天空不会受到注意,并且会被半球采样随机碰撞到(极其明亮的太阳会产生颗粒噪点)。
这个选项只有在首次反弹算法为辐照缓存时才会发挥作用。通常,在创建辐照缓存时,天空会被采样并记入缓存。对于明亮的区域(太阳)或小型发光表面,这种算法会受到限制,并会导致渲染结果中出现斑点。
如果启用了强制每像素,通过天空发射的光线的计算会从缓存中分离出来,并单独计算每个像素(如对象表面,但是不包括背景、天空等),就像准蒙特卡洛算法默认所做的那样。
这些计算的结果不会保存到辐照缓存,因此对动画的每一帧都要重新计算。
使用这些数值可以设置自定义的采样数量。如果禁用自定义数量,会使用与采样设置中设定的采样数量相同的数值。
准蒙特卡洛的工作原理
全局光照计算的准蒙特卡洛算法是按照“暴力”原则来运行的。这就是说,对图像中每个(!)对象像素,会以半球形式发射一定数量(可设置)的光线到场景中。这不是一种自适性的过程,因而渲染时间肯定不会减少。
它的优点是它提供了最精确的渲染结果。投影中微小的细节和着色也会被渲染出来,这在使用辐照缓存算法时是无法体现出来的。
使用准蒙特卡洛作为首次反弹算法的缺点: