This article's documentation is for the "GoldSrc" engine. Click here for more information.


From Valve Developer Community
Jump to: navigation, search


HLVIS HLVIS is the command-line tool that generates the visibility matrix (specifies which polygons the player can't or might be able to see) for the map and helps speed up its rendering. It replaces VIS (vis.exe) from the original compile tools.



  • Fast vis (NOT FOR FINAL COMPILES). A fast vis is handy for running around in a developed map without dropping polygons. However r_speed values will usually be pretty bad, as well as epoly counts. The map can still be lit with HLRAD, however its quality and compile time will both suffer as a result. Maps should regularly be compiled without fast vis, as fast vis can mask a sudden increase in normal vis compile time.


  • Full vis. This option enables extra calculations during vis, which help reduce the number of vis errors in a map over a normal vis. The speed hit is approximately 30% over a normal vis. r_speed values will generally be the same, though lower in some areas, and higher in others (primarily due to vis errors being fixed). This switch should be used when running final map compiles.

-maxdistance #

  • Set the maximum visibility distance (in units). Maximum Distance Visibility (MDV) is a feature that prevents leafs beyond a certain distance from being rendered (or even sent to the renderer at all). In conjunction with fog, it can become the ultimate catalyst when building and compiling large maps, especially those with open areas. However, due to the nature of the calculations, not all leaves beyond a certain distance are guaranteed to be prevented from being rendered; but those that are within the maximum distance are guaranteed to be rendered. There is a small side effect when using the Maximum Distance feature, because HLRAD relies heavily on the visibility matrix to speed up lighting operations. As such, a normal rad of the map will result in ackward, "cut off" lighting. This means that a special version of HLRAD is required (all compile tools in this series since MHLT 1.6), which accomodates for the MDV lighting problem. When you use this parameter, an extra file named <mapname>.vdt that contains the real visibility matrix (i.e without any MDV performed) will be created, which will be used to correctly light the map.

Shared options


  • Display bsp statitics. This option will cause the program to print out the bsp statistics right before it writes out the bsp. It is most handy to do -chart with HLRAD and HLVIS at the end of the compiles. The ripent program will alway display the chart.

-dev # Compile with developer message. Internal ZHLT debugging messages have been slowly added to the tools. This variable sets the 'level' to display. In order (starting with 0 and going up) : Off, Error, Warning, Info, Fluff, Spam, MegaSpam. Generally this option should never be used except at request, to diagnose a compile problem on an end-users machine.


  • Display estimated time during compile. This option replaces the 10...20... style progress indicators with a estimate bar with some estimated completion times, as well as the exact number of the current job and how many jobs there are to do. The three different times remaining factor in varying amounts of historical data to guess how much longer it will take to run. It is good for a ballpark figure, but frequently not much more accurate than that.

-lightdata #

  • Set custom lightdata maximum (MB). Higher values than the default (6MB) can cause performance issues. You should perform compatability testing before releasing maps if they're over the preset limit.

-low | -high

  • Run program an altered priority level. Setting the priority of the compile tools to -low is very handy, as you can multitask and do other things without really feeling the drain of the compile programs on the system, provided there is enough memory for the tools and the other programs you use.


  • Do not show tool configuration information. ZHLT 2.1 added a configuration display for each of the tools as they run, to display the current settings for all configurable options as well as their defaults. This sometimes causes problems with other programs, most notably when compiling within Worldcraft, it likes to crash when too much stuff scrolls into its compile process window.


  • Don't generate the compile logfiles. This option just disables the generation of the .log and .err files which are normally generated whenever the compile tools run.

-texdata #

  • Alter maximum texture memory limit (in KB). Half-Life was built with a 2MB texture limit, as was Opposing Force. The ZHLT default limit is 4MB. Even 4MB can be a bit much, when combined with model textures, skies, hud graphics, and more. This is especially true of people with older cards (Voodoo 1 and 2's, etc).

-threads #

  • Manually specify the number of threads to run. This option is generally only necessary on the non-windows versions of the tools, where there is not a standard way to detect the number of processors in the system and auto-set the value. It can be manually set on windows machines, primarily if you wish to use fewer threads than processors.


  • Compile with verbose messages. Many of the tools have 'minor warnings' and informative messages which are displayed when verbose mode is set. As the ZHLT 2.x series developed, many of the developer specific settings have been moved to developer messages, while the mapper-related messages remain as verbose messages.

External links