Chapter 4
Download
1 / 41

Chapter 4 - PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on

Chapter 4. Geometric Objects and Transformation. Lines. Consider all points of the form P( a )=P 0 + a d Set of all points that pass through P 0 in the direction of the vector d. Parametric Form. This form is known as the parametric form of the line

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Chapter 4' - benita


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Chapter 4

Chapter 4

Geometric Objects and Transformation


Lines
Lines

  • Consider all points of the form

    • P(a)=P0 + ad

    • Set of all points that pass through P0 in the direction of the vector d


Parametric form
Parametric Form

  • This form is known as the parametric form of the line

    • More robust and general than other forms

    • Extends to curves and surfaces

  • Two-dimensional forms

    • Explicit: y = mx +h

    • Implicit: ax + by +c =0

    • Parametric:

      x(a) = ax0 + (1-a)x1

      y(a) = ay0 + (1-a)y1


Rays and line segments
Rays and Line Segments

If a >= 0, then P(a) is the ray leaving P0 in the direction d

If we use two points to define v, then

P( a) = Q + a (R-Q)=Q+av

=aR + (1-a)Q

For 0<=a<=1 we get all the

points on the line segment

joining R and Q



Three dimensional primitives
Three-Dimensional Primitives

3D curves

3D surfaces

Volumetric Objects

Hollow objects

Objects can be specified by vertices

Simple and flat polygons (triangles)

Constructive Solid Geometry (CSG)



Representation
Representation

  • Until now we have been able to work with geometric entities without using any frame of reference, such a coordinate system

  • Need a frame of reference to relate points and objects to our physical world.

    • For example, where is a point? Can’t answer without a reference system

    • World coordinates

    • Camera coordinates


Confusing points and vectors
Confusing Points and Vectors

v

p

v

can place anywhere

fixed

Consider the point and the vector

P = P0 + b1v1+ b2v2+….+bnvn

v=a1v1+ a2v2+….+anvn

They appear to have the similar representations

P=[b1 b2 b3] v=[a1 a2 a3]

which confuse the point with the vector

A vector has no position


A single representation
A Single Representation

If we define 0•P = 0 and 1•P =P then we can write

v=a1v1+ a2v2+a3v3 = [a1 a2a30][v1 v2 v3 P0] T

P = P0 + b1v1+ b2v2+b3v3= [b1 b2b31][v1 v2 v3 P0] T

Thus we obtain the four-dimensional homogeneous coordinate representation

v = [a1 a2a30] T

P = [b1 b2b31] T


Homogeneous coordinates
Homogeneous Coordinates

The general form of four dimensional homogeneous coordinates is

p=[x y x w] T

We return to a three dimensional point (for w0) by

xx/w

yy/w

zz/w

If w=0, the representation is that of a vector

Note that homogeneous coordinates replaces points in three dimensions by lines through the origin in four dimensions


Homogeneous coordinates and computer graphics
Homogeneous Coordinates and Computer Graphics

  • Homogeneous coordinates are key to all computer graphics systems

    • All standard transformations (rotation, translation, scaling) can be implemented by matrix multiplications with 4 x 4 matrices

    • Hardware pipeline works with 4 dimensional representations

    • For orthographic viewing, we can maintain w=0 for vectors and w=1 for points

    • For perspective we need a perspective division


Representing a mesh
Representing a Mesh

e2

v5

v6

e3

e9

e8

v8

v4

e1

e11

e10

v7

e4

e7

v1

e12

v2

v3

e6

e5

  • Consider a mesh

  • There are 8 nodes and 12 edges

    • 5 interior polygons

    • 6 interior (shared) edges

  • Each vertex has a location vi = (xi yi zi)


Inward and outward facing polygons
Inward and Outward Facing Polygons

The order {v0, v3, v2, v1} and {v1, v0, v3, v2} are equivalent in that the same polygon will be rendered by OpenGL but the order {{v0, v1, v2, v3} is different

The first two describe outwardly

facing polygons

Use the right-hand rule =

counter-clockwise encirclement

of outward-pointing normal

OpenGL treats inward and

outward facing polygons differently


Geometry versus topology
Geometry versus Topology

  • Generally it is a good idea to look for data structures that separate the geometry from the topology

    • Geometry: locations of the vertices

    • Topology: organization of the vertices and edges

    • Example: a polygon is an ordered list of vertices with an edge connecting successive pairs of vertices and the last to the first

    • Topology holds even if geometry changes


Bilinear interpolation
Bilinear Interpolation

Assuming a linear variation, then we can make use of the

same interpolation coefficients in coordinates for the

interpolation of other attributes.


Scan line interpolation
Scan-line Interpolation

A polygon is filled only when it is displayed

It is filled scan line by scan line

Can be used for other associated attributes with each vertex


General transformations
General Transformations

A transformation maps points to other points and/or vectors to other vectors


Linear function transformation
Linear Function (Transformation)

Transformation matrix for homogeneous coordinate system:


Affine transformations 1 2
Affine Transformations – 1/2

  • Line preserving

  • Characteristic of many physically important transformations

    • Rigid body transformations: rotation, translation

    • Scaling, shear

  • Importance in graphics is that we need only transform endpoints of line segments and let implementation draw line segment between the transformed endpoints


Affine transformations 2 2
Affine Transformations – 2/2

Every linear transformation (if the corresponding matrix is nonsingular) is equivalent to a change in frames

However, an affine transformation has only 12 degrees of freedom because 4 of the elements in the matrix are fixed and are a subset of all possible 4 x 4 linear transformations


Translation
Translation

d

P

  • Move (translate, displace) a point to a new location

  • Displacement determined by a vector d

    • Three degrees of freedom

    • P’=P+d


Rotation 2d 1 2
Rotation (2D) – 1/2

x´ = r cos (f + q) = rcosf cosq - rsinf sinq

y´ = r sin (f + q) = rcosf sinq + rsinf cosq

x´ =x cos q –y sin q

y´ = x sin q + y cos q

x = r cos f

y = r sin f

  • Consider rotation about the origin by q degrees

    • radius stays the same, angle increases by q


Rotation 2d 2 2
Rotation (2D) – 2/2

Using the matrix form:

There is a fixed point

Could be extended to 3D

Positive direction of rotation is counterclockwise

2D rotation is equivalent to 3D rotation about the z-axis


Non rigid body transformation
(Non-)Rigid-Body Transformation

Non-rigid-bodytransformations

Translation and rotation are rigid-body transformation


Scaling
Scaling

x´=sxx

y´=syx

z´=szx

Uniform and non-uniform

scaling

Expand or contract along each axis (fixed point of origin)


Reflection
Reflection

sx = -1 sy = 1

original

sx = -1 sy = -1

sx = 1 sy = -1

corresponds to negative scale factors


Transformation in homogeneous coordinates
Transformation in Homogeneous Coordinates

With a frame, each affine transformation is represented by a 44 matrix of the form:


Translation1
Translation

note that this expression is in

four dimensions and expresses

that point = vector + point

Using the homogeneous coordinate representation in some frame

p=[ x y z 1]T

p´=[x´ y´ z´ 1]T

d=[dx dy dz 0]T

Hence p´= p + dor

x´=x+dx

y´=y+dy

z´=z+dz


Translation matrix
Translation Matrix

We can also express translation using a

4 x 4 matrix T in homogeneous coordinates

p´=Tp where

This form is better for implementation because all affine transformations can be expressed this way and multiple transformations can be concatenated together


Rotation about the z axis
Rotation about the Z axis

x´=x cos q –y sin q

y´= x sin q + y cos q

z´=z

  • Rotation about z axis in three dimensions leaves all points with the same z

    • Equivalent to rotation in two dimensions in planes of constant z

    • or in homogeneous coordinates

      p’=Rz(q)p



Rotation about x and y axes
Rotation about X and Y axes

  • Same argument as for rotation about z axis

    • For rotation about x axis, x is unchanged

    • For rotation about y axis, y is unchanged


Scaling matrix
Scaling Matrix

x´=sxx

y´=syx

z´=szx

p´=Sp


Inverses
Inverses

  • Although we could compute inverse matrices by general formulas, we can use simple geometric observations

    • Translation: T-1(dx, dy, dz) = T(-dx, -dy, -dz)

    • Rotation: R-1(q) = R(-q)

      • Holds for any rotation matrix

      • Note that since cos(-q) = cos(q) and sin(-q)=-sin(q)

        R-1(q) = R T(q)

    • Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)


Concatenation
Concatenation

We can form arbitrary affine transformation matrices by multiplying together rotation, translation, and scaling matrices

Because the same transformation is applied to many vertices, the cost of forming a matrix M=ABCD is not significant compared to the cost of computing Mp for many vertices p

The difficult part is how to form a desired transformation from the specifications in the application


Order of transformations
Order of Transformations

Note that matrix on the right is the first applied

Mathematically, the following are equivalent

p´ = ABCp = A(B(Cp))

Note many references use column matrices to present points. In terms of column matrices

p´T = pTCTBTAT



General rotation about the origin
General Rotation about the Origin

R(q) = Rx() Ry() Rz()

y

, ,are called the Euler angles

v

q

Note that rotations do not commute

We can use rotations in another order but

with different angles

x

z

A rotation by q about an arbitrary axis can be decomposed into the concatenation of rotations about the x, y, and z axes


Rotation about an arbitrary axis 1 2
Rotation about an Arbitrary Axis – 1/2

Final rotation matrix:

Normalize u:


Rotation about an arbitrary axis 2 2
Rotation about an Arbitrary Axis – 2/2

Rotate the line segment to the plane of y=0, and the line segment is foreshortened to:

Rotate clockwise about the y-axis, so:

Final transformation matrix:


ad