bin l'idée à l'origine des lightmaps, c'était de simuler des éclairages complexes avec peu de triangles.
par exemple tu prends un mur "plan" de quake 1, ou tu as que 2 triangles, dans les outils de "compilation" dèrrière l'éditeur de niveau, le générateur de lightmaps va créer une texture d'une certaine résolution, puis il va:
- paramétrer chaque pixel de coordonnée u,v de cette lightmap en fonction de la position spaciale du "plan" du mur.
- itérer à travers tous ces pixels et calculer en fonction du point x,y,z dans l'espace assigné au pixel, l'éclairage en ce point... (un x,y,z évolue au fur & à mesure que tu fais les pixels en u,v)
- l'éclairage, comme d'hab, consistant à faire le produit scalaire entre la normale en ce point (qui est constante sur tout le plan d'ailleurs) avec le vecteur point 3d->lumière (normalisé).
si le vecteur point 3d->lumière entre en intersection avec des éléments du décor (escalier, poutre....), l'éclairage de cette lumière n'est pas comtabilisée dans la somme finale...
c là ou la lightmap est puissante, il est actuellement "impossible" de calculer en temps réel l'intersection entre le vecteur vertex->lumière et d'autres polygones...
mais symétriquement, la lightmap est par essence statique.