I'm sure many of you who still have an eye on Quake 3 map making have seen it already but I don't think it has been discussed on here. I'm toying around a bit with some mapping over the holidays and have been using this version of Radiant for the last couple days. It comes with some very convenient improvments such as wasd movement in the 3D-Viewport or better translation tools. I have also been making use of the zero effort external lightmaps feature which allows you to create external lightmaps just using a q3map2 switch. That in particular is quite a game changer for me.
Through dealing with this I have also discovered other q3map2 features such as -exposure which was introduced by the Urban Terror community already a long time ago (works similarily to -compensate). As a consequence I have asked myself what is a state of the art approach to Q3 map building in terms of light builds. Over the years there have been different approaches.
The most recent topic of discussion has probably been Lunaran's and KungFuSquirrel's You'll Shoot Your Eye Out using over 120 sunExt suns in their skybox shader to achieve a very sophisticated look of global Illumination. This is essentially, in my eyes, actively immitating scattered light through using a variety of "suns" and thus achieving a more "realistic" lighting that reminds of using HDRi lighting in modern day engines or rendering toolkits. The geometry of the level helps a little I guess, with the map being a space floater and light thus being able to enter from less steep angles into the lower parts of the map.
Another thing I have learned from this map is that the influence of level wide fog on the appearance of the lighting is immense. Of course the fog does not affect the lightmap but it does appear to highly affect the lower and upper ends of the lighting value range, greatly contributing to a less contrasty but yet not stale range of colors. I have done a quick comparison of fog and no fog in an entirely skybox lit map area:
In his Rustgrad level, Hipshot is following a very different approach as can be observed in the map source. He is relying on a single sun combined with a lot of individually placed lights and a high _minlight value in worldspawn to achieve the very distinct aesthetic of the map. The goal of it might have been similar to what You'll Shoot Your Eye out wanted to achieve: Eliminating those pitch black spots in the lightmap that do not provide any information. What I have (re-)learned here is that the color pallette of the textures you are using should be taken into consideration for the way you light the level. The way the lightmaps blend onto darker or brighter textures and how the game appears to handle overbright bits make different approaches necessary. At least that is my take on it.
A third approach I have tried this week is one I observe in modern day architecture visualization, especially interior. Since in reality the sunlight is much much more intense then any artificial light source, some methods of modern day archviz try to replicate that difference in intensity and use an high intensity on the sunlight or HDRi light image. With this approach however you run danger of loosing information at the upper end of the value spectrum (over exposure). Rendering engines like Blender's cycles solve this partially by using filmic color management profiles instead of sRGB (from what I understand). What I think you can do in q3map2 is make use of -compensate or -exposure switches to normalize the overbright parts of the lightmap. The advantage of this method (as I imagine it) is to get more out of q3map2's bounce lighting through the use of the higher intensity sun. However you still do not get as much out of it as you would expect from a global illumination as you find it in blender cycles or other renderers. The following example uses a single sunExt shader with an intensity of 2000 and a 600 intensity skylight along with _minlight 3 and a very faint level wide fog. No other light sources are used. Lightmaps are compiled with samplesize 8 and the light switches look like this:
Code: Select all
[q3map2] -light -extlmhacksize 1024 -brightness 2 -bounce 16 -dark -dirtdepth 32 -dirtscale 3 -dirty -exposure 350 -patchshadows -samples 3 -bouncescale 1.2 -scale 1.2 -shade -cpma "[MapFile]"