Light Map是一个比较经典的技术,目前来说应该是一般游戏引擎中的标配,它很好的在一种拟全局光效果的质量和效率上做了中和。不过目前用的更多、质量更好的应该是Directional Light Map,它是原始LM的增强版,通过在预处理与实时还原中考量场景中表面的法向量进而增强效果。DLM的基本操作方法如下:
- 在采样点处把其半球空间中的辐射照度用某种方法进行采集并保存(比如离线的光线跟踪);
- 以某种方法存储额外的、与该辐射照度相关的法线信息到光照贴图中;
- 实时渲染中通过光照贴图对像素上的场景辐照度进行还原(结合光照信息与方向信息)。
目前常用的DLM实现方法主要有三种:
Radiosity Normal Maps
该方法最早是在Valve的Source引擎中用的一种模式,它的原理应该是一种拟信号压缩与重建的方法:
- 在采样点处选取三个正交的采样方向作为基方向,采样得到这些方向上的光照信息并保存(压缩);
- 实时渲染中通过三个方向及其上的光照值做为基函数,对实际表面法向上的光照值进行还原(重建)。
其中的三个基方向(表面法向所在的局部切空间,如下图示)分别为: