PVS: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(cleanup)
Line 1: Line 1:
This acronym is somewhat disputed. It may stand for '''Potential Visibility Set''', '''Potentially Visible Set''', '''Potentially Viewable Set''' or many similar variations.
A [[PVS]] or '''[http://en.wikipedia.org/wiki/Potentially_visible_set Potentially Visible Set]''' is used as a somewhat abstract filter by [[NPC Sensing]] and the clientside [[Rendering Engine]] when deciding which parts of the world are visible to an Entity during gameplay.  


Every entity has a PVS. For players, it is the first line of defense over what geometry, entities and effects the game engine should render at any given point. Only objects within the current PVS - i.e. which are "potentially visible" - are considered for rendering, and it is [[cheap]] for the processor to decide whether or not this condition is being met.
A [[PVS]] is the specific ''set of [[Visleaf]]s'' which are visible from a specific [[Visleaf]]; every Visleaf has it's own PVS. Each '''Visleaf's PVS''' is calculated and recorded during [[vvis|VVIS]] compiling, and cannot be changed at runtime.  


For NPCs, a PVS is likely to be used to filter what other entities should be checked for line-of-sight. Additionally, entities will sometimes perform actions when a player enters their PVS.
An '''Entity's PVS''' (including the '''Player Entity's PVS''') is the PVS of whichever Visleaf the Entity is currently in. As every part of a [http://en.wikipedia.org/wiki/BSP_%28file_extension%29 BSP] map is divided into exclusive Visleafs, any Entity (including the Player) will always be located in one particular Visleaf or another.  If the Entity moves around the map, it will probably move from one Visleaf to another. Each time it moves to a different Visleaf, it will 'inherit' a different PVS from its current Visleaf.


A PVS consists of the [[visleaf]] that surrounds the entity and any other visleaves that are visible from it. See [[Optimization (Geometry)#Visibility]] for more information on how visleaves are created.
A '''PVS test''' is a simple look-up to determine which [[Visleaf]]s should be tested against this Entity's [[Viewcone]].


== See Also ==
== See Also ==
*[[Visleaf]] and [http://www.student.ru.nl/rvanhoorn/optimization.php?chapter=visleafs Ralph van Hoorn's excellent explanation of visleafs].
*[[NPC_Sensing]] includes PVS and other vis-tests such as Viewcone and LOS tests.
*[[vvis|VVIS]] and [[Controlling Geometry Visibility and Compile Times]].


*[[Controlling Geometry Visibility and Compile Times]]
*[[NPC_Sensing]]


[[Category:Glossary]]
[[Category:Glossary]]

Revision as of 12:21, 9 April 2008

A PVS or Potentially Visible Set is used as a somewhat abstract filter by NPC Sensing and the clientside Rendering Engine when deciding which parts of the world are visible to an Entity during gameplay.

A PVS is the specific set of Visleafs which are visible from a specific Visleaf; every Visleaf has it's own PVS. Each Visleaf's PVS is calculated and recorded during VVIS compiling, and cannot be changed at runtime.

An Entity's PVS (including the Player Entity's PVS) is the PVS of whichever Visleaf the Entity is currently in. As every part of a BSP map is divided into exclusive Visleafs, any Entity (including the Player) will always be located in one particular Visleaf or another. If the Entity moves around the map, it will probably move from one Visleaf to another. Each time it moves to a different Visleaf, it will 'inherit' a different PVS from its current Visleaf.

A PVS test is a simple look-up to determine which Visleafs should be tested against this Entity's Viewcone.

See Also