Here’s how the radiosity in Q3Map works:

1. Set up and clear world lighting data to black. ( L = 0 )
2. Create point/spot lights from the map’s entity lights and area lights from drawsurfaces with shaders that emit light.
3. Clear (high resolution) temporary one-pass lighting to black. ( T = 0 )
4. Illuminate the world. ( T = T + light )
5. Filter temporary lighting data. (Anti-aliasing, blurring, missing data fix-ups) ( T = T + fix-ups )
6. Copy finalized temporary lighting data to radiosity lighting data ( R = T ) and add it to permanent world lighting data. ( L = L + T )
7. Delete current list of lights.
8. For every surface in the world, take its radiosity lighting data (the light that was received during the last pass), and derive a new list of lights. This typically results in several thousand light sources.
9. Repeat steps 3 to 8 as much as necessary.

The only surfaces that don’t re-emit light, during radiosity, are skies or shaders tagged with q3map_bounce 0. The color that a surface re-emits is based on a sampling of the texture color and the lightmap (or vertex light). A blue wall will not reflect any red light. A red wall will reflect red when lit with a white light. The alpha values of a surface scale how much a translucent surface re-emits light. To suppress this, make a custom image for q3map_lightimage. The demo fur map, that I released a few days ago, exploits this trick in order to achieve self-shadowing fur by using a q3map_lightimage with a blurry faint alphachannel.

y

Id Software:
GTKRadiant:
QERadiant:
Technical Support:
http://www.idsoftware.com/
http://zerowing.idsoftware.com/
http://www.qeradiant.com/
http://www.rtfm.com/
Quake III Arena © 2002 Id Software, Inc.
All Rights Reserved
This is not an Id product