Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Hidden-surface determination
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Culling and visible-surface determination == A related area to visible-surface determination is ''culling'', which usually happens before visible-surface determination in a rendering pipeline. Primitives or batches of primitives can be rejected in their entirety, which ''usually'' reduces the computational load in a rendering system.Types of culling algorithms include: === Viewing-frustum culling === 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 (computer graphics)|clipping]], and the pieces that lie outside the frustum are discarded as there is no place to draw them. === Back-face culling === {{main|Back-face culling}} With 3D objects, some of the object's surface is facing the camera, and the rest is facing away from the camera, i.e. is on the backside of the object, hindered by the front side. If the object is completely opaque, those surfaces never need to be drawn. These surfaces 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 approach 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 artifact, the object must be set as double-sided (i.e. no back-face culling is done) or have separate inside surfaces. === Contribution culling === Often, objects are so far away that they do not contribute significantly to the final image. These objects are thrown away if their screen [[3D projection|projection]] is too small. See [[Clipping (computer graphics)|Clipping]]. === Occlusion culling === {{See also|Z-buffering#Z-culling}} 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]] (''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"<ref>{{cite web |url=http://www.cs.unc.edu/~zhangh/hom.html |title=Occlusion Culling with Hierarchical Occlusion Maps |website=www.cs.unc.edu}}</ref> describes an occlusion culling approach.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)