CS184 Section 10
Ray Tracing Basics
Brandon Wang
October 31, 2012
Material adapted from Fu-Chung Huang and Carlo Sequin.
Brandon Wang
October 31, 2012
Material adapted from Fu-Chung Huang and Carlo Sequin.
Little to no OpenGL.
Made from scratch.
OpenGL: Transform objects into unit cube, project unit cube onto image plane.
Ray tracing: Shoot rays from camera into the scene.
More expensive, but easier to model complex physics. More closely resembles actual physics. (The biggest difference is the direction of the ray)
Current research: real-time
Ray:
For now, loop over all objects, figure out if the ray intersects it. (Next week, do something smarter.)
Imagine a world of spheres only - center and radius. Intersection is if the ray comes closer than radius to sphere.
For transformations, transform the ray to object space. (This is done so you don't have to write arbitrary intersection tests, only with your primitives)
Once you do spheres, move on to boxs and/or triangles, and other shapes if you wish.
You've already done this! Phong illumination model. (Review old slides when implementing)
If you stop here, you will get quality similar to OpenGL. This is called ray casting.
But if you recurse, you can do nice things.
Shoot a ray from the point of intersection to...
It will be a bit more difficult to get started with this, as you start from scratch.
I've heard that this is useful.