Iluminación dinámica

Hola, por lo que pedís (algoritmos) creo que lo que quieres hacer es programar. De todas maneras, te comento algo como experiencia propia. Desde hace un año estamos trabajando con diferentes productores y programadores de videojuegos. Algunos trabajan en OpenGL otros usan Lingo y otros Delphi, el punto es que para lograr los efectos de luces acerca de los cuales estas preguntando. Todos usan la simple técnica del lightmaps que no es otra cosa que un enmascaramiento. Los lightmaps son algo, así como el buffer de sombras exportada desde el programa 3d que uses en forma de una textura UV.

Si las sombras se mueven (un personaje atraviesa un túnel oscuro con una linterna en la mano, por ejemplo) entonces se exporta el lightmaps (que como ya te habrás dado cuenta es solo una máscara en blanco y grises) y el programador los anima haciéndolos avanzar de acuerdo a la linterna (las zonas negras están totalmente ocultas y a medida que se acerca a el blanco se aclara). Imagina como si fueran capas en Photoshop.

La otra forma de simular sombras e iluminación cuando las cosas son estáticas es directamente quemar la textura en el objeto. Eso se conoce como baked textures o en Maya y 3d Studio render to texture (en Maya no es exactamente ese el nombre, pero es muy parecido, no me acuerdo el exacto). Un abrazo.