Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 8 Advanced Rendering – Ray Tracing, Radiosity & NPR.

Similar presentations


Presentation on theme: "Lecture 8 Advanced Rendering – Ray Tracing, Radiosity & NPR."— Presentation transcript:

1 Lecture 8 Advanced Rendering – Ray Tracing, Radiosity & NPR

2 Ray Tracing Y X Z eye screen incident ray world coordinates scene model nearest intersected surface refracted ray reflected ray shadow “feeler” ray Slide Courtesy of Roger Crawfis, Ohio State

3 Ray-Tracing Pseudocode For each ray r from eye to pixel, color the pixel the value returned by ray_cast(r): ray_cast(r) { s  nearest_intersected_surface(r); p  point_of_intersection(r, s); u  reflect(r, s, p); v  refract(r, s, p); c  phong(p, s, r) + s.k reflect  ray_cast(u) + s.k refract  ray_cast(v); return(c); } Slide Courtesy of Roger Crawfis, Ohio State

4 Pseudocode Explained s  nearest_intersected_surface(r); –Use geometric searching to find the nearest surface s intersected by the ray r p  point_of_intersection(r, s); –Compute p, the point of intersection of ray r with surface s u  reflect(r, s, p); v  refract(r, s, p); –Compute the reflected ray u and the refracted ray v using Snell’s Laws Slide Courtesy of Roger Crawfis, Ohio State

5 Reflected and Refracted Rays Reflected and refracted rays are computed using Snell’s Law surface reflected ray incident ray surface normal refracted ray Slide Courtesy of Roger Crawfis, Ohio State

6 Pseudocode Explained phong(p, s, r) –Evaluate the Phong reflection model for the ray r at point p on surface s, taking shadowing into account (see next slide) s.k reflect  ray_cast(u) –Multiply the contribution from the reflected ray u by the specular-reflection coefficient k reflect for surface s s.k refract  ray_cast(v) –Multiply the contribution from the refracted ray v by the specular-refraction coefficient k refract for surface s Slide Courtesy of Roger Crawfis, Ohio State

7 About Those Calls to ray_cast()... The function ray_cast() calls itself recursively There is a potential for infinite recursion –Consider a “hall of mirrors” Solution: limit the depth of recursion –A typical limit is five calls deep –Note that the deeper the recursion, the less the ray’s contribution to the image, so limiting the depth of recursion does not affect the final image much Slide Courtesy of Roger Crawfis, Ohio State

8 Pros and Cons of Ray Tracing Advantages of ray tracing –All the advantages of the Phong model –Also handles shadows, reflection, and refraction Disadvantages of ray tracing –Computational expense –No diffuse inter-reflection between surfaces –Not physically accurate Other techniques exist to handle these shortcomings, at even greater expense! Slide Courtesy of Roger Crawfis, Ohio State

9 An Aside on Antialiasing Our simple ray tracer produces images with noticeable “jaggies” Jaggies and other unwanted artifacts can be eliminated by antialiasing: –Cast multiple rays through each image pixel –Color the pixel the average ray contribution –An easy solution, but it increases the number of rays, and hence computation time, by an order of magnitude or more Slide Courtesy of Roger Crawfis, Ohio State

10 Reflections Mathematically, what does this mean? What is the reflected color? Slide Courtesy of Roger Crawfis, Ohio State

11 Glossy Reflections We need to integrate the color over the reflected cone. Weighted by the reflection coefficient in that direction. Slide Courtesy of Roger Crawfis, Ohio State

12 Translucency Likewise, for blurred refractions, we need to integrate around the refracted angle. Slide Courtesy of Roger Crawfis, Ohio State

13 Translucency Slide Courtesy of Roger Crawfis, Ohio State

14 Translucency Slide Courtesy of Roger Crawfis, Ohio State

15 Shadows Ray tracing casts shadow feelers to a point light source. Many light sources are illuminated over a finite area. The shadows between these are substantially different. Area light sources cast soft shadows –Penumbra –Umbra

16 Soft Shadows Slide Courtesy of Roger Crawfis, Ohio State

17 Soft Shadows Umbra Penumbra Slide Courtesy of Roger Crawfis, Ohio State

18 Camera Models Up to now, we have used a pinhole camera model. These has everything in focus throughout the scene. The eye and most cameras have a larger lens or aperature. Slide Courtesy of Roger Crawfis, Ohio State

19 Depth-of-Field

20 Motion Blur Slide Courtesy of Roger Crawfis, Ohio State

21 Supersampling 1 sample per pixel256 sample per pixel16 sample per pixel Slide Courtesy of Roger Crawfis, Ohio State

22 More On Ray-Tracing Already discussed recursive ray- tracing! Improvements to ray-tracing! –Area sampling variations to address aliasing Cone tracing (only talk about this) Beam tracing Pencil tracing Distributed ray-tracing!

23 Area Subdivision (Warnock) (mixed object/image space) Clipping used to subdivide polygons that are across regions

24 Area Subdivision (Warnock) 1.Initialize the area to be the image plane 2.Four cases: 1.No polygons in area: done 2.One polygon in area: draw it 3.Pixel sized area: draw closest polygon 4.Front polygon covers area: draw it Otherwise, subdivide and recurse

25 BSP (Binary Space Partition) Trees Partition space into 2 half-spaces via a hyper-plane a b c d e a cb ed

26 BSPNode* BSPCreate(polygonList pList) if(pList is empty) return NULL; pick a polygon p from pList; split all polygons in pList by p and insert pieces into pList; polygonList coplanar = all polygons in pList coplanar to p; polygonList positive = all polygons in pList in p’s positive halfspace; polygonList negative = all polygons in pList in p’s negative halfspace; BSPNode *b = new BSPNode; b->coplanar = coplanar; b->positive = BSPCreate(positive); b->negative = BSPCreate(negative); return b; BSP Trees Creating the BSP Tree

27 BSPRender(vertex eyePoint, BSPNode *b) if(b == NULL) return; if(eyePoint is in positive half-space defined by b->coplanar) BSPRender(eyePoint,b->negative); draw all polygons in b->coplanar; BSPRender(eyePoint,b->positive); else BSPRender(eyePoint,b->positive); draw all polygons in b->coplanar; BSPRender(eyePoint,b->negative); BSP Trees Rendering the BSP Tree

28 BSP Trees Advantages  view-independent tree  anti-aliasing (see later)  transparency Disadvantages  many small polygons  over-rendering  hard to balance tree

29 Portals Separate environment into cells Preprocess to find potentially visible polygons from any cell

30 Portals Treat environment as a graph Nodes = cells, Edges = portals Cell to cell visibility must go along edges

31 More spatial subdivision methods… Octree Bounding volume (box, sphere) Oriented Bounding Box


Download ppt "Lecture 8 Advanced Rendering – Ray Tracing, Radiosity & NPR."

Similar presentations


Ads by Google