我知道环境光是来自给定光源的光所产生的光,该光重新照射场景中的无数个点,从而均匀地照亮场景中的所有对象,并解释了为什么场景中的光源未直接照亮的区域不是黑色。

所以我想环境光可以使场景中的所有东西都具有相同的基本“亮度”。但是,如何确定这一价值呢?我假设环境光与主要光源强度成正比(卧室的泛光灯肯定会比同一个房间的照明火柴产生更多的环境光),并且与场景大小成反比(壁橱中的灯肯定会产生更多光)环境光而不是大厅的灯)。请问有没有公式可以将环境光的“亮度”作为场景体积,光源强度和任何其他变量的函数?

请天真,因为我是计算机图形学的菜鸟,而且只有一个业余爱好者。

#1 楼

您要寻找的公式(并暗示火柴和灯的示例)实际上是光能传递公式-在这一点上,我们必须停止使用术语“环境光”,就像光能传递一样,所有事物(光源和物体表面)所有场景对象(包括)仅是能量,仅在最后一个[渲染]阶段转换为监视器的RGB值。

作为10,000英尺高的概览,在光能传递期间,您将所有多边形分解为小块,然后是公式的FormFactor部分,它负责照顾当前补丁的能量最终到达目标补丁。

回到您的示例-匹配将具有与启动不同的启动能量灯。同样,从光源到壁橱壁与大厅壁的距离将确保到达这些贴片的能量有很大不同(由于距离衰减)。

#2 楼

在照明计算中使用“环境光”一词是场景周围反射的间接光的近似值。通常,由艺术家来选择合适的值。并没有真正的公式,因为间接光取决于许多因素:


光强度
光的形状
表面光的BRDF会
对光源的可见性(想像一个深洞的背面)
等。

您可以根据以下公式使用某种公式来获得近似值这些因素,但我认为,仅针对每个场景手动进行操作会更简单。或者,您可以将其完全删除,并使用更复杂的方法来计算间接照明。

#3 楼

更准确地说,“环境”一词被描述为物体本身发出的光。虽然将其视为近似于间接照明的常量是没有错的,但将其称为前者仍然更为准确,尤其是在思考过程中。

因此,答案取决于您的场景。考虑到所有对象都发出自己的“光线”,因此无法在不牺牲图像质量的情况下手动设置全局环境术语,因为与下一个对象相比,没有对象会被相同地阴影化。因此,大脑将其感知为“看错了”。

因此,没有环境的公式,因为几十年前以这种方式引入的环境实际上是没有依据的。这些值是根据场景设置的,以确保它们看起来“足够好”。

间接光(如现代图形引擎中发现的那样)可以即时计算,从而不需要完全手动设置环境项。

简而言之:他们猜测为“环境”,他们计算为“间接光”。