Dabarti Studio的Tomasz Wyszomirski是V-Ray 3ds Max测试版的测试人员,他一直在测试一个名为自适应灯光的新选项,该选项会在V-Ray服务包5中提供。
什么是自适应灯光? 尽管光线追踪为我们提供了最引人注目和现实的方式来呈现光线的运行方式,但该算法给我们带来了许多挑战。 我们通常面临的是有很多灯光的场景。 当V-Ray 3.0推出时,我们介绍了一种简单的方法来处理这个称为随机灯光的问题。 在即将推出的V-Ray 3服务包5中,我们将介绍一种称为自适应灯光的改进方法。
为了更好地理解这一点,让我们分解在任何阴影点评估光源的所有不同方法。
这是我们在版本3之前处理许多光源的方式。在这种方法中,对于每次被光线打到,我们都会评估每个光源。 在具有5或10盏灯的场景中,这通常不是问题。 但在具有100或1000盏灯的场景中,这可能会大幅减慢渲染速度。
在这种方法中,对于每一条射线,我们随机选取小部分固定数量的灯光。 默认情况下是16个灯光,在我们的示例中,为了便于说明,我们将假定此数字为5,这大大减少了阴影点的计算次数。 由于下一道光线会选择另外5个光源,而我们通常会发射数百万光线,所以平均而言,所有光线都会被考虑在内。 一般而言,与每条射线计算一个光源的旧方法相比,此方法可以更快。 然而,有一个缺点是它可能在图像中引入额外的噪声,并且可能需要更多的样本来清理。 此外,某些阴影点可能会考虑不可见光或不对该区域提供照明的灯光。
这种方法建立在随机方法的基础之上,但是它使得它选择用于评估的灯光更加智能化。 它依靠Light Cache通道。 Light Cache通常用于全局照明,但它也使V-Ray能够很好地了解场景中实际发生的情况。 最后结果,不是选取5个随机光源,我们可以选择5个最有可能影响阴影点的光源。 这可以帮助V-Ray更快地实现更简洁的解决方案。
要清楚的是,Probabilistic Lights曾经并可能仍然是处理光线追踪渲染中大量灯光的更聪明的方式。 在大多数使用大量灯光的情况下,它的表现非常好。 但通过根据LightCache结果选择灯光更聪明一些,自适应灯光评估通常更好。
在以下的例子中,我们探索了一个有很多分隔线的大空间。 我们在场景中放置了168盏灯。 我们比较3种不同条件下的全光,概率和自适应光评估。
在第一个测试中,我们将场景中的灯光放置得相当低。 由于现场的墙壁,大部分灯光只在周边区域发挥作用。
然后,我们将灯光放在中等高度,对周边区域产生较大影响。
最后,我们将它们提升到足够高,以便每个灯光都能够影响大部分场景。
所有图像都呈现相同的噪点阈值,因此它们具有相似的噪点级别。 以下是测试的结果:
虽然该测试是专门用来演示较新的自适应方法的优点,但它所表现的是,由于噪点增加,单纯的随机方法实际上可能会成为缺点。 同时,自适应方法始终具有良好的性能。 即使在概率方法表现良好的情况下,自适应方法仍能改善结果并呈现更快。