K-Rad for win32

Intro
-----
K-Rad is a lighting program for quake based upon a diffuse lighting model
called radiosity.  This program was developed because John Carmack at id
software made a program called qrad that performs quake lighting with
radiosity.  It is my understanding that qrad will not be available until
quake2 is released.  Since its not running on my desktop, I have taken
matters into my own hands and developed my own version.

Please not that K-Rad in its present form really sucks.  Thats why I called
the zip SuckRad.  This is an extremely alpha, probably pre-alpha release.

Here is a list of the shortcomings of the program:

-Fixed matrix size.  Only handles 1732 surfaces.  So larger levels are not
gonna work.  I chose this value because it consumes about 12Mb of ram for
the 16Mb that is on my home computer.

-No use of the PVS.  I plan on working on LeetVis 2.2 in tandem with K-Rad
very soon.  This will allow me to optimize both a little more and get rid of
nonvisible areas being lit.

-The Matrix and Post programs crash upon exit.  Yes they do finish the job but
there is a hanging pointer or something that causes the programs to crash with
a page fault or illegal instruction.  Just continue as if nothing happened..
its alpha after all.

-Supports only type 1 lightmaps.  No flickering lights at this point.  I had
to learn how to write out the lightmaps on my own and had more to worry about
than just flickering lights.

-Makes no use of the light entities.  This is something I would like to
implement because it lends to raytraced form factors which means radiosity
is calculated right on the vertices of patches.  This will mean more energy
propogation in the world and it will be easier to interpolate all of the
light texels consistantly.

-Very little or no light propigation.  The method I use for calculating the
dispersion of energy in the level is extremely cheesy.  But that will
improve very soon.  Expect the fantastic lighting you have heard about not
to happen.

-No patch subdivision.  Typically radiosity programs mesh up the scene into
pieces.  I tried that before and ended up with enourmous arrays so I chose
to forgo that for now.  Perhaps I will just interpolate values from the
vertex radiosities instead to reduce memory usage.

-Dosent have that cool sun/moon lighting model that id's qrad does.  That
would be very cool.  I know its not hard to do either so it will probably be
in one of the new builds of k-rad.

Why did I do it if it sucks so much?  Mostly to show that it could be done.
Quake is a cool game and I expect mucho better tools to be coming out for it
any day now once we stop thinking of what John Carmack has already done and
start working on our own tools.

I coded this thing in a day.  Mostly bored at work.  Then I went fishing.   So
please dont expect too much from this.  I put very little effort into it and
it shows.  Perhaps in a week or so I will improve the code to get rid of a
lot of the limitations and bugs.  Previously I was working on a similar
radiosity program for quake but it was based upon a progressive refinement
approach. (It had the advantage of working in a small memory platform much more
effectively.  Absolutely no problem lighting very large levels on a 16Mb machine)
Now that I have tried both ways I will probably release the other program as
well next time.

Care and feeding
----------------
K-Rad is pretty easy to use.  Generally you will just run it like this:
        K-Rad filename.bsp
The batch file takes care of everything... sorta

To allow the user greater control of which textures K-Rad uses and for
greater control of the way the program operates, a doom type response file
or an ini file may be used. But that is for a future version.  Currently
the program uses textures beginning with the following names for lights:
sky
*lava
light
tlight


Errors, Problems, Questions
---------------------------
Just a couple of quick explainations:

First of all it is unfortunately impossible to light water, sky, or lava
brushes.  Indeed I have heard that you cannot light any brush with a texture
beginning with *.  The reason being that those brushes have no surface cache.

(This error is temporarily removed.  It will be back)
Q: What is this No lighting textures found error?
A: Exactly what it says.  The level to be lit has none of the textures that
K-Rad uses as lights.

Q: I want to port the code over to another platform.  Can I have it?
A: I really doubt it.  If I decide to make versions for linux and other
platforms then I will probably have certain people I already know do it.

Q: Why isnt K-Rad using the lights I put in my level?
A: K-Rad does not make use of light entities.  They are point sources that
tend to have specular reflections.  In a later version I will try to deal
with both specular and diffuse surfaces.  For now K-Rad just uses the
lighting textures for light.

Q: How do I make K-Rad use blinking lights?
A: You dont.  Since the lighting textures are not user defineable yet the
ability to use multiple lightstyles is pretty useless.

Whats Next?
-----------
Features for K-Rad:

- Definately I will be extending the lighting model of K-Rad to handle
both diffuse and specular patches.  This will mean that wood will have a dull
lighting and metal will reflect back brightly.

-I may explore using conformal mapping and some finite element techniques to
produce swirly textures and stuff like that in a mapping.

-Definately will have to implement the use of shadow volumes prior to element
subdivision.  Then I can have cool umbra and penumbra effects.

-Will try to give the user more control over the textures used for lighting.
Probably in an ini file of some kind.  Also the lights would be able to have
different styles.


Please send any suggestions you might have for new versions of K-Rad
or any of my other software to my email address listed below:

Complaints, Concerns, Comments, etc...
--------------------------------------
They all go to vile@grassy.nol.net or /dev/null depending on how angry you are
at me ;)  Seriously though, PLEASE send me any comments or suggestions.  I
would like to bring you the absolute best lighting tool ever.  Thank you.


Thanks and greetz
-----------------
  Thanks to GOD or else we wouldnt be here.  Thanks to my wife for putting up
with her husband spending hours coding instead of having a life. Also thanks
go out to iD software because they love us almost as much as He does ;-)
Also I would like to thank Billy Zelsnack for his putting up with me and being
such a great help in my other projects.  Special greets to Dave Taylor, Ken
Baird, and Trey Harrison at crack.com, Ryan Geithman at bossgames, Steve T. at
Rogue, Tom,levelord, and Judas at Hipnotic, DaBug from Ion Storm, kd from
Ravensoft, and Whaleboy from Apogee, FragMastr, David Kirsh (Zoid), and all my
wonderful friends on irc.


Starving Coder Standard Beg for dollars section
-----------------------------------------------
Non-beta K-Rad is FREEWARE.  Use it and  give it to your friends.  (This
does not apply to the beta).  If you like the program please give to a worthy
charity such as Feed the Children, the Red Cross, the Salvation Army, or a
local church.


standard disclaimer
-------------------
If this program causes your computer to have problems in any way, whether it
explodes or loses its cmos or whatever, its not my fault.  By reading this
and using my program you understand and acknowledge this disclaimer.  All
issues with the software not working properly and all responsibility for
damages lie solely with the user.




