# CS488 - Introduction to Computer Graphics - Lecture 22

## Review

1. Intersection Tests

## Projects

The idea is simple:

1. Think about what you want your result to do and to look like.
2. Choose technical objectives that make your result better than it would otherwise be
• Some should be easy; some hard.
3. Make an implementation plan
• Should be incremental: you might not get completely finished :-).
4. Implement
• Should do your easy objectives first.
• 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

1. Still image
2. Animation
• Static
• Dynamic

Interactive

1. Game
2. Visualization

Architecture

Art

Game

Geometry

Nature

Simulation

#### Rendering Style

Photorealistic

• OpenGL
• Ray Tracing

Non-photorealistic

#### 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

• Previous CS488 projects

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?

1. 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

1. Under an affine transformation, M, Q goes to MQ, and Q' goes to M(Q').
2. The new tangent, n1, is defined by n1.M(Q'-Q) = 0.

#### Constructive Solid Geometry (CSG)

Geometric primitives can make other geometric primitives by

1. union
2. intersection
3. 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

1. Basic