光照贴图有什么用?

时间:2015-05-22 11:16:27

标签: graphics unity3d 3d game-engine

首先,我知道光照贴图是什么,使用它可以获得什么,以及如何实现它。我没有得到的是,如果你有动态移动的物体,它们将无法生成光照贴图,你仍然需要一个光源投射他们的阴影。那么,如果我们仍然需要一个不能获得任何光照贴图的灯光(即动态物体),那么光照贴图会获得什么?

提前致谢。

1 个答案:

答案 0 :(得分:3)

如果您不使用实时阴影(这是一个选项,通常是在移动设备上),那么您可以使用或多或少的方法来处理动态对象:

  • 使用烘焙到探针中的光照贴图数据来近似每顶点光照(无需实时光照)。这是一个近似值,但可以在某些情况下工作。
  • 仅在动态物体上使用实时灯光,因此您可以在不牺牲任何静态灯光性能的情况下改善它们的外观,而静态灯光只能使用烘焙灯光

如果你需要静态烘焙动态对象的动态阴影,那么你仍然可以从光照贴图中获益,原因如下:

  • 即使需要额外的光照通道来投影静态光照贴图对象上的阴影,可能并非所有对象都会受到阴影的影响,而只会受到相对靠近动态阴影投射器对象的对象的影响。所以你仍然可以节省大量的GPU时间。
  • 光照贴图(特别是在前向渲染路径上)允许产生复杂的光场景,否则无法实时实现。动态对象不需要受所有烘焙灯的影响,但最终只能来自更重要的灯。通过这种方式,您可以获得有限数量的drawcall,以获得非常好看的静态环境,以及影响动态对象的有限数量的“重要”灯光
  

如果你有动态移动的对象,那将无法移动   生成光照贴图,你仍然需要一个光源来投射它们   阴影。

这是真的。但是:

  1. 您可以保存静态光照贴图对象的计算着色,因为光线不会影响它们
  2. 如前所述,投射的阴影将被投射在一组有限的物体上