Archived

This topic is now archived and is closed to further replies.

Guest Anonymous Poster

Static lightmaps: how to build them ?

Recommended Posts

The lightmaps used by quake are grayscale textures. These are modulated (multiplied) with the colormaps applied to each polygon, with texture blending. Unlike colormaps, which are reused over and over for many polygons, there is a lightmap for each and every polygon. To save memory, these are stored at lower resolution than the colormaps (I forget exactly what).

To generate the lightmaps in the first place, I think quake uses a radiosity tool. Check out http://members.home.com/droyer/index.html for more information on radiosity.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Thanks. I already knew what you said, but the link was very precious to understand better the theory. However i still have a few questions.
Lightmaps are 2d squares. I understand that they should be well working on square or rectangular surfaces. But what happens with triangles or more complex surfaces like a star ? How do you calculate the lightmap then ? Or, more exactly, how do you find where in the lightmap each vertex of your surface is ?
Another question. I've seen in the quake source that each vertex has a 3d ( and not 2d, as i thought at the beginning ) texture coordinate, which is basically used to compute the coordinates in the lightmap. I didn't understand the equations nor what is the sense of 3d coords for a texture...if anybody has a clue..
Thanks,

Ysaneya

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Many thanks...i think i've understood the theory. My lights are going to be semi-static ( ie, static during 99% of the time..but may move/change color/intensity sometimes ), so i have to calculate the lightmaps in real time (at least, when a light changes). Hope it won't be too hard....

Y.

Share this post


Link to post
Share on other sites
You're probably going to want to use a combination of static and dynamic lightmaps. There's no way you're going to be able to calculate all the lightmaps every frame. You might as well leave the other 99% alone.

Also might want to take a look into multitexure support. That way the videocard mixes the lightmaps.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I know little about the theory of lightmaps. I've been playing with the source code of Quake, and seen that the static lightmaps are not calculated in the engine but with an external tool. I'm searching either the code of a such tool, or the theory (links?docs?) to calculate static lightmaps.
Thanks for any help,

Ysaneya

Share this post


Link to post
Share on other sites