Elara for 3ds Max教程系列8:全局照明缓存

介绍

GI Cache(全局照明缓存)是Elara特有的一套基于点云(Point-cloud)的全局照明解算引擎。该算法会在最终图像渲染Pass之前,先计算场景预采样Pass,生成场景的点云结构。之后,算法会运行多个Pass以解算并更新全局照明缓存。缓存生成后,最终图像渲染Pass过程中会插值缓存中的光照数据,加快图像的收敛和计算速度。

GI Cache基于Elara多年积累的图形渲染经验,针对复杂的室内效果图渲染应用专门设计,非常适合于快速渲染高质量的室内效果图。使用该算法,复杂的光照、材质组合也可以快速收敛到无噪点状态,而且不产生插值瑕疵。

虽然该算法需要预计算过程,但是即使对于大分辨率的图像,预计算时间通常也很短,生成的缓存占用的内存也很小。

GI Cache(全局光照缓存)

GI Cache圈展栏的界面和参数的中文翻译如图所示。注意只有在Light Integrator圈展栏的Engine选项中选中GI Cache作为当前引擎, GI Cache圈展栏中的参数才会起作用。

以下分别介绍每个参数的用途。

  • Density (密度)

控制GI Cache的细节程度。使用更高的值会让GI Cache生成更密集的点云,但是也会占用更多内存。通常默认值1对于绝大多数场景和图像分辨率都能工作的很好。以下图片可视化对比了不同Density参数值对点云密度的影响。

Density = 1

Density = 2

Density = 3

Density = 4

  • Preview Mode (预览模式)

Preview Mode是一个很特殊但也很重要的参数。

当该参数值为Off模式的时候,表示关闭预览模式,GI Cache会对直接光、以及间接光的首次反弹(Primary Bounces)都进行准确的Path Tracing采样,只在二级反弹(Secondary Bounces)的时候才可能会使用GI Cache进行光照的插值。该模式混合了无偏(Unbiased)算法和有偏(Biased)算法的优势,在保证光照细节的同时又比纯Path Tracing更快的收敛,非常适合渲染超高质量的室内效果图。

Preview Mode = Off

当该参数值为Fast模式的时候,GI Cache会对直接光和间接光都进行插值。该模式会让光照细节、尤其是直接光照的细节变得很模糊,通常用于非常快速的整体效果预览。

Preview Mode = Fast

当该参数值为Accurate模式的时候,GI Cache会对直接光进行准确的采样,但是对间接光进行插值。该模式平衡了图像质量和渲染时间,是默认的模式,适合绝大多数室内效果图渲染的性价比要求,通常推荐使用该模式。

Preview Mode = Accurate

总结起来,按照渲染速度排序: GI Cache: Fast > GI Cache: Accurate > GI Cache: Off > Hybrid Path Tracer

按照渲染精确程度排序:Hybrid Path Tracer > GI Cache: Off > GI Cache: Accurate > GI Cache: Fast

对于大多数情况的室内外效果图渲染,都推荐使用GI Cache并将Preview Mode设置为Accurate

  • Screen(屏幕空间)

选择该模式以后,GI Cache会使用屏幕空间的距离单位进行计算。离视点越近的区域,GI Cache的密度越高,离视点越远的区域,GI Cache的密度越低。使用Screen模式的时候,Screen选项后的值是屏幕空间的点云半径缩放值,不同的参数值的对比图如下。

Screen Mode, Radius = 0.1

Screen Mode, Radius = 1

Screen Mode, Radius = 2

Screen Mode, Radius = 4

注意该半径值会与图像分辨率呈正比,所以当该值固定不变的时候,对于不同的渲染图像分辨率,生成的点云数目基本不变。

  • World (世界空间)

选择该模式后,GI Cache会使用世界空间的距离单位进行计算,此时World选项后的值是世界空间的点云半径值,不同参数值的对比图如下。

World Mode, Radius = 0.5

World Mode, Radius = 1

World Mode, Radius = 2

World Mode, Radius = 4

通常使用Screen模式并且使用半径默认值1即可对大多数场景和图像分辨率产生足够好的渲染效果。World模式主要是为了兼容旧版本的参数存在。

注意不管使用Screen模式或者World模式,都不应该让点云半径值过小,这样会导致缓存生成时间更长,占用更多内存,并且影响最终渲染的速度。

  • Passes(Pass数)

同时控制每个点云上缓存的直接光和间接光的采样质量。提高该值会让生成的缓存更加精确和平滑,但是预计算生成缓存的时间也更长。对于普通场景使用100即可得到足够好的效果,对于光照非常复杂的场景(间接光效果不够平滑的时候),可以尝试使用更大的值,比如200,甚至400或更高。注意提高该值并不会影响最终渲染的时间。以下可视化对比了Passes不同时缓存的质量。

Passes = 1

Passes = 10

Passes = 30

Passes = 100

  • Prevent Light Leaks (避免漏光)
开启时会发射更多光线用于防止漏光的情况。通常建议总是打开该选项。允许关闭主要是为了兼容旧版本的参数。
  • Points (查找光子数量)
控制最终渲染图像的时候每个采样点用于插值的点云数目。该值越大插值效果越平滑,但是光照细节也会越模糊,并且渲染时间也会越长。以下图片对比了不同参数值的效果。

Points = 1

Points = 5

通常默认值即可达到足够好的效果和渲染速度。

  • Enable Indirect Glossy (间接Glossy)

控制使用GI Cache时,模糊反射是否能够看到其他物体的高光和模糊反射(Glossy)。为了减少渲染时间,默认关闭。该参数值不同时的效果对比如下。

关闭Enable Indirect Glossy,木纹的反射中看不到茶壶的高光

开启Enable Indirect Glossy,木纹的反射中可以看到茶壶的高光