Jump to content

  • Log In with Google      Sign In   
  • Create Account

Static lightmaps: how to build them ?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 29 December 1999 - 04:37 PM

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


Sponsor:

#2 Alastair   Members   -  Reputation: 122

Like
Likes
Like

Posted 27 December 1999 - 01:32 PM

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.


#3 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 27 December 1999 - 02:17 PM

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


#4 Phillip Schuster   Members   -  Reputation: 122

Like
Likes
Like

Posted 28 December 1999 - 10:35 AM

Hi !!

Check out my article about lightmaps. My article explains what they are and how to compute them. I am pretty sure that you will be able to answer all your questions yourself after you read my article.
http://www.voodoospotlight.com/devknowledge/index.html

Hope this helps.

Phillip


#5 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 29 December 1999 - 02:39 PM

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.


#6 logistix   Members   -  Reputation: 122

Like
Likes
Like

Posted 29 December 1999 - 04:37 PM

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.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS