Okay, people, welcome to the revolutionary new world of q1rad.  I am a complete idiot, which is why this wonderful package doesn't contain so much as half the pizazz of TyrLite.  But it does colored rad lighting, which makes it cool as hell anyways.

*** WARNING!  WARNING! ***
YOU ABSOLUTELY MUST VIS YOUR MAPS BEFORE RUNNING Q1RAD, OR IT WILL NOT BOUNCE LIGHT!!!

q1rad is based directly off of Valve's qrad, which can be downloaded with the rest of their Half-Life SDK.  Unfortunately, qrad works quite differently from LIGHT and even TyrLite.  Here's the full shit:

Entity names that start with "light" are always lights.  Period.  They float in space and shoot light in every direction, with a few exceptions:

light_spot : Give it a target, and it points at it.  It also has two more properties:
  _cone : Cone angle falloff start (defaults to 10 degrees)
  _cone2 : Cone angle falloff end (defaults to falloff start)

light_environment : I have no fucking clue how these work, so go read up on them instead:
  http://ledc.fragpipe.com/tutorials/halflife/lightenv.shtml


Also, light intensity is determined differently than LIGHT.  You can use the "light" key (as of 1.6), but it is recommended that you use "_light."  You can enter values in the light key in three different ways:
1.) "r"  With r being brightness.  Makes a white light.
2.) "r g b"  With "r" "g" and "b" being red, green, and blue, respectively
3.) "r g b a"  Same as above, except "a" determines the "scalar" of the light.  That means that wherever the light hits (distance is determined by strength), it'll scale that value up or down by whatever number you use.


Now, in order to use surface lights, you must create a file called "lights.rad"  You can optionally create a file called "levelname.rad" with "levelname" being the name of your level without the .bsp extension.  In that file are the surfacelight descriptions.  To edit it, feed it to your favorite text editor.  Each line should contain the following format

<texture name (capitalized)> <red> <green> <blue> <intensity>

So if you wanted to make the texture +0slip a strong red with 200 intensity, you'd add:
+0SLIP 255 0 0 200


So that for any lights you want to be surfacelights.



Command-line switches:
  -dump : dump patch data
  -bounce <bounces> : number of times light will bounce off of the walls
  -verbose : compiler will bitch at you more
  -terse : does nothing, technically
  -threads <value> : specifies the number of threads spawned to process your rad job
  -chop <value> and -maxchop <value> : used for tweaking patch sizes
  -scale <value> : scales all light in the level by a given amount
  -ambient <red> <green> <blue> : specified level-wide ambient light
  -proj : no idea
  -maxlight : specifies the highest light value in the level
  -lights <radfile> : lets you specify your own .rad file
  -inc : incremental saves.  not recommended.
  -gamma <value> : adjusts level brightness, I think
  -dlight <value> : adjusts dlight threshold, whatever the hell that means
  -extra : makes your level prettier, but takes a shitload more time
  -sky : lights from the sky, I think
  -smooth <value> : sets the smoothing angle for lights
  -coring <value> : no idea
  -notexscale : don't do this, please

And my own personal concoctions:
  -exportlit : exports colored light data to a LIT file, which can be read by TomazQuake, DarkPlaces, and a slew of other engines.
  -noq1lights : Removes all "light" entities and only uses surface lights.  A bit dangerous.
  -stifleq1lights <value> : Multiplies the brightness of your lights by the value given (I recommend 0.4), uses the "light" key instead of "_light", and gives any lights with unspecified brightness a brightness value of 200.  In other words, this lets you take your Quake 1 maps and recompile them for radiosity with almost no modifications.

That's all.  Any and all dumb questions can be directed toward me at:
riot@planetquake.com

If it's regarding how to make lights in your level, please consult some Half-Life tutorial, as q1rad handles lights the EXACT same way.

If you're getting strange and "no spawn function" errors, put the progs.dat file I included in your id1 folder.

If you want source code, e-mail me, and I'll give it to you.  Cheers.

VERSION HISTORY:
 v3 (1.6) - Automatic detection of "light" keys without -stifleq1lights.  Fixed a REALLY dumb mistake that should greatly increase compile speed.
 v2 - Fixed progress indication bug, added light stifling and exclusion, added a bunch of surface light data to lights.rad
 v1 - Initial release


- Riot