In computer-generated imagery and real-time 3D computer graphics, portal rendering is an algorithm for visibility determination. For example, consider a 3D computer game environment, which may contain many polygons, only a few of which may be visible on screen at a given time. By determining which polygons are currently not visible, and not rendering those objects, significant performance improvements can be achieved.

A portal system is based on using the partitioning of space to form generalizations about the visibility of objects within those spaces. Regions of map space are divided into polygonal, generally convex, areas called zones, or sometimes sectors. Adjacent zones are linked to one another via shared dividing polygons termed portals.[1] Approaches that precompute visibility for zones are referred to as potentially visible set or PVS methods.[2]

For example, in a computer game such as Descent, the game area might be divided into several zones. These zones would then be connected to each other by small openings such as doors or windows. These openings are referred to as portals. When the zone behind a portal needs to be drawn, the only parts that are visible are the parts that can be seen through the portal. Therefore, the zone can be clipped against the portal boundaries to remove overdraw.[3]

The use of portals simplifies the game engine's task of determining visible areas and objects from any given point of view of the level, and simplifies rendering by allowing it to use each portal as a viewing frustum for the area it leads to. Ideally, portals are formed of confined areas (like doors or tunnels), connecting two complex areas of the scene, where each of these areas would be enclosed in such a polygonal body.[4]

Portals are best suited for indoor scenes such as mazes. Outdoor scenes do not usually have door-like objects that would clearly separate one zone from another.[5]

See also edit

References edit

  1. ^ David Abramson; Alexander V. Bogdanov; Jack J. Dongarra; Albert Y. Zomaya; Yuriy E. Gorbachev (2003). International Conference Melbourne, Australia and St. Petersburg, Russia June 2–4, 2003 Proceedings, Part I. Computational Science — ICCS 2003. Springer Berlin Heidelberg. p. 915. ISBN 9783540448600.
  2. ^ Peter Walsh (2010). Advanced 3D Game Programming with DirectX 10.0. Jones & Bartlett Learning. pp. 490–511. ISBN 9781449612764.
  3. ^ André LaMothe (2003). Tricks of the 3D Game Programming Gurus: Advanced 3D Graphics and Rasterization. Sams Publishing. p. 1408. ISBN 9780672318351.
  4. ^ Baldeve Paunoo; Daut Daman (2004). "Dynamic Scene Occlusion Culling in Architectural Scenes" (PDF). {{cite journal}}: Cite journal requires |journal= (help)
  5. ^ Daniel Sanchez-crespo (2004). Core Techniques and Algorithms in Game Programming. New Riders Press. p. 372. ISBN 9780131020092.

External links edit