Lecture 8 Advanced Rendering Ray Tracing, Radiosity - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Lecture 8 Advanced Rendering Ray Tracing, Radiosity

Description:

Slide Courtesy of Roger Crawfis, Ohio State. Ray-Tracing Pseudocode ... Glossy Reflections. We need to integrate the color over the reflected cone. ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 32
Provided by: markm97
Category:

less

Transcript and Presenter's Notes

Title: Lecture 8 Advanced Rendering Ray Tracing, Radiosity


1
Lecture 8Advanced Rendering Ray Tracing,
Radiosity NPR
2
Ray Tracing
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.kreflect ?
ray_cast(u) s.krefract ?
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 Snells Laws

Slide Courtesy of Roger Crawfis, Ohio State
5
Reflected and Refracted Rays
  • Reflected and refracted rays are computed using
    Snells Law

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.kreflect ? ray_cast(u)
  • Multiply the contribution from the reflected ray
    u by the specular-reflection coefficient kreflect
    for surface s
  • s.krefract ? ray_cast(v)
  • Multiply the contribution from the refracted ray
    v by the specular-refraction coefficient krefract
    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
    rays 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?

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
Penumbra
Umbra
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 pixel
256 sample per pixel
16 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)
  • Initialize the area to be the image plane
  • Four cases
  • No polygons in area done
  • One polygon in area draw it
  • Pixel sized area draw closest polygon
  • 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
b
a
e
e
d
c
d
26
BSP Trees
Creating the BSP Tree
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
ps positive halfspace polygonList negative
all polygons in pList in ps negative
halfspace BSPNode b new BSPNode
b-gtcoplanar coplanar b-gtpositive
BSPCreate(positive) b-gtnegative
BSPCreate(negative) return b
27
BSP Trees
Rendering the BSP Tree
BSPRender(vertex eyePoint, BSPNode b) if(b
NULL) return if(eyePoint is in positive
half-space defined by b-gtcoplanar)
BSPRender(eyePoint,b-gtnegative) draw all
polygons in b-gtcoplanar BSPRender(eyePoint,
b-gtpositive) else BSPRender(eyePoint,b-gt
positive) draw all polygons in
b-gtcoplanar BSPRender(eyePoint,b-gtnegative)

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
Write a Comment
User Comments (0)
About PowerShow.com