User Tools

Site Tools


hpl3:game:visibility_area

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hpl3:game:visibility_area [2014/08/31 18:24]
nebej
— (current)
Line 1: Line 1:
-====== Visibility Area ====== 
- 
-===== Overview ===== 
- 
-The visibility area is used to divide a map into areas that should not  be visible at the same time. This helps the engine cull objects that are  outside of the view and should not be visible. Adding vibility areas to  the map will increase performance since it will give the engine an  easier time partitioning the objects. It is also possible to manually ​ disable a visiblity area, this will hide all the objects that are inside ​ it. An object will be part of all visibility areas that it is fully  inside of. 
- 
-Objects that doesn'​t fit inside any of the placed areas will get added to a main render container that has an infinite size. 
- 
-===== Placement ===== 
- 
-Visibility areas should be placed around large rooms, floors or large  outdoor zones. They should be placed so that when you are inside one of  the areas the other areas are not visible because it is occluded by  geometry (like floors or walls). If a map has multiple floors with  stairways between them then it would be a good idea to place one area  per floor. A visibility area should be added to rooms that have a lot of  objects. If the room is big but has few objects then placing an area is  not needed. Most visibility areas should be large, covering a whole  floor, but some can be small if the room has a lot of expensive objects. ​ Only objects that are fully inside an area will be added to it. 
- 
-{{:​visibility.png?​785x664}} 
- 
-Here is an example of how I divided 1.2 into visibility areas. Four areas are used. 
- 
-===== Settings ===== 
- 
-==== Add Partial Intersecting Objects ==== 
- 
-If objects that are only partially intersecting the area should be added to it. The default behaviour ​ is that only objects that are fully inside the area will be added. ​ Enabling this can lead to false positives and the objects being culled ​ when they should be visible. 
- 
-==== Min Objects Per Node ==== 
- 
-Small nodes will merge into larger ones if the number of objects per  node is less than this value. This is based on the average and not  enforced per node. 
- 
-==== Max Objects Per Node ==== 
- 
-Large nodes will be split into smaller ones if the number of objects per node is larger than this value. 
- 
-===== Scripting ===== 
- 
-**Visibility_SetAreaActive(const tString &in asName, bool abActive)** 
- 
-Disable or enable an area and make all objects inside invisible. 
- 
-**Visibility_SetMainActive(bool abActive)** 
- 
-Disable or enable the main area and make all objects that are not part  of a visibility area invisible. This can cause issues with large lights ​ being disabled. Add Partial Intersecting Objects can be used with this  to disable world the outside while inside a room. 
- 
-**Visibility_SetTerrainActive(bool abActive)** 
- 
-Hides terrain. 
- 
-===== Notes ===== 
- 
-Visibility areas can be rotated to get a better fit. Rotating an area makes updating of dynamic objects a little more expensive. 
- 
-Play around with min/max objects per node to get the best result (F5 is supported). The goal is to reduce the number of draw calls and queries with draw calls being the main stat. 
- 
-Placing visibility areas will never make objects on the map disapear when they should be in view. 
- 
-====== Visibility Portal ====== 
- 
-===== Overview ===== 
- 
-A visibility portal is an area used to link together two or more visibility areas. A visibility area that is connected to a portal will only be visible if the portal is visible or if the camera is inside it. If the camera is inside of a visibility area then all the portals connected to it will be used as a portal to the outside. 
- 
-A visibility portal will also clip the view frustum. This means that only objects that can be seen 
- 
-through 
- 
-the portal will be visible. 
- 
-The first image{{:​portals.png?​1791x396}} 
  
hpl3/game/visibility_area.1409509458.txt.gz ยท Last modified: 2014/08/31 18:24 by nebej