cs 354 ray casting & tracing
DESCRIPTION
April 17, 2012; CS 354 Computer Graphics; University of Texas at AustinTRANSCRIPT
![Page 1: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/1.jpg)
CS 354Ray Casting & Tracing
Mark KilgardUniversity of TexasApril 17, 2012
![Page 2: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/2.jpg)
CS 354 2
Today’s material
In-class quiz On typography lecture
Lecture topic Finish digital typography Project 3 Ray tracing & casting
![Page 3: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/3.jpg)
CS 354 3
My Office Hours
Tuesday, before class Painter (PAI) 5.35 8:45 a.m. to 9:15
Thursday, after class ACE 6.302 11:00 a.m. to 12
Randy’s office hours Monday & Wednesday 11 a.m. to 12:00 Painter (PAI) 5.33
![Page 4: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/4.jpg)
CS 354 4
Last time, this time
Last lecture, we discussed Digital typography
This lecture Ray casting and tracing
Projects Project 3 due Wednesday, April 18, 2012
Tomorrow!
Project 4 on ray tracing on Piazza
![Page 5: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/5.jpg)
CS 354 5
Daily Quiz1. Multiple choice: Pica and Em
are:
a) Names of two commonly used type faces
b) Units of typographic measurement
c) Two dominant types of Bezier curves
d) Graphics researchers responsible for font hinting
2. True or False: This text is written in a serif type face.
3. Multiple choice: Unicode supports how many character points?
a) 256
b) 65,536
c) Over ¼ million
d) 4,294,967,296
4. Multiple choice: Kerning adjusts what property of text?
a) Spacing between characters
b) Whether accent marks are included on glyphs
c) Control of vertical layout
On a sheet of paper• Write your EID, name, and date• Write #1, #2, #3, #4 followed by its answer
![Page 6: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/6.jpg)
CS 354 6
Project 3 Accept Biovision Hierarchy (BVH) files
containing motion capture data Hierarchy of affine transformations
Visualize a stick figure Animate the figure
![Page 7: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/7.jpg)
CS 354 7
Rendering Outline Glyphs
Conventional method CPU-based scan-line
rasterization Augmented by hinting
Adaptively Sampled Distance Fields (ADFs) MERL’s Saffron type system
Glyphs are static sopre-computationis effective Bitmaps often cached
![Page 8: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/8.jpg)
CS 354 8
Massively Parallel GPU-accelerated Path Rendering Visualized
Stencil -1
Stencil +1
Stencil =1
Anchored trianglefans geometry
Anchored trianglefans net stencil
Resulting netcoverage in stencil
Curved segmentnet stencil
Curved segmentgeometry
Path commandsand control points
Credit: [Kokoji 2006]
![Page 9: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/9.jpg)
CS 354 9
OpenGL Bitmap Fonts
GLUT includes implementation glutBitmapCharacter Calls glBitmap with pre-compiled bitmap data
Also window system specific routines to get bitmaps from system fonts wglUseFontBitmaps for Windows glXUseXFont for X Window System (Linux)
![Page 10: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/10.jpg)
CS 354 10
OpenGL Stroke Fonts
Draw glyph’s stroke as line segments Can transform arbitrarily Use glEnable(GL_LINE_SMOOTH) for anti-aliasing glutStrokeCharacter does this
![Page 11: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/11.jpg)
CS 354 11
Other Text Approaches
Pack glyphs in texture atlas Then draw textured rectangles with the
correct texture coordinates for each glyph
![Page 12: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/12.jpg)
CS 354 12
First-class Text Support in Various Rendering Systems
Rendering system Vendor / Sponsor First-class text?
Cairo Open source Yes
Direct2D / Direct3D Microsoft Yes
Flash Adobe Yes
GDI Microsoft Yes
Java 2D Sun Yes
OpenGL Khronos No
OpenVG Khronos Yes
Office Open XML Microsoft / ECMA Yes
PDF Adobe Yes
PHIGS ISO Yes
PostScript Adobe Yes
Qt Nokia Yes
Quart 2D Apple Yes
Scalable Vector Graphics (SVG) World Wide Web Consortium Yes
Silverlight Microsoft Yes
Xlib X Consortium Yes
![Page 13: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/13.jpg)
CS 354 13
How did OpenGL’s lack of text support last for so long?
OpenGL was designed in 1992 Pre-Unicode world Fonts were bitmaps of ASCII back then
Now TrueType and OpenType dominate The primitive initial state of OpenGL’s font support has become
mistaken for a philosophical dictate Text-based applications uniformly ignore OpenGL
Not a good thing 3D applications have their expectations adjusted to
expect lousy text Not a good thing Example: Quake 2 console text is miniscule because textured
bitmap characters assumed text sized for 800x600 display
![Page 14: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/14.jpg)
CS 354 14
The World Has ChangedSince 1992
Unicode universally accepted now Systems ship with near-complete, resolution-independent Unicode
fonts now Good fonts come with your operating system license International character of web makes UTF-8 text common today Windows adoption of UTF-16 makes that common within Windows
Web has expanded font repertoire of systems Content providers and users expect wide range of available fonts Fonts have standard names embedded in web content These font names span operating systems
Screen resolution has increased 1992: 640x480 aliased 2009: 1920x1200+ multisampled Needing all text to be in small point sizes to fit screen isn’t a mandate
anymore 3D support and acceleration is pervasive now
Text makes sense mixed with 3D content today
![Page 15: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/15.jpg)
CS 354 15
Direct Path Rendering ofText in OpenGL
Recent work NV_path_rendering provides GPU-acceleration of
paths, including glyphs Glyph support is first-class
![Page 16: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/16.jpg)
CS 354 16
Digital Typography Trends
Hinting & ClearType likely going away Mainly due to denser screens Expectation of antialiased font appearance Text not always presented axis-aligned or
black-on-white More font variety in web content
Improving standards More available fonts Even font variety for East Asian writing
systems
![Page 17: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/17.jpg)
CS 354 17
17
OpenGL’s Realism Limitations
OpenGL is based on a pipeline model in which primitives are rendered one at time No automatic shadows (except by tricks or multiple
renderings) No automatic multiple reflections Multi-pass algorithms for shadows and reflections
Physically plausible & global approaches Rendering equation Ray tracing Radiosity
![Page 18: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/18.jpg)
CS 354 18
Ray Casting
Arthur Appel (1968) Cast rays from eye… what object is hit?
![Page 19: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/19.jpg)
CS 354 19
Ray Tracing
“An Improved Illumination Model for Shaded Display” Turner Whitted (1980) Communications of the
ACM
Performance 512x512 pixels 74 Minutes on VAX (1979) 6 seconds on PC (2006) 60+ frames/second on
GPU (2012)
![Page 20: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/20.jpg)
CS 354 20
20
Ray Tracing
Follow rays of light from a point source Can account for reflection and
transmission
![Page 21: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/21.jpg)
CS 354 21
Example of ComplexRay Traced Scene
![Page 22: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/22.jpg)
CS 354 22
22
Computational Limits ofRay Tracing
Should be able to handle all physical interactions
Ray tracing paradigm is physically plausible
But most rays do not affect what we see Scattering produces many (infinite)
additional rays Alternative: ray casting
![Page 23: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/23.jpg)
CS 354 23
23
Ray Casting
Only rays that reach the eye matter Reverse direction and cast rays Need at least one ray per pixel
![Page 24: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/24.jpg)
CS 354 24
24
Ray Casting Quadrics
Ray casting has become a standard way to visualize quadrics which are implicit surfaces in CSG systems
Constructive Solid Geometry Primitives are solids Build objects with set operations Union, intersection, set difference
![Page 25: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/25.jpg)
CS 354 25
25
Ray Casting a Sphere
Ray is parametric Sphere is quadric Resulting equation is a scalar quadratic
equation which gives entry and exit points of ray (or no solution if ray misses)
![Page 26: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/26.jpg)
CS 354 26
26
Shadow Rays
Even if a point is visible, it will not be lit unless we can see a light source from that point
Cast shadow or feeler rays
![Page 27: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/27.jpg)
CS 354 27
27
Reflection
Must follow shadow rays off reflecting or transmitting surfaces
Process is recursive
![Page 28: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/28.jpg)
CS 354 28
28
Reflection and Transmission
![Page 29: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/29.jpg)
CS 354 29
29
Ray Trees
![Page 30: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/30.jpg)
CS 354 30
30
Ray Tree
![Page 31: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/31.jpg)
CS 354 31
31
Diffuse Surfaces
Theoretically the scattering at each point of intersection generates an infinite number of new rays that should be traced
In practice, we only trace the transmitted and reflected rays but use the Phong model to compute shade at point of intersection
Radiosity works best for perfectly diffuse (Lambertian) surfaces
![Page 32: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/32.jpg)
CS 354 32
32
Building a Ray Tracer
Best expressed recursively Can remove recursion later Image based approach
For each ray ……. Find intersection with closest surface
Need whole object database available Complexity of calculation limits object types
Compute lighting at surface Trace reflected and transmitted rays
![Page 33: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/33.jpg)
CS 354 33
33
When to stop
Some light will be absorbed at each intersection Track amount left
Ignore rays that go off to infinity Put large sphere
around problem
Count steps
More bounces
Fewer bounces
![Page 34: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/34.jpg)
CS 354 34
34
Recursive Ray Tracer
color c = trace(point p, vector d, int step)
{ color local, reflected, transmitted; point q; normal n; if(step > max) return(background_color);
![Page 35: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/35.jpg)
CS 354 35
35
Recursive Ray Tracer
q = intersect(p, d, status);if(status==light_source) return(light_source_color);
if(status==no_intersection) return(background_color);
n = normal(q);r = reflect(q, n);t = transmit(q,n);
![Page 36: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/36.jpg)
CS 354 36
36
Recursive Ray Tracer
local = phong(q, n, r);
reflected = trace(q, r, step+1);
transmitted = trace(q,t, step+1);
return(local+reflected+transmitted);
![Page 37: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/37.jpg)
CS 354 37
37
Computing Intersections
Implicit Objects Quadrics
Planes Polyhedra Parametric Surfaces
![Page 38: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/38.jpg)
CS 354 38
38
Implicit Surfaces
Ray from p0 in direction d
p(t) = p0 +t d
General implicit surface
f(p) = 0
Solve scalar equation
f(p(t)) = 0
General case requires numerical methods
![Page 39: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/39.jpg)
CS 354 39
39
Quadrics
General quadric can be written as
pTAp + bTp +c = 0
Substitute equation of ray
p(t) = p0 +t d
to get quadratic equation
![Page 40: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/40.jpg)
CS 354 40
40
Sphere
(p – pc) • (p – pc) – r2 = 0
p(t) = p0 +t d
p0 • p0 t2+ 2 p0 • (d – p0) t + (d – p0) • (d – p0) – r2 = 0
![Page 41: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/41.jpg)
CS 354 41
41
Planes
p • n + c = 0
p(t) = p0 +t d
t = -(p0 • n + c)/ d • n
![Page 42: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/42.jpg)
CS 354 42
Implicit SurfaceRay Tracing Example
Paul Heckbert 1983
![Page 43: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/43.jpg)
CS 354 43
43
Polyhedra
Generally we want to intersect with closed objects such as polygons and polyhedra rather than planes
Hence we have to worry about inside/outside testing
For convex objects such as polyhedra there are some fast tests
![Page 44: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/44.jpg)
CS 354 44
44
Ray Tracing Polyhedra
If ray enters an object, it must enter a front facing polygon and leave a back facing polygon
Polyhedron is formed by intersection of planes Ray enters at furthest intersection with front
facing planes Ray leaves at closest intersection with back
facing planes If entry is further away than exit, ray must miss
the polyhedron
![Page 45: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/45.jpg)
CS 354 45
45
Ray Tracing Polyhedra
![Page 46: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/46.jpg)
CS 354 46
46
Ray Tracing a Polygon
![Page 47: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/47.jpg)
CS 354 47
47
Ray Tracing a Polygon
![Page 48: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/48.jpg)
CS 354 48
Algorithmic Complexity ofRay Tracing
Time complexity Rasterization: O(b • m)
coherent! Naïve ray tracing: O(b • p) Accelerated ray tracing: O(log b • p)
incoherent
Key b = # of objects in the scene p = # of pixels in the scene m = average # of pixels per object
![Page 49: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/49.jpg)
CS 354 49
Real-time Ray Tracing GPUs doing ray tracing
General purpose compute on GPUs
[Optix, NVIDIA, SIGGRAPH 2009]
![Page 50: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/50.jpg)
CS 354 50
Ray Tracing Quality
Aliasing is a problem in ray tracing Spatial and temporal
Spatial anti-aliasing Average over several samples per pixel
1 sample 5x5 grid 5x5 jittered grid
![Page 51: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/51.jpg)
CS 354 51
Distribution Ray Tracing
Spatial anti-aliasing
1 sample per pixel multiple samples per pixel
![Page 52: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/52.jpg)
CS 354 52
Distribution Ray Tracing
Soft shadows Distribute shadow rays over light source region
All shadow rayshit light source,fully illuminated
No shadow rayshit light source,fully shadowed
Some shadow rayshit light source,
partially shadowed
![Page 53: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/53.jpg)
CS 354 53
Soft Shadows Example Multiple ray tracing effects
Including soft shadows
![Page 54: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/54.jpg)
CS 354 54
Distribution Ray Tracing
Motion blur Distribute rays over time
Pool BallsTom PorterRenderMan
![Page 55: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/55.jpg)
CS 354 55
Distribution Ray Tracing Depth of field
Distribute rays across a discrete camera aperture
No depth-of-field
Jittereddepth-of-field
More rays
Even more raysMore images for depth-of-field
![Page 56: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/56.jpg)
CS 354 56
Next Class
Next lecture Global illumination How is the complex interaction of light within a scene
realistically modeled?
Reading: Chapter 11, 559-568 Project 3
Due tomorrow—Wednesday, April 18, 2012
Next up: Project 4 is a simple ray tracer Due May 2, 2012
![Page 57: CS 354 Ray Casting & Tracing](https://reader034.vdocuments.net/reader034/viewer/2022042521/540b6253dab5ca00638b7a5f/html5/thumbnails/57.jpg)
CS 354 57
Credits
• Ed Angel and Dave Shreiner: Interactive Computer Graphics 6E © Addison-Wesley (2012)
• Pat Hanrahan• Paul Heckbert