Знаеш ли колко мъка беше едно време да се постигне натурално дифузно осветление на динамична сцена с динамични светлинни условия. Първо бяха lightmap-ите, които изглеждаха чудесно, ако и да харчеха видео-памет за големи сцени и ако са направени умно и пакетирани добре( да заемат голям texture space за големи триъгълници), станаха стандарт за дълго време. Lightmapp-а енкодва по дефиниция low frequency информация и може да се направи сравнително с ниска резолюция, преди да почнат да bleed-ват. За разлика от обикновенте текстури не можеха да се тайлват, понеже покриват дефакто цялата сцена. При големи сцени и при стриймване - греда.
После излязоха deferred рендерите и пер-пиксел шейдърите за светлини и сърфейс ефекти, които не се погаждаха добре със статичните lightmap-и. Quake 3 ползваше някакви опити за динамични(насложени, бленднати) lightmap-и за осветление на сцената от да кажем огъня на летящия снаряд от рокет лончер. Имаше и разни техники за directional lightmap дето да се погажда с bump mapping-a/parallax mapping. Имаше и разни подходи с light probes, които и до днес се ползват. Разхвърляш в грид обхващащ сцената виртуални сферички, които енкодват какво виждат около повърхността си (обикновено в сферикал хармоникс) и после по време на рендване ги семплираш с нормалата на пиксела, които се рендва в момента. Ъпдейтваш ги лесно - рендваш сцената в лоу рез на шестте стени на цубе мап.
Сега има хардуерни техники за RT global illumination + ambient occlusion, които са добро за геймдевовете.
https://www.youtube.com/watch?v=Ms7d-3Dprio