CS488 - Introduction to Computer Graphics - Lecture 22
Comments and Questions
Review
- Intersection Tests
Projects
The idea is simple:
- Think about what you want your result to do and to look like.
- Choose technical objectives that make your result better than it would
otherwise be
- Some should be easy; some hard.
- Make an implementation plan
- Should be incremental: you might not get completely finished
:-).
- Implement
- Should do your easy objectives first.
- Demo your project
- Should be able to show the effect of your technical objectives
clearly
- On-off toggle for interactive projects; sample images for
others.
Types of Projects
Contemplative
- Still image
- Animation
Interactive
- Game
- Visualization
Subjects for Projects
Architecture
Art
Game
Geometry
Nature
Simulation
Rendering Style
Photorealistic
Non-photorealistic
Objectives
Resources
For what to do
- A5 assignment description on the web page; it's long but everybody
ahould read all of it.
For project ideas
For possible objectives
- The last half of the course notes
More Ray Tracing
Recursive Ray Tracing
Just what the name says, but why would you do it?
- Unusual light paths for illumination, such as colour bleeding,
reflection
Surface Normals
Implicit surfaces, i.e., given by f(Q) = 0.
- Normal is perpendicular to the tangent space n . (Q' - Q) as Q' -> Q
for all Q' on the surface.
- Normal is grad f(Q) = i df/dx + j df/dy + k df/dz
Transforming the normal vector
- Under an affine transformation, M, Q goes to MQ, and Q' goes to
M(Q').
- The new tangent, n1, is defined by n1.M(Q'-Q) = 0.
Constructive Solid Geometry (CSG)
Geometric primitives can make other geometric primitives by
- union
- intersection
- subtraction
The result is like sculpting; the problem is that describing the result is
very difficult; the solution is
- Keep the combined primitives uncombined in the model
- Do the set operations on the ray
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, ...
- 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
Return to: