Rendering Soft Shadows and Glossy Reflections with Cone Tracing

Size: px
Start display at page:

Download "Rendering Soft Shadows and Glossy Reflections with Cone Tracing"

Transcription

1 Rendering Soft Shadows and Glossy Reflections with Cone Tracing Keaton Brandt FIGURE 1: A 200 polygon Stanford Bunny with soft shadows rendered using traditional ray tracing (left, 32 shadow samples) and cone tracing (right, 64x64 cone buffer resolution). Abstract In this paper we demonstrate a method of rendering scenes using cone tracing, a variant of ray tracing. Specifically, we use cones to render realistic shadows from non- point light sources (soft shadows), and to simulate reflections from surfaces that are not perfect mirrors (glossy reflections). These effects are possible with traditional ray tracing, but require a great deal of compute power to get good results. Our cone tracing algorithm is able to out- perform ray tracing in most scenarios. 1 Introduction Ray tracers model light using infinitely thin straight lines, which results in a relatively accurate physical simulation of photons but requires massive oversampling of the scene in order to produce clean results. To render things like soft shadows and glossy reflections, ray tracers distribute single beams into dozens or even hundreds of secondary beams that emanate outwards from intersection points. Cone tracing simplifies this step by modeling these secondary rays as a single volumetric cone shape that can be intersected with the scene geometry. In other words, instead of modeling the actual straight- line photons, the renderer models the entire region in which those photons could potentially exist. Such a system has two major advantages. First, it speeds up rendering by reducing the number of intersections that need to be calculated. Second, it does not involve any randomness and therefore reduces the amount of noise in the scene. It can, theoretically, replicate any effect currently accomplished with distributed ray tracing. The biggest downside is that it adds a huge amount of complication to the rendering engine, which makes the software harder to extend and optimize. It can also be very difficult to debug due to the number of sub- systems involved (cone intersection, scan- line conversion, cone generation, geometry division, etcetera). For these reasons, cone tracing is rarely used in production environments. However, Occam s Razor is not an immutable law of the universe; sometimes more complicated solutions are more effective than simpler ones. For this reason, we believe that

2 cone tracing should be revisited, and have demonstrated that it can work alongside ray tracing to produce fast, excellent results in a wide variety of situations. 1.1 Prior Work Cone tracing was first proposed in Ray Tracing with Cones [Amanatides 1984]. The paper outlines the basic concept and a variety of approximate intersection algorithms. The results are particularly impressive for 1984, however he does not compare them to traditional ray tracing for quality or speed. His system also models everything as cones, even in situations where rays would suffice and be faster. Still, it is easily the foundational paper of the field, and most of the algorithms in this paper are based off of his work. A similar method, beam tracing, was proposed the same year in Beam Tracing Polygonal Objects [Heckbert & Hanrahan 1984]. It is a similar concept, but it uses rectangular prism or square pyramid shapes instead of circular cones. Their work involved optimizing non- glossy reflection and refraction by taking advantage of the spacial coherence of a scene using a beam tree, instead of the traditional recursive approach to ray tracing. The paper provides a much more detailed approach to fast CPU- based scan conversion of polygons that acempts to minimize gaps between shapes. Interactive Indirect Illumination Using Voxel Cone Tracing [Crassin et. al. 2011] explores its use as a way to achieve effects such as radiosity in real time on the GPU (it was co- sponsored by Nvidia). They do this by representing the scene as a grid of cubic voxels, rather than polygon meshes or surface geometry. This modern research proves that cone tracing is worth revisiting, and that its usefulness may actually extend beyond what distributed ray tracing is capable of. 2 Approach This paper describes a system capable of using both rays and cones to render a scene. The rendering of each pixel starts with a ray being cast outwards from the camera. When that ray hits an object, the ray tracer calls on the cone tracer to determine the shadow and reflection colors at the intersection points, and factors those results into those final color calculations for the pixel. The cone tracer can also call itself to create tertiary cones for reflections and shadows inside of reflections. This modular system, diagrammed in figure 2, lays out a clear separation of concerns for the different classes. FIGURE 2: A high- level view of the architecture of the dual- mode rendering engine. The beam tracing approach is expanded to handle scene antialiasing in A Beam Tracing Method with Precise Antialiasing for Polyhedral Scenes [Ghazenfarpour & Hasenfraf, 1998]. Their method is able to work on any convex polyhedra, and includes many optimizations not possible for more complex scenes. They also briefly explore applying these same optimizations to soft shadows, and compare those results to traditional ray tracing. They were the first to prove that volumetric samples (beams or cones) can be more computationally efficient than rays. Cone tracing has not achieved widespread adoption, however with the advent of programmable GPUs there has been a resurgence of interest in the topic. For example, Point, Light Pixel Location Shadow Occlusion Cone Tracer Render Thread Ray Tracer Point, Normal % Occlusion Pixel Color Reflection Color Reflection Cone Tracer Reflection Intersection Point - > % Occlusion

3 The cone tracer itself is broken up into several different modules. The core class creates cone objects, lists and sorts their intersections with objects in the scene, and then has the cone buffer class determine a cones eye view and average the results. The cone- object intersection algorithms, discussed in detail in section 3, are included in the representative classes for each object to allow for easy extension. The cone buffer class includes a scan- line renderer that works for circle, plane and polygon shapes, and can draw either greyscale or color data. Each component can be debugged individually, which goes a long way towards addressing the complexity problems. The ray tracing class can also be toggled to use distributed ray tracing instead of cone tracing. That system includes stratified sampling to reduce noise. Scene- wide antialiasing is also accomplished using distributed ray tracing. The rendering engine does not include a volumetric data structure such as a k- d tree for faster intersection lookup, which dramatically slows down scenes with a large number of polygons. 3 Intersection Algorithms Determining intersections between 3D shapes and cones is a licle more challenging than using rays. For one thing, ray- object intersections always result in a finite number of points, of which the closest one can be chosen. Cone- object intersections generally result in 3D lines, generally modeled using cubic equations. As a result, direct system- of- equations solutions are inefficient and unnecessary. Instead, a number of different approximations are used, which achieve accurate results in most situations. 3.1 Cone-Sphere Intersection If it is assumed that the entirety of the sphere is in front of the cone s origin point, intersections can be determined by simply finding the shortest distance from the center point of the sphere to the center ray of the cone. An intersection exists if this distance, d, is less than the sum of the radius of the sphere and the radius of the cone at that point. Figure 3 demonstrates this graphically. 2.1 Cone Representation The cone representation class is a simple extension of a standard ray representation, which includes an origin point and a direction vector. Cones are modeled as rays with a non- zero width that changes linearly with the distance along the ray. In other words, the radius of the cone is represented as a linear equation: Finding d first involves finding a plane orthogonal to the center line of the cone that includes the center point of the sphere. Where is the center point of the sphere and is the direction vector of the cone. The plane is defined implicitly, so finding the distance from the origin point of the cone to the plane (the t parameter) is a simple macer of algebra. Where t is a parameter distance along the center line of the cone. Because all cones use this linear function, their width can be represented with only the spread coefficient, h. Therefore, cones can be entirely modeled by two vectors (origin and direction) and one scalar (h). Knowing t is not only useful for determining the radius of the cone, it also means that d can be calculated using the pythagorean theorem. Origin t r(t) Center Ray Where c is the origin point of the cone. The cone and sphere intersect if and only if d < c r + r(t).

4 FIGURE 3: A 2D diagram representing the logic behind cone- sphere intersection. The left cone has an intersection, the right one does not. cr d r(t) cr d r(t) Even with the points reduced to 2D, several cases have to be considered when checking for intersections Vertex in View The simplest, and most common, case occurs when one of the vertices of the polygon is within view of the cone. If the cone can see a vertex, it can obviously see the shape Cone Center inside Polygon 3.2 Cone-Polygon Intersection Finding the actual 3D intersection between a cone and an arbitrary polygon is a very complicated problem. It is also a very common problem, since 3D models are usually treated as collections of triangles or quads. Luckily, it can be reduced to a 2D problem using the same perspective transformations that simulate cameras [Amanatides 1984]. In other words, instead of dealing with each point of the polygon in 3D space, each point is mapped to a 2D location in the cone s eye view and the intersection algorithm operates on that. The transformation matrix is calculated the same way as it would be for a camera. The focal length, f, is equal to 1/h. The near clipping plane is set as close to zero as possible without encountering floating point error, and the far plane is set to infinity. With only these variables, an intrinsic camera matrix can be created. If a polygon blocks the entire view of the cone, none of its points will be within the viewport. To detect this situation, 2D ray casting is used. If every ray passing from the center of the viewport through one of the edges of the polygon intersects an odd number of edges, the circle is inside the polygon. An even number of intersections means the ray both entered and exited the polygon, which means that it was not inside the shape to begin with. This is the most compute intensive check, so it is performed last Edge Intersection Even if both of those tests fail, there could still be an intersection. As Figure 4 demonstrates, it is possible to have an edge of the polygon intersect with an edge of the viewport. These intersection points can be found using a similar method to the sphere intersection algorithm described in Section 3.1. The code finds the closest point on the edge to (0,0), the center of the viewport. If the point is closer than 0.5 units away, there is an intersection. FIGURE 4: Different types of cone- triangle intersections. This matrix can then be multiplied by rotation and translation matrices to fully represent the point of view of the cone. Then 3D points can be mapped onto the cone s 2D viewport by multiplying them by the transformation matrix. A point that lies on the cone s center line will map to (0,0). Any point whose distance from (0,0) is less than 0.5 is considered to be within the circular viewport. Vertex in View Edge Intersection Cone Center Inside

5 3.3 Cone-Plane Intersection The third intersection algorithm came in handy for the simple test scenes used in this paper, but is less common in production applications. It models a plane that extends infinitely in all directions, which is useful in part because it is so easy to find intersections. The sine of the angle between the center of the cone and the normal vector of the plane is determined using a dot product. The sine of the spread angle of the cone is also determined as: 4.1 Circle Rendering Scan- line renderers are so named because they draw shapes one line at a time. Therefore, scan- line rendering of a circle essentially boils down to figuring out where each line starts and ends (because a circle has no holes in the middle). Using the pythagorean theorem, it is easy to find the width of a circle at a given y value above or below its center. Where r is the radius of the circle and c y is the y component of its center in viewport coordinate. If the angle between the cone and the normal is less than sin(π/2) - a then there is no intersection. If it is greater than sin(π/2) + a then there is a full intersection (the plane fully occludes the cone). The percent occlusion of the cone varies linearly from sin(π/2) - a to sin(π/2) + a. 4 Scan-line Rendering The viewpoint of each cone is rendered using a simple CPU- based scan- line renderer. Only the average value of this viewport actually macers, but it is important to draw the shapes correctly in a 2D buffer because some objects may partially or entirely occlude other objects. To cut out the relatively costly averaging step at the end, the renderer keeps a running total of every pixel in view. Whenever a pixel is changed, the sum is updated. The soft shadow cone tracer determines occlusion by comparing the sum of the buffer after the light is drawn, and then again after every object in front of the light is drawn. The light has a value of 255 and the objects have a value of 0, so any objects blocking the light will decrease the sum. A line is drawn from x start to x end for every scan- line, clipping both values to be within range of the buffer. 4.2 Triangle Rendering Triangles are easy to render in scan- lines when 2 of the vertices are lined up on the y axis. These axis- oriented triangles can be rendered by simply interpolating the start and end x values from the 2 aligned points to the 1 outlier point. All triangles can be converted into axis- aligned triangles by splicing them in half. The split point passes through the vertex with the median y- value. Then, both halves are rendered separately. Anti- aliasing can be added by blending pixels with non- integer x or y values. FIGURE 5: Scan- line rendering process for triangles. Every polygon shape can be reduced to triangles. Plane intersections are represented as quads that face the correct direction and occlude the correct amount of the view. Therefore, only two scan- line rendering algorithms are needed for the buffer.

6 FIGURE 6: Two examples of rendering bugs. Left: A shadow cone buffer from the Stanford Bunny scene showing horizontal line artifacts. Right: A shadow buffer demonstrating poorly anti- aliased lines. 4.3 Rendering Glitches It was very difficult to achieve clean results due to the number of different edge cases present when working with complex 3D geometry. For example, when some points on the polygon are behind the camera and some are in front, the 2D mapping is unreliable. The algorithm currently does not account for this problem (OpenGL solves it with frustum culling). Another problem is that floating point error causes triangles to not perfectly line up, which often causes some scan- line to incorrectly be marked on or off. Two examples of this, caused by slightly different phenomena, are shown in Figure 6. 5 Reflections 5.1 Generating Secondary Reflection Cones Secondary reflection cones are cones that are created when a reflection cone intersects a reflective object. The secondary cone must cover the entire intersection region, and reflect across the normal of the intersection point. This is easy for flat geometry that has only one normal and a clear boundary for intersection. Spherical geometry is more complicated, but can be approximated by simply taking the normal at the center point of the intersection. When reflecting off of flat, non- glossy surfaces, the spread value of the secondary cone remains the same. Glossy surfaces will increase the spread value, since glossy objects are able to reflect a slightly larger area of the scene. Curved surfaces will also affect the spread value; Convex curves will expand it, concave curves will decrease or even negate it. Objects with both concave and convex regions will need to be split into multiple shapes (this is beyond the scope of the paper). The intersection is represented with a circumcircle, a flat circle that contains the entire intersection. A cone is then created with the desired spread value that passes through this circle. The t parameter of the cone is offset so that the original circle is the cone s slice at t=0. In other words, the cone extends behind the intersection, but that part is ignored. FIGURE 7: A debugging view of all the cones created for a single pixel, each represented by their center line. Red = Reflection Cone. Blue = Shadow Cone. Glossy Reflections proved to be a very difficult challenge, mostly due to the difficulty of debugging them. Even simple scenes can end up with dozens of reflections and shadow cones per pixel, each contributing to one another in non- obvious ways. Figure 7 shows one such scene. For this reason, we were never able to achieve desirable results from cone- traced reflections. However, much of the math behind the reflection algorithm is solid, at least for the cases examined by this paper.

7 6 Results In most cases, our cone tracing algorithm was able to out- perform ray tracing on the same scene. In some cases, such as the Stanford Bunny in Figure 1, the differences are dramatic. The cone tracer was able to achieve a nearly perfect render (a very smooth shadow with no visible graininess), whereas the ray traced render is noticeably noisy and blotchy. It s worth noting that both of the renders contain a small amount of noise caused by glitches in the multithreaded renderer. These are likely due to one of the libraries or classes not being entirely thread safe. FIGURE 8: A scene rendered with Distributed Ray Tracing (top) and Cone Tracing (bocom). The cone tracer also won out in speed. The ray tracer took 1 hour, 31 minutes, versus a mere 19 minutes taken by the cone tracer. In other words, our cone tracing algorithm was able to produce dramatically becer results, 5 times faster. Ray Tracing. 64 Shadow Samples. 4:59 Render Time This may not be an entirely fair comparison though, mostly due to the fact that our rendering engine does not include a volumetric search data structure for intersections. Both the ray tracer and the cone tracer are forced to check each of the 200 polygons in the scene for an intersection. However, the cone tracer only needs to do this once per shadow pixel, where the ray tracer must do it once for each of the 32 samples. The ability to work well in environments like this is certainly an advantage of cone tracing, but presenting these results as a general case would be disingenuous. The simpler test scene with 3 spheres (Figure 8) is a much fairer test case. Finding intersections with spheres is very easy, and with only 3 of them it is reasonable to assume that checking each of them has similar performance to the overhead of a data structure such as an octree or kd- tree. In this case, the renders are set up to achieve similar results, so the number of shadow samples has been doubled on the ray tracer and halved on the cone tracer. As Figure 8 demonstrates, the results are indeed very similar, although cone tracing still has a slight edge in noise and smoothness. It also still has an edge on performance. Ray tracing took approximately 5 minutes, while cone tracing took just over 1 minute. Again, a 5x speed increase. Cone Tracing. 32x32 Buffer. 1:03 Render Time FIGURE 9: Detail view of the Stanford Bunny render in Figure 1. Left: Ray Tracing, Right: Cone Tracing.

8 FIGURE 10: A glossy scene rendered with Distributed Ray Tracing (top) and Cone Tracing (bocom). The reflection results are decidedly less impressive. Our implementation suffers from a myriad of bugs common to GPU rendering, such as epsilon problems, z- fighting, and floating point error. It also has the problem discussed in Section 5 where geometry with points on both sides of the cone cannot be properly mapped into the cone buffer. This leads to the bug demonstrated in Figure 11. This bug was never fixed, which is why the scene in Figure 10 has an infinite plane instead of a ground quad. Ray Tracing. 32 Glossy Samples. 05:24:52 Render Time Figure 10 shows that our algorithm clearly needs more work when it comes to glossy reflections. Most of the detail is lost, and the elements that remain appear to be blown out. There are also some even more basic bugs, such as the reflection of the red sphere gecing randomly cut off on the blue sphere (likely due to an incorrectly calculated z- value for the ground plane). Our implementation also does not work with textured surfaces, and doing so would likely slow it down significantly since the cone buffer would need to sample the texture at each pixel. Still, the cone tracer was able to produce at least slightly accurate results in just 2.5% of the time it took the ray tracer to produce grainy results. Even with the texture sampling in place, it is likely that cone tracing could handily beat ray tracing. However, we cannot prove that conclusively with these results. Cone Tracing. 32x32 Buffer. 00:08:04 Render Time FIGURE 11: A bug that occurs when the cone traced scene is placed on a non- infinite ground plane 7 Conclusion Cone tracing does turn out to be very complicated and difficult to debug. The code for this project took approximately 42 hours to write, and is based off of an existing ray tracer. The most time consuming parts were debugging the scan- line renderer and figuring out all of the different intersection algorithms. There are certainly many more things that can go wrong. However, cone tracing has also proven itself to be far more efficient than ray tracing in a number of different scenarios. Even if cones are used for nothing but soft shadows, it can speed up a render by as much as 500%. With glossy reflections working, that speed- up could be even greater.

9 Although cone tracing was first proposed over 30 years ago, there has been licle research. Optimizations in traditional ray tracing have made it viable in most situations, so there has not been much demand for a different strategy. However, physically accurate real- time rendering is starting to become achievable thanks to the dramatic advances in GPU technology over the past few years. Teams at companies like Nvidia are starting to demonstrate ray tracers that are capable of running entirely on the GPU. These systems generally cannot scale up very well, partly because of the difficulty of maintaining spacial data structures for dynamic scenes, and partly due to inefficiency inherent in the implementation. GHAZANFARPOUR, D. AND HASENFRATZ, J.M A Beam Tracing Method with Precise Antialiasing for Polyhedral Scenes. Laboratoire MSI - Université de Limoges. HECKBERT, P. AND HANRAHAN, P Beam tracing polygonal objects. In Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, SIGGRAPH 84, Modern GPUs are programmable, but they have limits. They are still designed around the traditional rendering pipeline, so everything on top of that relies on hacks like pucing data into textures. Many GPUs cap the size of textures due to memory constraints, which in turn constrains the size of the scene that can be processed. We propose a hybrid method of real- time rendering that uses the CPU to generate rays and cones in a scene, and uses the GPU to render the cone buffers using its normal pipeline. Unfortunately, such an idea is well beyond the scope of this paper, but it shows why research into cone tracing may be important to the future of computer graphics. 8 References AMANATIDES, J Ray tracing with cones. In Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques, ACM, New York, NY, USA, SIGGRAPH 84, CRASSIN, C., NEYRET, F., SAINZ, M., GREEN, S. AND EISEMANN, E Interactive Indirect Illumination Using Voxel Cone Tracing. In Computer Graphics Forum, 30,

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology Point Cloud Filtering using Ray Casting by Eric Jensen 01 The Basic Methodology Ray tracing in standard graphics study is a method of following the path of a photon from the light source to the camera,

More information

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

More information

Pipeline Operations. CS 4620 Lecture 10

Pipeline Operations. CS 4620 Lecture 10 Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination

More information

Topics and things to know about them:

Topics and things to know about them: Practice Final CMSC 427 Distributed Tuesday, December 11, 2007 Review Session, Monday, December 17, 5:00pm, 4424 AV Williams Final: 10:30 AM Wednesday, December 19, 2007 General Guidelines: The final will

More information

Computer Graphics. Lecture 9 Environment mapping, Mirroring

Computer Graphics. Lecture 9 Environment mapping, Mirroring Computer Graphics Lecture 9 Environment mapping, Mirroring Today Environment Mapping Introduction Cubic mapping Sphere mapping refractive mapping Mirroring Introduction reflection first stencil buffer

More information

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

More information

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

More information

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

Chapter 11 Global Illumination. Part 1 Ray Tracing. Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11. Chapter 11 Global Illumination Part 1 Ray Tracing Reading: Angel s Interactive Computer Graphics (6 th ed.) Sections 11.1, 11.2, 11.3 CG(U), Chap.11 Part 1:Ray Tracing 1 Can pipeline graphics renders images

More information

Robust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan

Robust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan Robust Stencil Shadow Volumes CEDEC 2001 Tokyo, Japan Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation 2 Games Begin to Embrace Robust Shadows 3 John Carmack s new Doom engine leads the way

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

More information

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

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 Ray Tracing What was the rendering equation? Motivate & list the terms. Relate the rendering equation to forward ray tracing. Why is forward ray tracing not good for image formation? What is the difference

More information

Shadows in the graphics pipeline

Shadows in the graphics pipeline Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects

More information

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

Soft shadows. Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows Steve Marschner Cornell University CS 569 Spring 2008, 21 February Soft shadows are what we normally see in the real world. If you are near a bare halogen bulb, a stage spotlight, or other

More information

CS 4620 Midterm, March 21, 2017

CS 4620 Midterm, March 21, 2017 CS 460 Midterm, March 1, 017 This 90-minute exam has 4 questions worth a total of 100 points. Use the back of the pages if you need more space. Academic Integrity is expected of all students of Cornell

More information

Lighting and Shading

Lighting and Shading Lighting and Shading Today: Local Illumination Solving the rendering equation is too expensive First do local illumination Then hack in reflections and shadows Local Shading: Notation light intensity in,

More information

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer The exam consists of 10 questions. There are 2 points per question for a total of 20 points. You

More information

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1

Ray tracing. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 3/19/07 1 Ray tracing Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 3/19/07 1 From last time Hidden surface removal Painter s algorithm Clipping algorithms Area subdivision BSP trees Z-Buffer

More information

CEng 477 Introduction to Computer Graphics Fall 2007

CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection Visible surface detection or hidden surface removal. Realistic scenes: closer objects occludes the

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

TSBK03 Screen-Space Ambient Occlusion

TSBK03 Screen-Space Ambient Occlusion TSBK03 Screen-Space Ambient Occlusion Joakim Gebart, Jimmy Liikala December 15, 2013 Contents 1 Abstract 1 2 History 2 2.1 Crysis method..................................... 2 3 Chosen method 2 3.1 Algorithm

More information

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world

More information

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 1 Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03 Table of Contents 1 I. Overview 2 II. Creation of the landscape using fractals 3 A.

More information

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray

More information

Lecture 17: Recursive Ray Tracing. Where is the way where light dwelleth? Job 38:19

Lecture 17: Recursive Ray Tracing. Where is the way where light dwelleth? Job 38:19 Lecture 17: Recursive Ray Tracing Where is the way where light dwelleth? Job 38:19 1. Raster Graphics Typical graphics terminals today are raster displays. A raster display renders a picture scan line

More information

Point based Rendering

Point based Rendering Point based Rendering CS535 Daniel Aliaga Current Standards Traditionally, graphics has worked with triangles as the rendering primitive Triangles are really just the lowest common denominator for surfaces

More information

Computer Graphics. - Rasterization - Philipp Slusallek

Computer Graphics. - Rasterization - Philipp Slusallek Computer Graphics - Rasterization - Philipp Slusallek Rasterization Definition Given some geometry (point, 2D line, circle, triangle, polygon, ), specify which pixels of a raster display each primitive

More information

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project

Lighting. To do. Course Outline. This Lecture. Continue to work on ray programming assignment Start thinking about final project To do Continue to work on ray programming assignment Start thinking about final project Lighting Course Outline 3D Graphics Pipeline Modeling (Creating 3D Geometry) Mesh; modeling; sampling; Interaction

More information

Clipping. CSC 7443: Scientific Information Visualization

Clipping. CSC 7443: Scientific Information Visualization Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can

More information

Physically-Based Laser Simulation

Physically-Based Laser Simulation Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

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

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker CMSC427 Advanced shading getting global illumination by local methods Credit: slides Prof. Zwicker Topics Shadows Environment maps Reflection mapping Irradiance environment maps Ambient occlusion Reflection

More information

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

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 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 Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render

More information

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today!

Real-Time Shadows. Last Time? Textures can Alias. Schedule. Questions? Quiz 1: Tuesday October 26 th, in class (1 week from today! Last Time? Real-Time Shadows Perspective-Correct Interpolation Texture Coordinates Procedural Solid Textures Other Mapping Bump Displacement Environment Lighting Textures can Alias Aliasing is the under-sampling

More information

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality.

For Intuition about Scene Lighting. Today. Limitations of Planar Shadows. Cast Shadows on Planar Surfaces. Shadow/View Duality. Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization

More information

Pipeline Operations. CS 4620 Lecture 14

Pipeline Operations. CS 4620 Lecture 14 Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives

More information

The Traditional Graphics Pipeline

The Traditional Graphics Pipeline Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics

More information

Assignment 6: Ray Tracing

Assignment 6: Ray Tracing Assignment 6: Ray Tracing Programming Lab Due: Monday, April 20 (midnight) 1 Introduction Throughout this semester you have written code that manipulated shapes and cameras to prepare a scene for rendering.

More information

Deferred Rendering Due: Wednesday November 15 at 10pm

Deferred Rendering Due: Wednesday November 15 at 10pm CMSC 23700 Autumn 2017 Introduction to Computer Graphics Project 4 November 2, 2017 Deferred Rendering Due: Wednesday November 15 at 10pm 1 Summary This assignment uses the same application architecture

More information

Reading. 18. Projections and Z-buffers. Required: Watt, Section , 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading:

Reading. 18. Projections and Z-buffers. Required: Watt, Section , 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading: Reading Required: Watt, Section 5.2.2 5.2.4, 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading: 18. Projections and Z-buffers Foley, et al, Chapter 5.6 and Chapter 6 David F. Rogers

More information

Distribution Ray-Tracing. Programação 3D Simulação e Jogos

Distribution Ray-Tracing. Programação 3D Simulação e Jogos Distribution Ray-Tracing Programação 3D Simulação e Jogos Bibliography K. Suffern; Ray Tracing from the Ground Up, http://www.raytracegroundup.com Chapter 4, 5 for Anti-Aliasing Chapter 6 for Disc Sampling

More information

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker Rendering Algorithms: Real-time indirect illumination Spring 2010 Matthias Zwicker Today Real-time indirect illumination Ray tracing vs. Rasterization Screen space techniques Visibility & shadows Instant

More information

So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources.

So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources. 11 11.1 Basics So far, we have considered only local models of illumination; they only account for incident light coming directly from the light sources. Global models include incident light that arrives

More information

Lecture Outline Chapter 26. Physics, 4 th Edition James S. Walker. Copyright 2010 Pearson Education, Inc.

Lecture Outline Chapter 26. Physics, 4 th Edition James S. Walker. Copyright 2010 Pearson Education, Inc. Lecture Outline Chapter 26 Physics, 4 th Edition James S. Walker Chapter 26 Geometrical Optics Units of Chapter 26 The Reflection of Light Forming Images with a Plane Mirror Spherical Mirrors Ray Tracing

More information

Intro to Ray-Tracing & Ray-Surface Acceleration

Intro to Ray-Tracing & Ray-Surface Acceleration Lecture 12 & 13: Intro to Ray-Tracing & Ray-Surface Acceleration Computer Graphics and Imaging UC Berkeley Course Roadmap Rasterization Pipeline Core Concepts Sampling Antialiasing Transforms Geometric

More information

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and

More information

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

Computer Graphics. Lecture 13. Global Illumination 1: Ray Tracing and Radiosity. Taku Komura Computer Graphics Lecture 13 Global Illumination 1: Ray Tracing and Radiosity Taku Komura 1 Rendering techniques Can be classified as Local Illumination techniques Global Illumination techniques Local

More information

Homework #2. Shading, Ray Tracing, and Texture Mapping

Homework #2. Shading, Ray Tracing, and Texture Mapping Computer Graphics Prof. Brian Curless CSE 457 Spring 2000 Homework #2 Shading, Ray Tracing, and Texture Mapping Prepared by: Doug Johnson, Maya Widyasari, and Brian Curless Assigned: Monday, May 8, 2000

More information

Advanced Shading I: Shadow Rasterization Techniques

Advanced Shading I: Shadow Rasterization Techniques Advanced Shading I: Shadow Rasterization Techniques Shadow Terminology umbra: light totally blocked penumbra: light partially blocked occluder: object blocking light Shadow Terminology umbra: light totally

More information

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming L1 - Introduction Contents Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming 1 Definitions Computer-Aided Design (CAD) The technology concerned with the

More information

CS 130 Final. Fall 2015

CS 130 Final. Fall 2015 CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 11794--4400 Tel: (631)632-8450; Fax: (631)632-8334

More information

Graphics and Interaction Rendering pipeline & object modelling

Graphics and Interaction Rendering pipeline & object modelling 433-324 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering

More information

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

TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) TDA362/DIT223 Computer Graphics EXAM (Same exam for both CTH- and GU students) Saturday, January 13 th, 2018, 08:30-12:30 Examiner Ulf Assarsson, tel. 031-772 1775 Permitted Technical Aids None, except

More information

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting

Real-Time Shadows. Last Time? Today. Why are Shadows Important? Shadows as a Depth Cue. For Intuition about Scene Lighting Last Time? Real-Time Shadows Today Why are Shadows Important? Shadows & Soft Shadows in Ray Tracing Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes Why are Shadows Important? Depth

More information

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important?

Last Time. Why are Shadows Important? Today. Graphics Pipeline. Clipping. Rasterization. Why are Shadows Important? Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Graphics Pipeline Clipping Rasterization

More information

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline

Effects needed for Realism. Computer Graphics (Fall 2008) Ray Tracing. Ray Tracing: History. Outline Computer Graphics (Fall 2008) COMS 4160, Lecture 15: Ray Tracing http://www.cs.columbia.edu/~cs4160 Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water, Glass)

More information

Introduction to Visualization and Computer Graphics

Introduction to Visualization and Computer Graphics Introduction to Visualization and Computer Graphics DH2320, Fall 2015 Prof. Dr. Tino Weinkauf Introduction to Visualization and Computer Graphics Visibility Shading 3D Rendering Geometric Model Color Perspective

More information

CS4620/5620: Lecture 14 Pipeline

CS4620/5620: Lecture 14 Pipeline CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine

More information

Ray Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University

Ray Tracing. CS334 Fall Daniel G. Aliaga Department of Computer Science Purdue University Ray Tracing CS334 Fall 2013 Daniel G. Aliaga Department of Computer Science Purdue University Ray Casting and Ray Tracing Ray Casting Arthur Appel, started around 1968 Ray Tracing Turner Whitted, started

More information

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

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL International Edition Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL Sixth Edition Edward Angel Dave Shreiner Interactive Computer Graphics: A Top-Down Approach with Shader-Based

More information

Computer Graphics Shadow Algorithms

Computer Graphics Shadow Algorithms Computer Graphics Shadow Algorithms Computer Graphics Computer Science Department University of Freiburg WS 11 Outline introduction projection shadows shadow maps shadow volumes conclusion Motivation shadows

More information

COMPUTER GRAPHICS COURSE. Rendering Pipelines

COMPUTER GRAPHICS COURSE. Rendering Pipelines COMPUTER GRAPHICS COURSE Rendering Pipelines Georgios Papaioannou - 2014 A Rendering Pipeline Rendering or Graphics Pipeline is the sequence of steps that we use to create the final image Many graphics/rendering

More information

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001

Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 Computer graphics Assignment 5 1 Overview Ray Tracer I: Ray Casting Due date: 12:00pm December 3, 2001 In this assignment you will implement the camera and several primitive objects for a ray tracer. We

More information

Graphics for VEs. Ruth Aylett

Graphics for VEs. Ruth Aylett Graphics for VEs Ruth Aylett Overview VE Software Graphics for VEs The graphics pipeline Projections Lighting Shading VR software Two main types of software used: off-line authoring or modelling packages

More information

CPSC GLOBAL ILLUMINATION

CPSC GLOBAL ILLUMINATION CPSC 314 21 GLOBAL ILLUMINATION Textbook: 20 UGRAD.CS.UBC.CA/~CS314 Mikhail Bessmeltsev ILLUMINATION MODELS/ALGORITHMS Local illumination - Fast Ignore real physics, approximate the look Interaction of

More information

Ray Tracing through Viewing Portals

Ray Tracing through Viewing Portals Ray Tracing through Viewing Portals Introduction Chris Young Igor Stolarsky April 23, 2008 This paper presents a method for ray tracing scenes containing viewing portals circular planes that act as windows

More information

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling

Motivation. Culling Don t draw what you can t see! What can t we see? Low-level Culling Motivation Culling Don t draw what you can t see! Thomas Larsson Mälardalen University April 7, 2016 Image correctness Rendering speed One day we will have enough processing power!? Goals of real-time

More information

3D Rasterization II COS 426

3D Rasterization II COS 426 3D Rasterization II COS 426 3D Rendering Pipeline (for direct illumination) 3D Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation

More information

Example Examination 2IV

Example Examination 2IV Example Examination IV60-04071 (translated version IV10 4 july 01, 14:00-17:00) This examination consist of four questions with in total 16 subquestion. Each subquestion weighs equally. In all cases: EXPLAIN

More information

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018

CSE 167: Introduction to Computer Graphics Lecture #9: Visibility. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 CSE 167: Introduction to Computer Graphics Lecture #9: Visibility Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2018 Announcements Midterm Scores are on TritonEd Exams to be

More information

Course Number: Course Title: Geometry

Course Number: Course Title: Geometry Course Number: 1206310 Course Title: Geometry RELATED GLOSSARY TERM DEFINITIONS (89) Altitude The perpendicular distance from the top of a geometric figure to its opposite side. Angle Two rays or two line

More information

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping Topic 12: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures

More information

Shadow Techniques. Sim Dietrich NVIDIA Corporation

Shadow Techniques. Sim Dietrich NVIDIA Corporation Shadow Techniques Sim Dietrich NVIDIA Corporation sim.dietrich@nvidia.com Lighting & Shadows The shadowing solution you choose can greatly influence the engine decisions you make This talk will outline

More information

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

This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you This work is about a new method for generating diffusion curve style images. Although this topic is dealing with non-photorealistic rendering, as you will see our underlying solution is based on two-dimensional

More information

Practical 2: Ray Tracing

Practical 2: Ray Tracing 2017/2018, 4th quarter INFOGR: Graphics Practical 2: Ray Tracing Author: Jacco Bikker The assignment: The purpose of this assignment is to create a small Whitted-style ray tracer. The renderer should be

More information

CS451Real-time Rendering Pipeline

CS451Real-time Rendering Pipeline 1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does

More information

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling

CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project

More information

Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007

Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007 Problem Set 4 Part 1 CMSC 427 Distributed: Thursday, November 1, 2007 Due: Tuesday, November 20, 2007 Programming For this assignment you will write a simple ray tracer. It will be written in C++ without

More information

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows

Recollection. Models Pixels. Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows Recollection Models Pixels Model transformation Viewport transformation Clipping Rasterization Texturing + Lights & shadows Can be computed in different stages 1 So far we came to Geometry model 3 Surface

More information

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic. Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

More information

Midterm Exam CS 184: Foundations of Computer Graphics page 1 of 11

Midterm Exam CS 184: Foundations of Computer Graphics page 1 of 11 Midterm Exam CS 184: Foundations of Computer Graphics page 1 of 11 Student Name: Class Account Username: Instructions: Read them carefully! The exam begins at 2:40pm and ends at 4:00pm. You must turn your

More information

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization Last Time Modeling Transformations Illumination (Shading) Real-Time Shadows Viewing Transformation (Perspective / Orthographic) Clipping Projection (to Screen Space) Scan Conversion (Rasterization) Visibility

More information

CS354 Computer Graphics Ray Tracing. Qixing Huang Januray 24th 2017

CS354 Computer Graphics Ray Tracing. Qixing Huang Januray 24th 2017 CS354 Computer Graphics Ray Tracing Qixing Huang Januray 24th 2017 Graphics Pipeline Elements of rendering Object Light Material Camera Geometric optics Modern theories of light treat it as both a wave

More information

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized Topic 11: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip mapping & env mapping Texture sources: Photographs Texture sources: Procedural Texture sources: Solid textures

More information

Voxel Cone Tracing and Sparse Voxel Octree for Real-time Global Illumination. Cyril Crassin NVIDIA Research

Voxel Cone Tracing and Sparse Voxel Octree for Real-time Global Illumination. Cyril Crassin NVIDIA Research Voxel Cone Tracing and Sparse Voxel Octree for Real-time Global Illumination Cyril Crassin NVIDIA Research Global Illumination Indirect effects Important for realistic image synthesis Direct lighting Direct+Indirect

More information

Visual cues to 3D geometry. Light Reflection and Advanced Shading. Shading. Recognizing materials. size (perspective) occlusion shading

Visual cues to 3D geometry. Light Reflection and Advanced Shading. Shading. Recognizing materials. size (perspective) occlusion shading Visual cues to 3D geometry Light Reflection and Advanced Shading size (perspective) occlusion shading CS 4620 Lecture 17 1 2 Shading Recognizing materials Variation in observed color across an object strongly

More information

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

Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia. Shadows Acknowledgement: Images and many slides from presentations by Mark J. Kilgard and other Nvidia folks, from slides on developer.nvidia.com Practical & Robust Stenciled Shadow Volumes for Hardware-Accelerated

More information

Applications of Explicit Early-Z Culling

Applications of Explicit Early-Z Culling Applications of Explicit Early-Z Culling Jason L. Mitchell ATI Research Pedro V. Sander ATI Research Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of

More information

Philipp Slusallek Karol Myszkowski. Realistic Image Synthesis SS18 Instant Global Illumination

Philipp Slusallek Karol Myszkowski. Realistic Image Synthesis SS18 Instant Global Illumination Realistic Image Synthesis - Instant Global Illumination - Karol Myszkowski Overview of MC GI methods General idea Generate samples from lights and camera Connect them and transport illumination along paths

More information

Computer Graphics Ray Casting. Matthias Teschner

Computer Graphics Ray Casting. Matthias Teschner Computer Graphics Ray Casting Matthias Teschner Outline Context Implicit surfaces Parametric surfaces Combined objects Triangles Axis-aligned boxes Iso-surfaces in grids Summary University of Freiburg

More information

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012)

Effects needed for Realism. Ray Tracing. Ray Tracing: History. Outline. Foundations of Computer Graphics (Spring 2012) Foundations of omputer Graphics (Spring 202) S 84, Lecture 5: Ray Tracing http://inst.eecs.berkeley.edu/~cs84 Effects needed for Realism (Soft) Shadows Reflections (Mirrors and Glossy) Transparency (Water,

More information

Movie: For The Birds. Announcements. Ray Tracing 1. Programming 2 Recap. Programming 3 Info Test data for part 1 (Lines) is available

Movie: For The Birds. Announcements. Ray Tracing 1. Programming 2 Recap. Programming 3 Info Test data for part 1 (Lines) is available Now Playing: Movie: For The Birds Pixar, 2000 Liar Built To Spill from You In Reverse Released April 11, 2006 Ray Tracing 1 Rick Skarbez, Instructor COMP 575 November 1, 2007 Announcements Programming

More information

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural

Topic 11: Texture Mapping 10/21/2015. Photographs. Solid textures. Procedural Topic 11: Texture Mapping Motivation Sources of texture Texture coordinates Bump mapping, mip mapping & env mapping Topic 11: Photographs Texture Mapping Motivation Sources of texture Texture coordinates

More information

03 RENDERING PART TWO

03 RENDERING PART TWO 03 RENDERING PART TWO WHAT WE HAVE SO FAR: GEOMETRY AFTER TRANSFORMATION AND SOME BASIC CLIPPING / CULLING TEXTURES AND MAPPING MATERIAL VISUALLY DISTINGUISHES 2 OBJECTS WITH IDENTICAL GEOMETRY FOR NOW,

More information

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler

Real-Time Shadows. MIT EECS 6.837, Durand and Cutler Real-Time Shadows Last Time? The graphics pipeline Clipping & rasterization of polygons Visibility the depth buffer (z-buffer) Schedule Quiz 2: Thursday November 20 th, in class (two weeks from Thursday)

More information

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

COMP30019 Graphics and Interaction Scan Converting Polygons and Lines COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence

More information

Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin

Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin Visible-Surface Detection Methods Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin The Visibility Problem [Problem Statement] GIVEN: a set of 3-D surfaces, a projection from 3-D to 2-D screen,

More information

Ray Tracer Due date: April 27, 2011

Ray Tracer Due date: April 27, 2011 Computer graphics Assignment 4 1 Overview Ray Tracer Due date: April 27, 2011 In this assignment you will implement the camera and several primitive objects for a ray tracer, and a basic ray tracing algorithm.

More information