Document 7371638

Download Report

Transcript Document 7371638

SI31
Advanced Computer Graphics
AGR
Lecture 2
Basic Modelling
si31-2001
2.1
Polygonal Representation

Any 3D object can be represented as
a set of plane, polygonal surfaces
V7
V8
V3
V4
V6
V5
V2
V1
Note: each vertex part of several
polygons
si31-2001
2.2
Polygonal Representation

si31-2001
Objects with curved surfaces can be
approximated by polygons improved approximation by more
polygons
2.3
Scene Organisation
Scene = list of objects
 Object = list of surfaces
 Surface = list of polygons
 Polygon = list of vertices

scene
object
si31-2001
vertices
surfaces
polygons
2.4
Polygon Data Structure
V7
Object Obj1
V8
V3
V2
V4
V6
V5
P2
V1
P1
Object Table
Obj1 P1, P2, P3,
P4, P5, P6
.
si31-2001
...
Polygon Table
P1
V1, V2, V3, V4
P2
V1, V5, V6, V2
.
...
Vertex Table
V1 X1, Y1, Z1
V2 X2, Y2, Z2
.
...
2.5
Typical Primitives
Order of Vertices

Graphics systems such as OpenGL
typically support:
– triangles, triangle strips and fans
– quads, quad strips
– polygons

How are vertices ordered?
– convention is that vertices are ordered
counter-clockwise when looking from
outside an object
– allows us to distinguish outer and inner
faces of a polygon
si31-2001
2.6
Modelling Regular Objects

Sweeping
sweep axis
2D Profile

Spinning
R1
R2
spinning axis
si31-2001
2.7
Sweeping a Circle to Generate
a Cylinder as Polygons
V13
V4
V5
V9
V2
V10
V14
V15
V18
V17
V16
vertices at z=depth
V8
V7
vertices at z=0
si31-2001
V11
V3
V1
V6
V12
V1[x] = R; V1[y] = 0; V1[z] = 0
V2[x] = R cos ; V2[y] = R sin ; V2[z] = 0 (=p/4)
Vk[x] = R cos k; Vk[y] = R sin k; Vk[z] = 0
where
k = 2 p (k - 1 )/8, k=1,2,..8
2.8
Exercise and Further Reading

Spinning:
– Work out formulae to spin an outline (in
the xy plane) about the y-axis

READING:
– Hearn and Baker, Chapter 10
– Watt, Chapter 2 (2.1)
si31-2001
2.9
Complex Primitives

Some systems such as VRML have
cylinders, cones, etc as primitives
– polygonal representation calculated
automatically

OpenGL has a utility library (GLU)
which contains various high-level
primitives
– again converted to polygons

For conventional graphics hardware:
– POLYGONS RULE!
si31-2001
2.10
Automatic Generation of
Polygonal Objects

3D laser scanners are able
to generate computer
representations of objects
– for successive heights, 2d
outline generated as object
rotates
– contours stitched together
into 3D polygonal
representation

si31-2001
Cyberware Cyberscanner
in Med Physics at LGI able
to scan human faces
2.11
A Puzzle
si31-2001
2.12
Modelling Objects and
Creating Worlds
We have seen how boundary
representations of simple objects can
be created
 Typically each object is created in its
own co-ordinate system
 To create a world, we need to
understand how to transform objects
so as to place them in the right place translation, at the right size - scaling, in
the right orientation- rotation

si31-2001
2.13
Transformations

The basic linear transformations are:
– translation: P = P + T, where T is translation
vector
– scaling: P’ = S P, where S is a scaling
matrix
– rotation: P’ = R P, where R is a rotation
matrix

si31-2001
As in 2D graphics, we use
homogeneous co-ordinates in order to
express all transformations as matrices
and allow them to be combined easily
2.14
Homogeneous Co-ordinates
In homogeneous coordinates, a 3D point
P = (x,y,z)T
is represented as:
P = (x,y,z,1)T
 That is, a point in 4D space, with its ‘extra’
co-ordinate equal to 1
 Note: in homogeneous co-ordinates,
multiplication by a constant leaves point
unchanged

– ie (x, y, z, 1)T = (wx, wy, wz, w)T
si31-2001
2.15
Translation
Suppose we want to translate P (x,y,z)T
by a distance (Tx, Ty, Tz)T
 We express P as (x, y, z, 1)T and form a
translation matrix T as below
 The translated point is P’

si31-2001
x’
y’
z’
1
=
P’
=
1
0
0
0
0
1
0
0
0
0
1
0
T
Tx
Ty
Tz
1
x
y
z
1
P
=
x + Tx
y + Ty
z + Tz
1
2.16
Scaling

si31-2001
Scaling by Sx, Sy, Sz relative to the
origin:
x’
y’
z’
1
=
P’
=
Sx
0
0
0
0
Sy
0
0
S
0
0
Sz
0
0
0
0
1
x
y
z
1
=
Sx . x
Sy . y
Sz . z
1
P
2.17
Rotation
Rotation is specified with respect to an
axis - easiest to start with co-ordinate
axes
 To rotate about the x-axis:

x’
y’
z’
1
=
1
0
0
0 cos -sin
0 sin cos
0 0
0
0
0
0
1
x
y
z
1
P’
=
Rx ()
P
a positive angle corresponds to counterclockwise direction looking
at origin from positive position on axis
EXERCISE: write down the matrices for rotation about y and z axes
si31-2001
2.18
Composite Transformations
The attraction of homogeneous co-ordinates
is that a sequence of transformations may
be encapsulated as a single matrix
 For example, scaling with respect to a fixed
position (a,b,c) can be achieved by:

– translate fixed point to origin- say, T(-a,-b,-c)
– scale- S
– translate fixed point back to its starting positionT(a,b,c)

si31-2001
Thus: P’ = T(a,b,c) S T(-a,-b,-c) P = M P
2.19
Rotation about a Specified Axis
It is useful to be able to rotate about
any axis in 3D space
 This is achieved by composing 7
elementary transformations

si31-2001
2.20
Rotation through  about
Specified Axis
y
y
P2
y
P1
x
x
z
z
y
y
x
si31-2001
z
translate P1
to origin
initial position
z
x
rotate through
requ’d angle, 
y
x
z
rotate so that
P2 lies on z-axis
(2 rotations)
z
rotate axis
to orig orientation
P2
P1
x
translate back
2.21
Inverse Transformations

As in this example, it is often useful to
calculate the inverse of a
transformation
– ie the transformation that returns to
original state
Translation: T-1 (a, b, c) = T (-a, -b, -c)
 Scaling: S-1 ( Sx, Sy, Sz ) = S ............
 Rotation: R-1z () = Rz (…….)

si31-2001
Exercise: Check T-1 T = I (identity matrix)
2.22
Rotation about Specified Axis
Thus the sequence is:
T-1 R-1x() R-1 y() Rz() Ry() Rx() T
 EXERCISE: How are  and 
calculated?
 READING:

– Hearn and Baker, chapter 11.
– Watt, Chapter 1 (1.1)
si31-2001
2.23