¿Un lightmap? ¿dónde, dónde? Pues prácticamente en todas partes. Últimamente se están empezando a olvidar en favor de los shadowmaps, que vienen a ser lightmaps dinámicos (y que tiran de GPU que da gusto).

Un lightmap es una textura, generalmente muy grande, que se aplica a un modelo para simular sus sombras. Suele ser algo estático y se utiliza para dar sombras a los niveles (que por lo general, no suelen moverse :D ). Es una técnica que se ha utilizado muchísimo por dar unos resultados muy buenos con poquísima potencia adicional. Por ejemplo, los 3 primeros Quakes los usan (y con ellos todos sus derivados: Half-Life 1 y 2, Soldier of Fortune, Sin, Heavy Metal FAKK 2, etc). También se usan en el motor Unreal (versión 1 y 2, al menos) y en los shooters de Monolith.

Quake 3 Lightmap

¿Cómo se consigue el efecto? Yo todavía no lo he programado, pero viene a ser algo así: primero tenemos que generar el lightmap, que es la parte complicada, porque los mejores generadores de lightmaps son de pago. El 3DStudio puede generar lightmaps, pero es lo más ineficiente que puedes utilizar. El mejor, según tengo entendido, es uno llamado Gile[s] que da unos resultados muy buenos. También puedes probar con el IrrEd, el editor del autor del Irrlicht que también genera lightmaps.

Lo siguiente consiste en ponerlo como segunda textura de un objeto, y hacer que oscurezca la textura aplicando blending. Para conseguirlo, simplemente tenemos que utilizar el tipo de blending Multiply. Y ya está. Lo malo es que el lightmap es estático así que ¿cómo es que en el Quake se consigue realizar esa iluminación al disparar un cohete? aquí es donde entra la capacidad de invención de John Carmack (y, por lo que se dice, una apuesta para ver si conseguía hacerlo en una tarde). Básicamente, ellos modifican el lightmap en tiempo real para simular las fuentes de luz dinámicas.

Además, como pone en los papers de Michael Abrash, no solo se puede utilizar para la iluminación, sino que puede servir como base para hacer grafitis en las paredes (¿alguien no ha jugado al counterstrike?), manchas de sangre, impactos de explosiones y demás.

Esta es una técnica que no come muchos recursos y que sin duda merece la pena utilizar, en entornos con iluminación estática. Además se puede combinar con otros tipos de sombreados con buen resultado. ¿He dicho ya que Half-Life 2 todavía lo usa?