Accelerated Ambient Occlusion Using Spatial Subdivision Structures

Similar documents
Dynamic Ambient Occlusion and Indirect Lighting. Michael Bunnell NVIDIA Corporation

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura

Computer Graphics. Lecture 10. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura 12/03/15

Point based global illumination is now a standard tool for film quality renderers. Since it started out as a real time technique it is only natural

Global Rendering. Ingela Nyström 1. Effects needed for realism. The Rendering Equation. Local vs global rendering. Light-material interaction

Ambien Occlusion. Lighting: Ambient Light Sources. Lighting: Ambient Light Sources. Summary

Screen Space Ambient Occlusion TSBK03: Advanced Game Programming

Computer Graphics. Lecture 14 Bump-mapping, Global Illumination (1)

TSBK03 Screen-Space Ambient Occlusion

CS580: Ray Tracing. Sung-Eui Yoon ( 윤성의 ) Course URL:

Global Illumination CS334. Daniel G. Aliaga Department of Computer Science Purdue University

CS-184: Computer Graphics. Today. Lecture #16: Global Illumination. Sunday, November 8, 2009

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

Rendering Hair-Like Objects with Indirect Illumination

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.

A hardware based implementation of the Multipath method

Two Optimization Methods for Raytracing. W. Sturzlinger and R. F. Tobler

Spatial Data Structures

Accelerated Raytracing

Efficient Rendering of Glossy Reflection Using Graphics Hardware

Photorealistic 3D Rendering for VW in Mobile Devices

Volume-based Ambient Occlusion with Voxel Fragmentation

The Rendering Equation & Monte Carlo Ray Tracing

Adaptive Supersampling Using Machine Learning Techniques

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

Advanced Graphics. Global Illumination. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Fast Texture Based Form Factor Calculations for Radiosity using Graphics Hardware

Soft Shadows: Heckbert & Herf. Soft shadows. Heckbert & Herf Soft Shadows. Cornell University CS 569: Interactive Computer Graphics.

Applications of Explicit Early-Z Culling

Presented by Konstantinos Georgiadis

ANTI-ALIASED HEMICUBES FOR PERFORMANCE IMPROVEMENT IN RADIOSITY SOLUTIONS

Spatial Data Structures

Spatial Data Structures

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you

Local vs. Global Illumination & Radiosity

Schedule. MIT Monte-Carlo Ray Tracing. Radiosity. Review of last week? Limitations of radiosity. Radiosity

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.

Introduction to Radiosity

Comparison of hierarchies for occlusion culling based on occlusion queries

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Spatial Data Structures

CHAPTER 1 Graphics Systems and Models 3

Spatial Data Structures

Global Illumination. COMP 575/770 Spring 2013

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

Rendering Subdivision Surfaces Efficiently on the GPU

CS354R: Computer Game Technology

Anti-aliasing. Images and Aliasing

Ambient Occlusion Pass

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Adaptive Point Cloud Rendering

Real-Time Voxelization for Global Illumination

Intersection Acceleration

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Today. Anti-aliasing Surface Parametrization Soft Shadows Global Illumination. Exercise 2. Path Tracing Radiosity

MIT Monte-Carlo Ray Tracing. MIT EECS 6.837, Cutler and Durand 1

Physically-Based Laser Simulation

Chapter 7 - Light, Materials, Appearance

Final Project: Real-Time Global Illumination with Radiance Regression Functions

Scene Management. Video Game Technologies 11498: MSc in Computer Science and Engineering 11156: MSc in Game Design and Development

Ray Tracing. Cornell CS4620/5620 Fall 2012 Lecture Kavita Bala 1 (with previous instructors James/Marschner)

A Framework for Global Illumination in Animated Environments

AN EXPERIMENTAL COMPARISON OF ACCELERATION SCHEMES FOR DENSELY OCCLUDED ENVIRONMENTS

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Topics. Ray Tracing II. Intersecting transformed objects. Transforming objects

EECS 487: Interactive Computer Graphics

Advanced Computer Graphics CS 563: Screen Space GI Techniques: Real Time

COSC 448: REAL-TIME INDIRECT ILLUMINATION

Rendering Light Reflection Models

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students)

PantaRay: Fast Ray-traced Occlusion Caching of Massive Scenes J. Pantaleoni, L. Fascione, M. Hill, T. Aila

COMPUTING SCIENCE. Real-Time Ambient Occlusion on the Playstation3. Dominic Goulding, Richard Smith, Lee Clark, Gary Ushaw and Graham Morgan

Computer Graphics Shadow Algorithms

Spatial Data Structures for Computer Graphics

Local Illumination Environments for Direct Lighting Acceleration

Advanced 3D-Data Structures

Light Reflection Models

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February

Improved Illumination Estimation for Photon Maps in Architectural Scenes

Topics. Ray Tracing II. Transforming objects. Intersecting transformed objects

Improved Radiance Gradient Computation

Graphics for VEs. Ruth Aylett

In this part of the course, I will discuss various approaches for generating VPLs where they are most needed for a given camera view.

Real-Time Image Based Lighting in Software Using HDR Panoramas

Deferred Rendering Due: Wednesday November 15 at 10pm

Consider a partially transparent object that is illuminated with two lights, one visible from each side of the object. Start with a ray from the eye

COMP 175: Computer Graphics April 11, 2018

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T

Row Tracing with Hierarchical Occlusion Maps

Advanced Post Processing

Here s the general problem we want to solve efficiently: Given a light and a set of pixels in view space, resolve occlusion between each pixel and

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

Animating radiosity environments through the Multi-Frame Lighting Method ...

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Ray Tracing with Spatial Hierarchies. Jeff Mahovsky & Brian Wyvill CSC 305

Simpler Soft Shadow Mapping Lee Salzman September 20, 2007

CS770/870 Spring 2017 Radiosity

Real-Time Reyes: Programmable Pipelines and Research Challenges. Anjul Patney University of California, Davis

Transcription:

Abstract Ambient Occlusion is a relatively new method that gives global illumination like results. This paper presents a method to accelerate ambient occlusion using the form factor method in Bunnel [2005] as well as utilizing the fact that ambient occlusion is a function of nearby geometry only. The proposed method combines existing ideas in order to accelerate ambient occlusion calculations by using a spatial subdivision structure (an octree) and selective sampling. Keywords: ambient occlusion, ambient obscurance, global illumination, shadowing techniques, spatial data structures 1 Introduction Global illumination in computer graphics is a key factor in producing realistic s. However, the complexity of a true radiosity approach is still too time consuming for modern technology. Ambient Occlusion is a technique that generates global illumination effects (soft shadowing, color bleeding) without taking into account an actual light source. Instead, the ambient term of the standard lighting equation is modified as a function of the local geometry of a. That is, the ambient term for a point on a surface is determined by how occluded that point is from other local surfaces in the [Iones et al. 2003]. Ambient Occlusion simulates global illumination fairly well considering its relative simplicity. Ambient Occlusion calculations for the most part have remained a non-real time process however. The technique presented accelerates the occlusion calculations by using a hierarchical spatial subdivision system. Hierarchical spatial subdivision systems have been used to speedup radiosity, ray tracing, occlusion culling, and many other graphics-based problems. 2 Related Work Goral et al. [1985] first introduced the concept of radiosity, and brought global illumination effects to computer graphics. Due to radiosity's complexity various acceleration methods were later introduced. One such method is to store patches in Figure One: Ambient occlusion and diffuse lighting. a hierarchy [Hanrahan et al. 1991]. The idea, for example, is that instead of calculating the amount of light coming from a distant wall in a room by finding the form factor for each patch that is far way, it is possible and nearly equivalent to group those distant patches together (average their radiosities) and compute the form factor between a large patch (the entire far wall) and the receiving patch in question. This significantly reduces the amount of form factor calculations between patches, yielding a linear solution, rather than a quadratic solution, to the problem. However, the radiosity method is still exceptionally time consuming, and thus other methods that attempt to mimic global illumination have been introduced. The idea of ambient occlusion was introduced by Zhukov et al. [1998] and as mentioned earlier gives global illumination-like effects at a much lesser computational cost. A patch's ambient term is modified based on how open that patch is with respect to other nearby patches. If a patch is fully open its ambient term is multiplied by 1, otherwise its ambient term is multiplied by a value between 0 and 1. Later, Iones et al. [2003] proposed storing the resulting ambient term computations in light maps rather than patch vertex attributes. This allows a to be rendered with only the original polygons, independent of the patches that were used in the occlusion calculation. Also,

Méndez et al. [2003] added color bleeding support to ambient occlusion with no extra computational cost. In most production renderers, such as Renderman, ambient occlusion is now supported, and implemented by ray tracing [Christensen 2002]. As an extension the normal of a patch is bent based on the average direction that a patch is open or not occluded. This bent-normal is then used when looking up data from an environment map. This typically gives more interesting and realistic results. Recently, real-time, or close to real-time, ambient occlusion results have been achieved with the help of the latest graphics hardware [Bunnel 2005]. The idea is to create surface elements out of a 's polygonal data, and to compute the shadowing of these surface elements onto each other using a typical form factor-like equation. A Surface element is defined as an oriented disk, with a surface position, normal, and area. Every vertex in the polygonal, has a corresponding surface element. Similar to radiosity's hierarchical clustering technique [Hanrahan 1991], surface elements are stored in a hierarchy such that when computing the shadowing from far away elements, one large surface element may be used rather than computing the shadowing from every far away surface elements. Fragment shaders are used by the GPU with this method. however many ambient occlusion techniques, such as the real-time method introduced by Bunnel [2005], seem to neglect this fact to an extent. Shadows cast from distant elements on a receiving element are lessened considerably by how far the occlusion elements are from the receiving element in question. This is represented in the form-factor equation. Where the form-factor between one element and another is: A cos Ө E cos Ө R (1) π r 2 + A Where A is the area of the occluder, E is the angle between the occluder's normal and the vector between the occluder and the element, R is the angle between the element's normal and the vector between the element and the occluder, and r is the distance between the occluder's center and the element's center. This is illustrated in figure two. Occluding surface element The benefit of using the form factor approach, rather than ray tracing to determine the visibility of an element is that ray tracing requires many samples to sufficiently represent the total occlusion value. The form factor approach on the other hand mimics computing the visibility of an element by using the areas of the occluders. So while ray tracing could utilize a spatial structure for determining local visibility, the method suffers from the fact that many rays are required. Ө R Ө E 3 Method Receiving surface element The proposed method is to accelerate the ambient occlusion calculation for a, by utilizing the fact that the ambient occlusion for an element is only a function of the nearby geometry in the with respect to that element. The method introduced uses Bunnel's [2005] idea of surface element discs and form factor-like shadowing ideology as well as Iones et al. 's [2003] idea of neighboring geometry. Ambient occlusion as first introduced by Zhukov [1998] was a function of just that, nearby geometry, Figure Two Based on this, while the occlusion is more so a function of nearby geometry, it is still represented as a function of the entire geometry in the. The occlusion from any distance from the element in question is still being computed. By enforcing a restriction on the distance in which an object can occlude or shadow another object, classic spatial subdivision techniques can be employed to accelerate the overall ambient occlusion calculation. Bunnel's [2005] method does use a

hierarchical clustering technique which in effect does support the notion of locality as, occlusion is calculated only in full for a limited range, while the occlusion from further away elements is grouped and approximated. However the memory required to store multiple levels of surface elements is undesirable. The method presented in this paper focuses and examines the results of having a limited distance or cutoff for ambient occlusion, and the subsequent benefits. Acceleration based on locality can be achieved by storing a in an octree. An octree was chosen due to its simplicity and applied application. Surface elements are composed of the 's vertex data, and thus each surface element is only located at a specific position. Therefore when inserting surface elements into an octree, there is never a case where an element is located in more than one node in the tree, as would occur when inserting polygons into the tree. This is a common downside to the spatial uniformity of octree nodes when inserting polygons, as polygons must either be represented in more than one node, or must be dynamically subdivided. Although an octree risks the case of being unbalanced, this is not a concern when calculating ambient occlusion, as rejecting nodes is not an expensive operation with respect to the form-factor calculations that are required when computing ambient occlusion. However, an issue when using an octree, particularly if the ambient occlusion implementation is using the GPU, is that an unbalanced octree wastes valuable memory storage. In this case a more balanced structure, such as a kd-tree would be more suitably. On the other hand, for real-time purposes and with applications with dynamic environments, a kd-tree would be harder to maintain than a more general structure, such as an octree. Surface elements should be stored in an octree such that there are relatively few surface elements per octree node, with respect to total amount of surface elements in the. The implementation used for this paper restricted a nodes capacity to 10 surface elements when handling s of 100,000 to 300,000 surface elements. This is to ensure that the ambient occlusion algorithm can reject as many surface elements as possible when calculating the occlusion for an element. With the surface elements stored in an octree (see figure three), only the occlusion from surface elements at nearby nodes of the octree are calculated. When calculating the occlusion for an element, the tree is traversed from the top down. A leaf node's surface elements are only included in a receiving elements occlusion calculation if and only if the leaf node (a cube) they are in, is considered local to the receiving element. Likewise, a node is only traversed downward to its children if the node is near the receiving element. An exception to this, is if the receiving element is itself in one of the node's children. The range of what is considered nearby or local to a receiving surface element is flexible. For ideal results however, the range should be proportional to the size of objects in the. Iones et al. [2003] recommend the range cover 10 to 100 surface elements. Figure 3: Scene's surface elements are stored in an octree. Further use of the octree structure can accelerate the ambient occlusion calculation by examining the definition of ambient occlusion, and subsequently the form-factor equation. The occlusion for a surface element is a function of the hemisphere oriented above the surface normal of the element. Only the surface elements located in the hemisphere of the normal contribute to the receiving element's occlusion. Based on this, it is only necessary to traverse a node in an octree if it is close to the receiving element and also if the node is located in the hemisphere of the receiving element's normal. Testing if a node is in the normal oriented hemisphere can be done by simple dot product tests on the bounding cube of the node. For all eight corners of the bounding cube, equation two can be applied. if E N V < 0; reject (2)

If the test rejects for all eight corners, the bounding cube, and all of its subsequent children, are not in the hemisphere of the receiving element. The hemisphere test contributes to the acceleration process the most when large ambient occlusion cutoff ranges are used. Since the test can eliminate more surface elements which the locality test does not eliminate. can be seen that occlusion can be accurately represented even with a tight limit on its range. Indeed, as by definition, the ambient occlusion of a point is most greatly impacted by the local geometry around that point. The limit on the range of ambient occlusion is also not obvious and distracting, as the form-factor equation (equation 1) is a quickly falling, but smooth function. It is also important to note that s with no limit on the occlusion range, appear darker, since the likelihood of over shadowing increases. Multiple passes of the algorithm would need to be run to remedy this issue [Bunnel 2005]. The hemisphere test in itself caused moderate acceleration. As stated earlier, the acceleration gained directly from the hemisphere test is related to the range used for occlusion. This is the case since, in theory, the hemisphere test rejects (does not traverse) at a maximum, half the nodes that the optimization gained by limiting the range of occlusion would accept. All tests were done on a Pentium 4, 2.8 ghz. processor. Figure 4: Two-dimensional depiction of hemisphere test. A receiving element's occlusion value is only affected by the elements of nodes in the hemisphere oriented around its surface normal. Nodes colored red are not traversed due to this. Each calculated occlusion value can be stored directly as a vertex attribute. This works nicely since every surface element corresponds to a vertex. However, since the number of surface elements is no greater than the number of verticies the quality of the results is greatly reduced in areas of little geometry. Due to time constraints and simplicity, the implementation presented in this paper was done in software on the CPU, rather than hardware. However, despite this the acceleration gained is equally applicable if the GPU was used. 4 Results Scene Total Elements Occlusion Range With hemisphere test time (secs) teapot 19,200 none no 531.21 teapot 19,200 none yes 178.8 94,860 none no 8521 94,860 none yes 4030 Figure Five: Shows the results of having no limit on the occlusion range, and with the hemisphere test optimization on and off. By limiting the range of occlusion, the acceleration gained was significant, as seen in Figures five and six. Also, by comparing the following pictures, it

Scene Total Elements Occlusion Range teapot 19,200 1/12 of teapot 19,200 1/12 of 94,860 1/12 of 94,860 1/12 of With hemisphere test no time (secs) 8.328 yes 7.832 no 130.9 yes 113.53 Figure Eight: Teapot with ambient occlusion with no limit on occlusion. Figure Six: Shows the results of having a limit on the occlusion range, and with the hemisphere test optimization on and off. Figure Nine: Teapot with ambient occlusion with a limit on the range of occlusion. Figure Seven: Teapot with diffuse lighting only.

Figure Ten: Head with diffuse lighting only. Figure Twelve: Head with ambient occlusion with a limit on the range of occlusion. 5 Conclusion and Future Work The method presented in this paper uses a spatial subdivision structure (an octree) to accelerate the ambient occlusion calculation for a. An octree is used to exploit two properties of ambient occlusion. The first one is that ambient occlusion is a function of nearby geometry. The second one is that the occlusion of a point is determined solely by the geometry that is located in the hemisphere oriented around the surface normal of that point. By using an octree, the algorithm can quickly compute the occlusion of nearby surface elements onto a receiving element by traversing down nodes accordingly. An octree also allows for fast hemisphere tests in order to determine if the occlusion caused by the elements in a node need be computed or not by using equation 2 on nodes. Figure Eleven: Head with ambient occlusion with no limit on occlusion. Ambient Occlusion is a good method that mimics global illumination effects at a much lower cost than radiosity. It is therefore a worthwhile method to work with until graphics hardware can support such expensive methods. In addition to being used for regular lighting purposes ambient occlusion could be used in other areas. Ambient occlusion distinctly highlights the geometry of an object and could be considered for use in the field of nonphotorealistic rendering.

Future work could be done in many areas. Octree levels can be used to incorporate Bunnel's [2005] surface element hierarchy, with each level also containing a representative surface element that is based on all the surface elements within that level. With this in place, the restriction on the range of occlusion could still remain intact, and the surface element hierarchy could be used within this range. This would benefit s that have a large occlusion range. Also, work could be done to decrease the dependency of the quality of ambient occlusion on the geometry of the. To remedy this a subdivision technique could be used, such as Iones [2003] lightmap method. Finer patches are created by projecting input polygons onto a uniform grid. The patches that are created from this can then be used in the ambient occlusion calculation. The calculated occlusion values can then be stored in a lightmap that is the size of the uniform grid. At run time, lightmaps are applied to the original polygon data, resulting in a better result, without the need to render extra geometry (although the time taken to calculate the ambient occlusion increases proportionally and this technique is suitable only for non real-time purposes. Another possibility for future work is to explore the use of different spatial subdivision structures. Iones, A., Krupkin, A., Sbert, M., and Zhukov, S. 2003. Fast, Realistic Lighting for Video Games. IEEE Comput. Graph. Appl. 23, 3 (May. 2003), 54-64. Méndez, A., Sbert, M., and Catá, J. 2003. Real-time obscurances with color bleeding. In Proceedings of the 19th Spring Conference on Computer Graphics (Budmerice, Slovakia, April 24-26, 2003). L. Szirmay-Kalos, Ed. SCCG '03. ACM Press, New York, NY, 171-176. Zhukov, S., Iones, A., Kronin, G.: "An Ambient Light Illumination Model", Rendering Techniques'98, Springer-Wien, NewYork (Proc. of Eurographics Rendering Workshop'98 - Vienna, Austria), pp. 45 55. References Bunnel, Michael. 2005. Dynamic Ambient Occlusion and Indirect Lighting. In GPU Gems 2: Programming Techniques for High-Performance Graphics and General-Purpose Computation, Matt Pharr, editor, chapter 14, pages 223 233. Christensen, P. H. 2002. Ambient Occlusion, Image-Based Illumination, and Global Illumination. PhotoRealistic RenderMan Application Notes, Note #35. Goral, C. M., Torrance, K. E., Greenberg, D. P., and Battaile, B. 1984. Modeling the interaction of light between diffuse surfaces. In Proceedings of the 11th Annual Conference on Computer Graphics and interactive Techniques H. Christiansen, Ed. SIGGRAPH '84. ACM Press, New York, NY, 213-222. Hanrahan, P., Salzman, D., and Aupperle, L. 1991. A rapid hierarchical radiosity algorithm. In Proceedings of the 18 th Annual Conference on Computer Graphics and interactive Techniques SIGGRAPH '91. ACM Press, New York, NY, 197-206.