PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Hierarchical Scene Composition and Description

Scene tree, and representation DAG.

Example #2: Robot

Hierarchical structure is given by kinematic functionality.

Individual pieces are kinematically linked at the joints by suitable transforms.

An operation on an object as seen from the world coordinate system,

or (in general) from the coordinate system that makes the instance call.

(This is referred to as "command post" or "bird's eye view.")

Demo with coordinate systems overlays on overhead:

Show basic operations;

Emphasize reference point that remains fixed;

Demonstrate effect of consecutive transformations:

Transformations are executed in the order stated !

Order of sequence is important !

Matrices are the mathematical representation in your graphics program.

Powerful manipulation formalism exists for automatically combining the effects of several transformations:

Matrix multiplication ! Example: Scaling.

-> Review derivation of Rotation Matrix

(We assume that you are familiar with all this -- if not, go back to your linear algebra text!)

Not straight-forward (translation is not a "linear operation"!)

Linear transforms: {T(aX + B) = a T(X) + b } always leave origin in place; T(0) = 0.

--> We need clever hack via homogeneous coordinates:

We can recover the regular cartesian coordinates by a division with w (w<>0);

this corresponds to a cut of the homogeneous line with the w=1 plane.

Matrix operation is still linear in d+1 dimension (origin stays in place),

but we are only interested in (hyper-)plane w=1,

Show the basic translation matrix, demonstrate that it works.

Show all 2D transforms for use with homogeneous column vectors.

Distinguish:

(e.g., row vectors versus column vectors).

Row vectors have the advantage that subsequent transformation matrices

can be concatenated on the right (post multiplication)

-- but SLIDE/assignments code/explanations use column vectors.

Be aware of what system is used, and don't get confused.

(More on this next time ...)

they can serve as:

-- conservative (pessimistic) size estimates (e.g. for culling).

-- crude abstractions for that piece of the scene hierarchy

-- low-LOD (level-of-detail) representations.

-- "place-holders", "Imposters"

**Bounding Boxes:**

Such bounds should be easy to construct and easy to use.

We typically use **axis-aligned
bounding boxes**: a rectangle with diagonal corners (xmin,ymin),
(xmax, ymax).

These AABB's have some inefficiencies: e.g., around a diagonal needle.

Also, with every (rotated) use in a hierarchy, the AABB may grow.

**Alternatives
to Bounding Boxes:**

**Optimally oriented bounding boxes (OOBB)**: are more
efficient
but more difficult to determine.

**Bounding circles or spheres**: have rotation-independent size,
but are not so easy to find either.

**Convex hulls**: can be constructed efficiently, but may have many
vertices, --> loss of efficiency.

**Use of Bounding Boxes:**

Reduction of the amount of computation that needs to be done, e.g.,

**Visibility Culling:** Is something sure to lie completely outside
the viewing frustum ?

**Collision detection:** Are two objects overlapping ? - (Titanic
vs Iceberg).

**Clipping:** Cut away features outside display rectangle (more
next time).

**Recursive Use:** BBs can be used recursively, forming the BB
around
the BB's of all children.

Hierarchy, transformations, and bounding boxes are important components in:

==> Assignment #3 will be a two-week assignment -- Nevertheless, - start NOW

It will carry twice the number of points (16 instead of 8 points max.).

It will be done WITH A PARTNER ! Pick a partner by Sept. 16.

REMEMBER: ASSIGNMENT#2 is due Monday Sept. 13, 7:59pm ==> It will serve as the basis for my actual class list.

**Review of the Various
Coordinate Systems:**

Why do we have so many coordinate systems ?

Convenience; separation of concerns; do each task in its most
appropriate
frame.

**Master Space, Model Space, Symbol Space:**

Used to define master objects or "symbols" for possible re-use.

**World Space, Scene Space:**

Hierarchy of (instantiated, transformed) groups and objects.

**Rendering Space, Eye Space, Camera Space:**

Defines from where do we want to view the scene, what is culled away.

**Image Space:**

This is the 2D space of the projection screen.

The drawing primitives may be clipped by the "window".

**Normalized Device Coordinates:**

Fit everything into a unit square for easy manipulation and mapping
onto the screen

or into rectangular viewports (= `window' to the laymen) on the screen.

**Screen Space:**

Pixels or x,y addresses of the actual display device.

Dots, lines, filled areas, etc ... are expressed typically in integers
> 0.

Following a simple triangle through that simple pipeline.

PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Page Editor: Carlo H. Séquin