CS488 - Introduction to Computer Graphics - Lecture 24
Comments and Questions
Review
- Surface normals
- Constructive Solid Geometry
- Office hours
More Ray Tracing
Speeding Up Intersection Tests
- Bounding Volumes (usually Boxes)
- Find the smallest - or close to smallest - regular volume that
encloses the object
- Use ray-intersect-volume as a pretest for fast negative
results.
- Trade-off between
- benefit of quicker `miss'detection
- cost of getting a good bounding surface
- Both increase as complexity of primitive increases
Scene subdision
- Divide the scene volume into sub-volumes: many ways to do it, such
as
- quad-trees
- oct-trees
- BSP trees
- ...
- List all primitives by sub-volume.
- Only test primitives in the sub-volumes through which a ray
passes.
Anti-aliasing
Two different, but linked, types of artifacts
- Spatial (or temporal) frequency aliasing,
- image features appear at innappropriate sizes
- Reconstruction aliasing
- totally new features, like jaggedness, appear.
Exact solutions are simple in principle
- Remove high spatial frquencies by filtering
- Fourier transform in image space: remember that you need to keep
both amplitude and phase.
- Filter
- Inverse transform in image space
Filtering is the tricky part.
- Use a sampling filter that is the inverse of the reconstruction filter
- For the display to be used find the pixel shape
- Construct a sampling filter appropriate for the pixel shape
- Do ray-tracing calculating over a weighted area
Finding the pixel shape is the hard part.
These are the things that apply to images where you end up with a bunch of
graphical primitives on the image plane, so that you image is effectively
designed at infinite resolution. A similar effect is produced when ray
tracing, but has different types of solution, which are
- Beam tracing
- project a pixel-sized beam into the scene
- if the whole beam covers the first primitive it hits,
excellent.
- otherwise, cut off the part of the beam that hits the first
primitive and follow the remainder of the beam into the scene
- and so on
- add up all the fraction pixels at the end and use that
colour.
- Super sampling
- project many rays for each pixel
- Stochastic sampling
- project many rays at random locations for each pixel
- Importance sampling
- concentrate the extra rays where they make the most difference.
Lighting
Bidirectional Ray Tracing
The `caustic' project
Participating Media
Shadows
Radiosity
Surfaces
Texture Mapping
- Basic
- Start with a 2D image: pixellated or procedural
- Map 2D image onto primitive using a 2D affine transformation
- Simple if the surface of the primitive is flat
- otherwise, ...
- Texture pixels normally do not match display pixels, so some
image processing may be needed.
- Backwards map intersection point with ray into the image to get the
surface properties
- Normal Mapping (Bump mapping)
- Start with a difference surface, defined with respect to the
surface
- Calculate the normals to the difference surface and map them onto
the surface of the primitive
- Use the mapped surface models for lighting
- No occlusion, shadows are wrong, silhouettes are wrong, nobody
notices!
- Solid Textures
- Solution to mapping texture onto curved surfaces
- Usually procedural
(Un)natural Phenomena
Return to: