VIS

VIS (stands for visibility) - name of a map compilation phase during which and data is created and used for visibility checking. VIS can be estimated as a group of areas called portals with each portal having a link to all other postals visible from it. If entity standing in a portal that is visible from a portal of current eye position, it will get drawn.

Building VIS
VIS portals are created during BSP stage, links are established during VIS stage.

Structural brushes will define a shape for portals to fill. This process sometimes is called 'breaking VIS' because by nature it is breaking space for visible and not visible zones. All entities (including bmodels]) are meant to be changed/removed at any time, so they are always excluded from portals creation. The only entity that breaks VIS is func_group.

Leak
VIS requires the map to be internally sealed so it can distinguish what part of the map is inside and what is outside. When some inner part of the map is connected with void, the map is leaked. When a leak occurs, the tools cannot know which part of the level is inside, and which part is outside, and portals cannot have visibility data generated. Most notable mistakes leading to leak: When map compiler detects a leak, it will stop making portals and cast an error. Map editor will show the spot where leak was occured.
 * Small gaps between brushes leading to a void
 * Detail brushes and entities being used as structural walls (they are not blocking VIS)
 * Entities placed outside of the map hull

Optimizing VIS
It is important that portal tree is balanced. It should be detailed enough to make accurate culling, and it should be small enough to have less RAM overhead and small processing time (VIS helps to save some processing time, it should not be allowed to take that time for its own processing). Optimizing portals is one of tasks map designer should care of:
 * Mark small brushes that should not break VIS as detail (Detail brushes are opposed to Structural)
 * Place hint brushes that will make additional portals for more accurate culling

Tutorials

 * Understanding a VIS and Hint brushes