3D graphics eBook - Course Materials Repository
3D graphics eBook - Course Materials Repository 3D graphics eBook - Course Materials Repository
Back-face culling 11 Back-face culling In computer graphics, back-face culling determines whether a polygon of a graphical object is visible. It is a step in the graphical pipeline that tests whether the points in the polygon appear in clockwise or counter-clockwise order when projected onto the screen. If the user has specified that front-facing polygons have a clockwise winding, if the polygon projected on the screen has a counter-clockwise winding it has been rotated to face away from the camera and will not be drawn. The process makes rendering objects quicker and more efficient by reducing the number of polygons for the program to draw. For example, in a city street scene, there is generally no need to draw the polygons on the sides of the buildings facing away from the camera; they are completely occluded by the sides facing the camera. A related technique is clipping, which determines whether polygons are within the camera's field of view at all. Another similar technique is Z-culling, also known as occlusion culling, which attempts to skip the drawing of polygons which are covered from the viewpoint by other visible polygons. This technique only works with single-sided polygons, which are only visible from one side. Double-sided polygons are rendered from both sides, and thus have no back-face to cull. One method of implementing back-face culling is by discarding all polygons where the dot product of their surface normal and the camera-to-polygon vector is greater than or equal to zero. Further reading • Geometry Culling in 3D Engines [1] , by Pietari Laurila References [1] http:/ / www. gamedev. net/ reference/ articles/ article1212. asp
Beam tracing 12 Beam tracing Beam tracing is an algorithm to simulate wave propagation. It was developed in the context of computer graphics to render 3D scenes, but it has been also used in other similar areas such as acoustics and electromagnetism simulations. Beam tracing is a derivative of the ray tracing algorithm that replaces rays, which have no thickness, with beams. Beams are shaped like unbounded pyramids, with (possibly complex) polygonal cross sections. Beam tracing was first proposed by Paul Heckbert and Pat Hanrahan [1] . In beam tracing, a pyramidal beam is initially cast through the entire viewing frustum. This initial viewing beam is intersected with each polygon in the environment, typically from nearest to farthest. Each polygon that intersects with the beam must be visible, and is removed from the shape of the beam and added to a render queue. When a beam intersects with a reflective or refractive polygon, a new beam is created in a similar fashion to ray-tracing. A variant of beam tracing casts a pyramidal beam through each pixel of the image plane. This is then split up into sub-beams based on its intersection with scene geometry. Reflection and transmission (refraction) rays are also replaced by beams. This sort of implementation is rarely used, as the geometric processes involved are much more complex and therefore expensive than simply casting more rays through the pixel. Beam tracing solves certain problems related to sampling and aliasing, which can plague conventional ray tracing approaches [2] . Since beam tracing effectively calculates the path of every possible ray within each beam [3] (which can be viewed as a dense bundle of adjacent rays), it is not as prone to under-sampling (missing rays) or over-sampling (wasted computational resources). The computational complexity associated with beams has made them unpopular for many visualization applications. In recent years, Monte Carlo algorithms like distributed ray tracing have become more popular for rendering calculations. A 'backwards' variant of beam tracing casts beams from the light source into the environment. Similar to backwards raytracing and photon mapping, backwards beam tracing may be used to efficiently model lighting effects such as caustics [4] . Recently the backwards beam tracing technique has also been extended to handle glossy to diffuse material interactions (glossy backward beam tracing) such as from polished metal surfaces [5] . Beam tracing has been successfully applied to the fields of acoustic modelling [6] and electromagnetic propagation modelling [7] . In both of these applications, beams are used as an efficient way to track deep reflections from a source to a receiver (or vice-versa). Beams can provide a convenient and compact way to represent visibility. Once a beam tree has been calculated, one can use it to readily account for moving transmitters or receivers. Beam tracing is related in concept to cone tracing. References [1] P. S. Heckbert and P. Hanrahan, "Beam tracing polygonal objects", Computer Graphics 18(3), 119-127 (1984). [2] A. Lehnert, "Systematic errors of the ray-tracing algorithm", Applied Acoustics 38, 207-221 (1993). [3] Steven Fortune, "Topological Beam Tracing", Symposium on Computational Geometry 1999: 59-68 [4] M. Watt, "Light-water interaction using backwards beam tracing", in "Proceedings of the 17th annual conference on Computer graphics and interactive techniques(SIGGRAPH'90)",377-385(1990). [5] B. Duvenhage, K. Bouatouch, and D.G. Kourie, "Exploring the use of Glossy Light Volumes for Interactive Global Illumination", in "Proceedings of the 7th International Conference on Computer Graphics, Virtual Reality, Visualisation and Interaction in Africa", 2010. [6] T. Funkhouser, I. Carlbom, G. Elko, G. Pingali, M. Sondhi, and J. West, "A beam tracing approach to acoustic modelling for interactive virtual environments", in Proceedings of the 25th annual conference on Computer graphics and interactive techniques (SIGGRAPH'98), 21-32 (1998). [7] Steven Fortune, "A Beam-Tracing Algorithm for Prediction of Indoor Radio Propagation", in WACG 1996: 157-166
- Page 1 and 2: 3D Rendering PDF generated using th
- Page 3 and 4: Image-based lighting 64 Image plane
- Page 5 and 6: References Article Sources and Cont
- Page 7 and 8: 3D rendering 2 Non real-time Animat
- Page 9 and 10: 3D rendering 4 The shaded three-dim
- Page 11 and 12: Ambient occlusion 6 ambient occlusi
- Page 13 and 14: Ambient occlusion 8 • ShadeVis (h
- Page 15: Anisotropic filtering 10 will only
- Page 19 and 20: Bilinear filtering 14 Are all true.
- Page 21 and 22: Binary space partitioning 16 togeth
- Page 23 and 24: Binary space partitioning 18 Other
- Page 25 and 26: Binary space partitioning 20 [1] Bi
- Page 27 and 28: Bounding interval hierarchy 22 Prop
- Page 29 and 30: Bounding volume 24 bounding boxes b
- Page 31 and 32: Bump mapping 26 Bump mapping Bump m
- Page 33 and 34: CatmullClark subdivision surface 28
- Page 35 and 36: CatmullClark subdivision surface 30
- Page 37 and 38: Conversion between quaternions and
- Page 39 and 40: Cube mapping 34 Advantages Cube map
- Page 41 and 42: Cube mapping 36 Related A large set
- Page 43 and 44: Diffuse reflection 38 2), or, of co
- Page 45 and 46: Displacement mapping 40 Meaning of
- Page 47 and 48: DooSabin subdivision surface 42 Ext
- Page 49 and 50: False radiosity 44 False radiosity
- Page 51 and 52: Geometry pipelines 46 Geometry pipe
- Page 53 and 54: Global illumination 48 Rendering wi
- Page 55 and 56: Gouraud shading 50 Gouraud shading
- Page 57 and 58: Graphics pipeline 52 Graphics pipel
- Page 59 and 60: Graphics pipeline 54 References 1.
- Page 61 and 62: Hidden surface determination 56 imp
- Page 63 and 64: High dynamic range rendering 58 Hig
- Page 65 and 66: High dynamic range rendering 60 Ton
Back-face culling 11<br />
Back-face culling<br />
In computer <strong>graphics</strong>, back-face culling determines whether a polygon of a graphical object is visible. It is a step in<br />
the graphical pipeline that tests whether the points in the polygon appear in clockwise or counter-clockwise order<br />
when projected onto the screen. If the user has specified that front-facing polygons have a clockwise winding, if the<br />
polygon projected on the screen has a counter-clockwise winding it has been rotated to face away from the camera<br />
and will not be drawn.<br />
The process makes rendering objects quicker and more efficient by reducing the number of polygons for the program<br />
to draw. For example, in a city street scene, there is generally no need to draw the polygons on the sides of the<br />
buildings facing away from the camera; they are completely occluded by the sides facing the camera.<br />
A related technique is clipping, which determines whether polygons are within the camera's field of view at all.<br />
Another similar technique is Z-culling, also known as occlusion culling, which attempts to skip the drawing of<br />
polygons which are covered from the viewpoint by other visible polygons.<br />
This technique only works with single-sided polygons, which are only visible from one side. Double-sided polygons<br />
are rendered from both sides, and thus have no back-face to cull.<br />
One method of implementing back-face culling is by discarding all polygons where the dot product of their surface<br />
normal and the camera-to-polygon vector is greater than or equal to zero.<br />
Further reading<br />
• Geometry Culling in <strong>3D</strong> Engines [1] , by Pietari Laurila<br />
References<br />
[1] http:/ / www. gamedev. net/ reference/ articles/ article1212. asp