LEET VIS



Current Version: 31337

----------------------



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 leetvis you understand and acknowledge this disclaimer. 



Intro

-----

For some time I have been working on a better version of the vis utility that

was released by idsoftware.  I started out with something called supervis

that was just a few standard additions to vis much like all the extra faces

and stuff people have been adding to qbsp.  Then I made a much more feature-

rich version and called it leetvis.  Leetvis went through several revisions

and the code soon became friggin huge.  Since that was a mess and I really

needed to return to fundamentals to code my own utility, I am currently

working on a vis program called pvs.



PVS will fix a lot of problems that I saw with vis.  There will be a lot more

optimizations in PVS that hopefully will make it faster.  Also there will be

a client/server ipx paradigm that will let you speed things up via network.

However at the heart of pvs is an old kernal for the vis job itself that I am

still calling leetvis.  I may even have lighting code in pvs because the light

job can be sped up by using the pvs.



Anyway I have decided to go back and add in a few features to vis like the

original plan.  I have made a lame set of extra features and put it in the

old code from id.  A lot of the really cool stuff that is in pvs is not here

but what do you expect from 20 minutes of coding?  Besides my pvs code is now

very different from carmacks vis at this point anyway.  I hope you enjoy

the program and find it useful.



Care and Feeding

----------------

Leet Vis is a redo of the vis program for generating the potentially visible

set of quake maps.  Several modifications have been made to allow for better

performance and ease of use.



  Leet Vis relies less upon command line parameters than the old vis

program.  It will check the portal file generated by qbsp and determine how

complex it will be to vis the map.  Based upon that complexity the program

will be able to give a very very approximate time of vising.  The vis-time

equation is still very rough so expect at least 2-300% errors.  Leetvis also

tries to determine how difficult it will be to vis and tells you that too.



  If you want to use leet vis and dont have the bsp file available for use,

just run leetvis -nobsp and it will use the .prt file only.  This is useful

to me while I am designing the program and it may be useful for benchmarking

if you terminate a qbsp compile and just want to see a quick estimate of how

long it would take to vis that level.  Quick and dirty.



  I have talked to the person who developed powerbsp and he said there was a

suggestion to implement a switch to turn off sounds in vis.  Leet Vis has

that option.  It is leetvis -nosound.  This just keeps vis from adding in

the sound effects to textures it finds in the map.





  Right now I am trying to implement a way for vis to stop what its doing

right in the middle of a run.  If this works you would press the "Q" key

and leetvis would write the current run out to a tmp.vis file.  Later you

would run leetvis -resume and the run would keep going as if nothing happened.





  Soon there will be implemented four different types of optimization that

should speed up vis speed on the pc a bit.  Currently only one of the

optimizations is in place.  The others will be added as soon as I get a better

handle on a better understanding of the fundamentals of pvs generation.



  Since vis is a highly parallel operation, I have thought about putting in

ipx support for vis.  This would allow you to spawn tasks on other machines

and theoretically speed up the program.  As I see it I will have one machine

as the server and the others as clients doing a leaf at a time.





  Keep looking forward to my next project.  It will be a super version of

qbsp that does everything and I will call it "yermom".





misc stuff I am doing:

added a -noprint option to prevent screen flooding by *, and . :)



-working on stopping execution and resuming in the middle.  You simply press

 "q" and vis stops running, saves your work, and exits.  Then you run

 leetvis -resume later to keep going.



-working on a possible new optimization for vising.



-working on putting in ipx for network stuff.  Probably will be some sort

of client/server thing.  Currently have the ipx drivers written but trying

to figgure out exactly how I am going to implement it.



new options to come:

-client <nodenum>  makes this a network client machine with that id

-host <numnodes> make a server that looks for so many nodes

these options will replace -threads and spawn network threads





   Soon I plan on adding custom texture names for water brush sounds,

lava sounds, and sky sounds.  Should make for some interesting maps in

the future :)



known problems:

   Occasionally a page fault is encountered.  I have tracked that down and it

is a problem with memory.  On my 16 mb pentium I get it occasionally with

larger files.  I am redoing a lot of the file io and various arrays to remedy

that situation.  Already I have removed a lot of the static arrays that plague

qbsp but this build of leetvis will have to wait on that because I dont have

a current file on my work machine.





current options for leetvis

---------------------------

leetvis [-level 0-4] [-fast] [-v] [-nosound] [-noprint] [-prt] bspfile 



level - same old same old.  Sets vis testlevel.

fast  - fast but loose vis for testing purposes

v     - verbose mode on

nosound - will not assign sounds to textures

noprint - will not print out symbols for vis recursion

prt     - use portal file instead of bsp file





Thanks and greetz

-----------------

  Thanks to GOD or else we wouldnt be here.  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 at crack.com,

Ryan Geithman at bossgames, and all my wonderful friends on irc.





Starving Coder Standard Beg for dollars section

-----------------------------------------------

LeetVis is FREEWARE.  Use it and  give it to your friends.  If you like the

program and it gives you a wood, please feel free to make a $5 donation to

Feed The Children, the Red Cross, or the Salvation Army.  There are those

who need it a lot more than you or I.





Complaints, Concerns, Comments, etc...

--------------------------------------

They all go to vile@dazed.nol.net or /dev/null depending on how angry you are

at me ;)





--------------------------------

.prts is .prts and pieces .prts.

