Editing VIS
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
{{need screenshot}} | {{need screenshot}} | ||
− | {{grammar | + | {{grammar}} |
− | VIS | + | VIS stands for visibility. Its a name of map compilation phase, and data created during this phase 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=== | + | ===Building the VIS=== |
− | + | Vis portals is crated during BSP stage, links are established during VIS stage. | |
− | Structural brushes will define a shape for portals to fill. | + | Structural brushes will define a shape for portals to fill. It is sometimes called 'breaking VIS' because by nature it is breaking space for visible and not visible zones. All entities (including [[BModel|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==== | ====Leak==== | ||
− | VIS requires | + | VIS requires map to be internally sealed. So it can know what part of the map is inside, and what is outside. When some inner part of the map is connected with void, map is leaked. When a leak occurs, the tools cannot know which part of the level is inside, and what part is outside, and portals cannot have visibility data generated. |
Most notable mistakes leading to leak: | Most notable mistakes leading to leak: | ||
* Small gaps between brushes leading to a void | * Small gaps between brushes leading to a void | ||
* Detail brushes and entities being used as structural walls (they are not blocking VIS) | * Detail brushes and entities being used as structural walls (they are not blocking VIS) | ||
− | * Entities placed outside of | + | * Entities placed outside of map hull |
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. | 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. | ||
{{tip|Map compiler is using entities to determine what map part is inside. If your map have no entities, compiler will cast a leak error because it cannot decide what part of the map is inside.}} | {{tip|Map compiler is using entities to determine what map part is inside. If your map have no entities, compiler will cast a leak error because it cannot decide what part of the map is inside.}} | ||
===Optimizing VIS=== | ===Optimizing VIS=== | ||
− | It is important that portal tree | + | It is important that portal tree should be 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 us to save some processing time, we should not allow it to take that time for its own processing). Optimizing portals is one of task map designed should care of. |
+ | |||
+ | Things map designer can do to optimize VIS portals: | ||
* Mark small brushes that should not break VIS as detail (Detail brushes are opposed to Structural) | * 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 | * Place hint brushes that will make additional portals for more accurate culling | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Tutorials== | ==Tutorials== |