Share
VIDEOS 1 TO 50
Lecture - 12 Hidden Surface Removal
Lecture - 12 Hidden Surface Removal
Published: 2009/06/18
Channel: nptelhrd
Computer Graphics Hidden Surface Removal in HINDI
Computer Graphics Hidden Surface Removal in HINDI
Published: 2017/04/30
Channel: LearnForIndians
Scan Line method Hidden surface removal methods in CAD : Basic CAD Lectures : Basic CAD Lectures
Scan Line method Hidden surface removal methods in CAD : Basic CAD Lectures : Basic CAD Lectures
Published: 2017/05/25
Channel: engineering lectures.org
VISIBLE SURFACE DETECTION
VISIBLE SURFACE DETECTION
Published: 2016/11/28
Channel: University Academy- Formerly-IP University CSE/IT
Hidden Surface Determination Using 2 Markers
Hidden Surface Determination Using 2 Markers
Published: 2013/05/19
Channel: Bowei Zhang
Hidden Surface Removal Algorithm Comparison
Hidden Surface Removal Algorithm Comparison
Published: 2011/07/25
Channel: csci1230
Hidden Surface Determination
Hidden Surface Determination
Published: 2016/02/29
Channel: Alfred QT
Z Buffer method Hidden surface removal methods in CAD : Basic CAD Lectures : Basic CAD Lectures
Z Buffer method Hidden surface removal methods in CAD : Basic CAD Lectures : Basic CAD Lectures
Published: 2017/05/25
Channel: engineering lectures.org
Z-BUFFER ALGORITHM OR DEPTH BUFFER ALGORITHM (English+Hindi)
Z-BUFFER ALGORITHM OR DEPTH BUFFER ALGORITHM (English+Hindi)
Published: 2016/11/29
Channel: University Academy- Formerly-IP University CSE/IT
Explanation on how I did my hidden surface algorithm
Explanation on how I did my hidden surface algorithm
Published: 2016/06/10
Channel: Chris Lewis
Another Hidden Surface Determination - Part of My AR Project
Another Hidden Surface Determination - Part of My AR Project
Published: 2013/05/19
Channel: Bowei Zhang
Graphics Processing - What Is Occlusion / Hidden Surface Removal & Why It
Graphics Processing - What Is Occlusion / Hidden Surface Removal & Why It's Important For Games
Published: 2013/08/17
Channel: RedGamingTech
Lecture - 26 Visible Surface Detection
Lecture - 26 Visible Surface Detection
Published: 2008/01/23
Channel: nptelhrd
Hidden Surface Removal in MATLAB
Hidden Surface Removal in MATLAB
Published: 2016/04/12
Channel: sumant28
Umbra 3 Occlusion Culling explained
Umbra 3 Occlusion Culling explained
Published: 2012/04/24
Channel: Umbra 3D
4.1 Hidden Surface Removal
4.1 Hidden Surface Removal
Published: 2017/01/24
Channel: Jon Shiach
Removal of Hidden Surfaces Algorithm
Removal of Hidden Surfaces Algorithm
Published: 2016/06/10
Channel: Chris Lewis
The Complexity of Hidden Surface Removal
The Complexity of Hidden Surface Removal
Published: 2014/06/05
Channel: tudor pc
Hidden Surface Removal Test
Hidden Surface Removal Test
Published: 2014/08/17
Channel: Tom Mendenhall
Hidden Surface Removal CG Painter Z Buffer in HINDI
Hidden Surface Removal CG Painter Z Buffer in HINDI
Published: 2017/05/06
Channel: LearnForIndians
BACK FACE DETECTION(English+Hindi)
BACK FACE DETECTION(English+Hindi)
Published: 2016/11/28
Channel: University Academy- Formerly-IP University CSE/IT
Lecture - 11 Projections and Hidden Surface Removal
Lecture - 11 Projections and Hidden Surface Removal
Published: 2009/06/18
Channel: nptelhrd
Computer Graphics - Lecture 9
Computer Graphics - Lecture 9
Published: 2011/11/22
Channel: Barbara Hecker
Lec-30 Hidden Surface Elimination(Contd.)
Lec-30 Hidden Surface Elimination(Contd.)
Published: 2008/01/25
Channel: nptelhrd
Hidden Surface Removal I
Hidden Surface Removal I
Published: 2016/01/28
Channel: Mathematics of Computer Graphics and Virtual Environments 2015/16
Hidden Surface approach
Hidden Surface approach
Published: 2016/11/17
Channel: Richard Nelson
Lecture - 13 Hidden Surface Removal
Lecture - 13 Hidden Surface Removal
Published: 2009/06/19
Channel: nptelhrd
Hierarchical Z-Buffer Occlusion Culling - Generating Occlusion Volumes - Boxes
Hierarchical Z-Buffer Occlusion Culling - Generating Occlusion Volumes - Boxes
Published: 2011/06/21
Channel: Nick Darnell
Z Buffer method Hidden surface removal methods  1
Z Buffer method Hidden surface removal methods 1
Published: 2017/07/31
Channel: Braingroom Nuggets
Computer Graphics 2013, Lect. 8(1) - Pipeline: clipping, culling, hidden surfaces
Computer Graphics 2013, Lect. 8(1) - Pipeline: clipping, culling, hidden surfaces
Published: 2013/06/11
Channel: Wolfgang Huerst
Hidden Surface Removal II
Hidden Surface Removal II
Published: 2016/01/28
Channel: Mathematics of Computer Graphics and Virtual Environments 2015/16
4.3 Hidden Surface Removal
4.3 Hidden Surface Removal
Published: 2017/01/24
Channel: Jon Shiach
Computer Graphics 2013, Lect. 8(2) - Pipeline: clipping, culling, hidden surfaces
Computer Graphics 2013, Lect. 8(2) - Pipeline: clipping, culling, hidden surfaces
Published: 2013/06/11
Channel: Wolfgang Huerst
4.2 Hidden Surface Removal
4.2 Hidden Surface Removal
Published: 2017/01/24
Channel: Jon Shiach
Z Buffer method Hidden surface removal methods  2
Z Buffer method Hidden surface removal methods 2
Published: 2017/07/31
Channel: Braingroom Nuggets
Increase your Unity Game FPS  in 2 minutes with Occlusion Culling
Increase your Unity Game FPS in 2 minutes with Occlusion Culling
Published: 2017/09/14
Channel: Unity3d College
Occlusion culling with Hierarchical Occlusion maps
Occlusion culling with Hierarchical Occlusion maps
Published: 2011/03/02
Channel: TheTango20
Hierarchical Z-Buffer Occlusion Culling - Generating Occlusion Volumes - Bunny
Hierarchical Z-Buffer Occlusion Culling - Generating Occlusion Volumes - Bunny
Published: 2011/06/21
Channel: Nick Darnell
5 Visible Surface Determination
5 Visible Surface Determination
Published: 2017/09/30
Channel: AtoZ SKY
Hi-Z GPU Accelerated Occlusion Culling
Hi-Z GPU Accelerated Occlusion Culling
Published: 2014/08/25
Channel: Jens Kristoffer
Occlusion Culling
Occlusion Culling
Published: 2014/04/27
Channel: John Novak
Unity 3 beta 4 Occlusion Culling
Unity 3 beta 4 Occlusion Culling
Published: 2010/07/25
Channel: Frederick Lim
space texture
space texture
Published: 2012/08/21
Channel: dalliance36
Math for Game Developers - Frustum Culling
Math for Game Developers - Frustum Culling
Published: 2013/06/20
Channel: Jorge Rodriguez
Hierarchical Occlusion Culling (CPU)
Hierarchical Occlusion Culling (CPU)
Published: 2011/11/12
Channel: dpadam450
Occlusion Culling - Improve Game Performance in Unity 3D
Occlusion Culling - Improve Game Performance in Unity 3D
Published: 2017/05/04
Channel: Learn Everything Fast
Genesis Device Engine 2007 - Demo 3
Genesis Device Engine 2007 - Demo 3
Published: 2007/10/31
Channel: Luuk van Venrooij
Breakfast With Unity 5.0: Occlusion Culling
Breakfast With Unity 5.0: Occlusion Culling
Published: 2015/03/23
Channel: PushyPixels
Scan Line Polygon Fill Algorithm: The Concepts
Scan Line Polygon Fill Algorithm: The Concepts
Published: 2011/01/02
Channel: Unacademy
Hierarchical Occlusion Mapping (HOM)
Hierarchical Occlusion Mapping (HOM)
Published: 2009/12/23
Channel: Paul Ewers
NEXT
GO TO RESULTS [51 .. 100]

WIKIPEDIA ARTICLE

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In 3D computer graphics, shown surface determination (also known as hidden surface removal (HSR), occlusion culling (OC) or visible surface determination (VSD)) is the process used to determine which surfaces and parts of surfaces are not visible from a certain viewpoint. A hidden surface determination algorithm is a solution to the visibility problem, which was one of the first major problems in the field of 3D computer graphics. The process of hidden surface determination is sometimes called hiding, and such an algorithm is sometimes called a hider. The analogue for line rendering is hidden line removal. Hidden surface determination is necessary to render an image correctly, so that one may not view features hidden behind the model itself, allowing only the naturally viewable portion of the graphic to be visible.

Background[edit]

Hidden surface determination is a process by which surfaces which should not be visible to the user (for example, because they lie behind opaque objects such as walls) are prevented from being rendered. Despite advances in hardware capability there is still a need for advanced rendering algorithms. The responsibility of a rendering engine is to allow for large world spaces and as the world’s size approaches infinity the engine should not slow down but remain at constant speed. Optimising this process relies on being able to ensure the deployment of as few resources as possible towards the rendering of surfaces that will not end up being rendered to the user.

There are many techniques for hidden surface determination. They are fundamentally an exercise in sorting, and usually vary in the order in which the sort is performed and how the problem is subdivided. Sorting large quantities of graphics primitives is usually done by divide and conquer.

Algorithms[edit]

Considering the rendering pipeline, the projection, the clipping, and the rasterization steps are handled differently by the following algorithms:

  • Z-buffering During rasterization the depth/Z value of each pixel (or sample in the case of anti-aliasing, but without loss of generality the term pixel is used) is checked against an existing depth value. If the current pixel is behind the pixel in the Z-buffer, the pixel is rejected, otherwise it is shaded and its depth value replaces the one in the Z-buffer. Z-buffering supports dynamic scenes easily, and is currently implemented efficiently in graphics hardware. This is the current standard. The cost of using Z-buffering is that it uses up to 4 bytes per pixel, and that the rasterization algorithm needs to check each rasterized sample against the z-buffer. The z-buffer can also suffer from artifacts due to precision errors (also known as z-fighting).
  • Coverage buffers (C-Buffer) and Surface buffer (S-Buffer): faster than z-buffers and commonly used in games in the Quake I era. Instead of storing the Z value per pixel, they store list of already displayed segments per line of the screen. New polygons are then cut against already displayed segments that would hide them. An S-Buffer can display unsorted polygons, while a C-Buffer requires polygons to be displayed from the nearest to the furthest. Because the C-buffer technique does not require a pixel to be drawn more than once, the process is slightly faster. This was commonly used with binary space partitioning (BSP) trees, which would provide sorting for the polygons.
  • Sorted Active Edge List: Used in Quake 1, this was storing a list of the edges of already displayed polygons (see scanline rendering). Polygons are displayed from the nearest to the furthest. New polygons are clipped against already displayed polygons' edges, creating new polygons to display then storing the additional edges. It's much harder to implement than S/C/Z buffers, but it scales much better with increases in resolution.
  • Painter's algorithm sorts polygons by their barycenter and draws them back to front. This produces few artifacts when applied to scenes with polygons of similar size forming smooth meshes and back-face culling turned on. The cost here is the sorting step and the fact that visual artifacts can occur. This algorithm is broken by design for general scenes, as it cannot handle polygons in various common configurations.
  • Binary space partitioning (BSP) divides a scene along planes corresponding to polygon boundaries. The subdivision is constructed in such a way as to provide an unambiguous depth ordering from any point in the scene when the BSP tree is traversed. The disadvantage here is that the BSP tree is created with an expensive pre-process. This means that it is less suitable for scenes consisting of dynamic geometry. The advantage is that the data is pre-sorted and error free, ready for the previously mentioned algorithms. Note that the BSP is not a solution to HSR, only an aid.
  • Ray tracing attempts to model the path of light rays to a viewpoint by tracing rays from the viewpoint into the scene. Although not a hidden surface removal algorithm as such, it implicitly solves the hidden surface removal problem by finding the nearest surface along each view-ray. Effectively this is equivalent to sorting all the geometry on a per pixel basis.
  • The Warnock algorithm divides the screen into smaller areas and sorts triangles within these. If there is ambiguity (i.e., polygons overlap in depth extent within these areas), then further subdivision occurs. At the limit, subdivision may occur down to the pixel level.

Culling and visible surface determination[edit]

A related area to visible surface determination (VSD) is culling, which usually happens before VSD in a rendering pipeline. Primitives or batches of primitives can be rejected in their entirety, which usually reduces the load on a well-designed system.

The advantage of culling early on the pipeline is that entire objects that are invisible do not have to be fetched, transformed, rasterized or shaded. Here are some types of culling algorithms:

Viewing frustum culling[edit]

The viewing frustum is a geometric representation of the volume visible to the virtual camera. Naturally, objects outside this volume will not be visible in the final image, so they are discarded. Often, objects lie on the boundary of the viewing frustum. These objects are cut into pieces along this boundary in a process called clipping, and the pieces that lie outside the frustum are discarded as there is no place to draw them.

Backface culling[edit]

With 3D objects, only half of the surfaces are facing the camera, and the rest are facing away from the camera, i.e. are on the back side of the object, hindered by the front side. If the object is completely opaque, those surfaces never need to be drawn. They are determined by the vertex winding order: if the triangle drawn has its vertices in clockwise order on the projection plane when facing the camera, they switch into counter-clockwise order when the surface turns away from the camera.

Incidentally, this also makes the objects completely transparent when the viewpoint camera is located inside them, because then all the surfaces of the object are facing away from the camera and are culled by the renderer. To prevent this the object must be set as double-sided (i.e. no backface culling is done) or have separate inside surfaces.

Contribution culling[edit]

Often, objects are so far away that they do not contribute significantly to the final image. These objects are thrown away if their screen projection is too small. See Clipping plane.

Occlusion culling[edit]

Objects that are entirely behind other opaque objects may be culled. This is a very popular mechanism to speed up the rendering of large scenes that have a moderate to high depth complexity. There are several types of occlusion culling approaches:

  • Potentially visible set or PVS rendering, divides a scene into regions and pre-computes visibility for them. These visibility sets are then indexed at run-time to obtain high quality visibility sets (accounting for complex occluder interactions) quickly.
  • Portal rendering divides a scene into cells/sectors (rooms) and portals (doors), and computes which sectors are visible by clipping them against portals.

Hansong Zhang's dissertation "Effective Occlusion Culling for the Interactive Display of Arbitrary Models"[1] describes an occlusion culling approach.

Divide and conquer[edit]

A popular theme in the VSD literature is divide and conquer. The Warnock algorithm pioneered dividing the screen. Beam tracing is a ray-tracing approach which divides the visible volumes into beams. Various screen-space subdivision approaches reducing the number of primitives considered per region, e.g. tiling, or screen-space BSP clipping. Tiling may be used as a preprocess to other techniques. ZBuffer hardware may typically include a coarse 'hi-Z' against which primitives can be rejected early without rasterization, this is a form of occlusion culling.

Bounding volume hierarchies (BVHs) are often used to subdivide the scene's space (examples are the BSP tree, the octree and the kd-tree). This allows visibility determination to be performed hierarchically: effectively, if a node in the tree is considered to be invisible then all of its child nodes are also invisible, and no further processing is necessary (they can all be rejected by the renderer). If a node is considered visible, then each of its children need to be evaluated. This traversal is effectively a tree walk where invisibility/occlusion or reaching a leaf node determines whether to stop or whether to recurse respectively.

See also[edit]

Sources[edit]

Disclaimer

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Powered by YouTube
Wikipedia content is licensed under the GFDL and (CC) license