[Gtkradiant] [Bug 652] New: Q3map2 , Quake 3 Arena, and Fog.

gtkradiant@zerowing.idsoftware.com gtkradiant@zerowing.idsoftware.com
Tue, 29 Oct 2002 21:21:26 -0600


           Summary: Q3map2 , Quake 3 Arena, and Fog.
           Product: GtkRadiant
           Version: 1.3
          Platform: All
        OS/Version: Windows 2000/XP
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: q3map2
        AssignedTo: ydnar@shaderlab.com
        ReportedBy: Shminky.Boy@cox.net

This is a suggestion for people who wish to use level wide fog or fog hull in 
their maps, but also have the desire to have the inside of large indoor areas 
within the map remain completely fog-free. Below is a summary of this from the 
q3map 2.3 alpha thread on the quake3world forums:

Also, If there is a way of doing this that is easier than what i'm describing  
below, forgive me for wasting your time, I've searched high and low for a way 
to do this, and have only succeeded in tests with cut-up fog.. url's to 
screenshots also included below:

i did some monkeying around with foghull and cutting cubes into the fog, to try 
something to keep the fog out of the buildings in my map. initially i was 
successful, using a box map and a cut up fog volume as a test. it worked fine, 
i was using a known working fog shader on the outside walls of the fog volume, 
and nodrawnonsolid as a 'caulk' of sorts for the cuts that the volumes i cut 
out made...so i applied what i thought i had learned to my project, a terrain 
map. i tried a few different things to try to get it to work, but it wasn't 
working right, and both maps were using the same shaders for foghull/sky, 
correct worldspawn keys etc..only difference being that one was a box map and 
the other a terrain map. also i noticed that this only worked in the test map 
if all 4 outer surfaces of the volume were of the fog shader,even though all 
inside cuts to make the non fog areas (the fog volume is a func_group) are of 
nodrawnonsolid, AND if the fog volume is the last thing placed into the map 
(otherwise the map leaks, go figure)
screens of the cut up fog hull working:

and of it not working anymore in a terrain map:


both the test map and the project map work fine with a normal fog volume (no 
cuts), foghull settings being the same in all cases (actually the test map is 
the hull of the project file)

is there an easier way to do this? if this is easy, sorry...

if this is something useful, would it be possible to see the ability to make a 
working "fogcaulk" shader (something that works like watercaulk, except for fog)
in a future version? 

am i asking about something thats unnessesary?


In fact it's easy. Open your map file in a text editor and look your fog 

(edited out example to save space)

The content properties (in this case fog) of a brush are always defined by the 
first line of the brush definition in the map file.
It is enough to open and edit your map file before compiling.
Unfortunately, if you add or remove something in your map, when working on it 
in Gtk, you have to re-edit your map file each time before compile, to keep 
your fog brushes working.
Gtk has the bad habits to re-write the brush definition in an other manner at 
each save.

i suspected that using nodrawnonsolid in this way would cause that, as i 
started with the nodrawnonsolid as my 'caulk' to build the fog plug, which 
would cause the brush to be seen as a set of nodrawnonsolid brushes instead of 
fog ones, by what you are saying.
i also tried to make a 'fogcaulk' using surfaceparm fog, in the same way as 
i've seen the surfaceparm water used in watercaulk (ie surfaceparm water with 
null water properties, with surface parms to make it 'caulk-like') when i tried 
this with surfaceparm fog, it acted like the fogparms were defaulted to ( 0.0 
0.0 0.0 ), or black...instead of being null (along with the fog brush with 
multiple visible sides error, even though the surfaceparms nolightmap, nodraw 
and nonsolid were set), as i left the fogparms in the shader null, in the hopes 
of making fogcaulk (something that would 'act' like fog to the ed, but function 
like watercaulk or nodrawnonsolid in the sense that it's still fog, but not 
being rendered, so doesnt cause the multiple visible sides error AND avoid the 
problem that _fellow is describing, which would keep the compiler and the 
engine happy, while allowing ppl to cut up fog in this way. this would also 
solve the thing old_fellow is speaking of wouldn't it? 

thanks for your time, this new q3map2 is verry nice!!