04 - Transformations and Homogeneous Coordinates Flashcards

1
Q

What are the “Transformation Groups” (5)

A
  1. Euclidean Maps
  2. Similarity Transformations
  3. Linear Maps
  4. Affine Transformations
  5. Projective Transformations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are “Euclidean Maps” + examples (3)

A
  • preserve distances
  • preserve volume
  • preserve angles
  1. identity
  2. rotation
  3. translation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are “Similarity Transformations” + examples (4)

A
  • preserve angles
  1. identity
  2. rotation
  3. translation
  4. isotropic scaling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What are “Linear Maps” + examples (6)

A
  • can be achieved by matrix multiplication
  • linear map of sum of two elements -> distributable ( T(p + q) = T(p) + T(q) )
  • scalar can be outside ( T(ap) = a * T(p) )
  1. identity
  2. rotation
  3. isotropic scaling
  4. scaling
  5. mirroring
  6. shearing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What are “Affine Transformations” + examples (7)

A
  • parallel lines are preserved
  1. identity
  2. rotation
  3. translation
  4. isotropic scaling
  5. scaling
  6. mirroring
  7. shearing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are “Projective Transformations” + examples (7)

A
  • straight lines are mapped to straight lines
  1. identity
  2. rotation
  3. translation
  4. isotropic scaling
  5. scaling
  6. mirroring
  7. shearing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does a “Scaling” matrix look like

A

sx 0
0 sy

if sx = sy => isotropic

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What does a “Shearing” matrix look like

A

1 s
0 1
=> horizontal shear

1 0
s 1
=> vertical shear

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What does a “Rotation” matrix look like

A

cos𝜙 -sin𝜙
sin𝜙 cos𝜙
=> 𝜙 counterclockwise angle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What does a “Mirroring” matrix look like

A

-1 0
0 1
=> x-axis mirroring

1 0
0 -1
=> y-axis mirroring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What are “Compound Transformations”

A
  • multiple transformations
  • matrix multiplication
    p’ = CBAp => right to left transformations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How can one “Change Between Coordinate Systems”

A
  • INTO coordinate system u, v
    ux uy
    vx vy
    Ruv * pxy = puv
  • FROM coordinate system u, v
    ux vx
    uy vy
    => transpose of before
    Ruv^T * puv = pxy
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What are the “Rotation Matrices for 3D”

A

Rx(𝜙)
1 0 0
0 cos𝜙 -sin𝜙
0 sin𝜙 cos𝜙

Ry(𝜙)
cos𝜙 0 sin𝜙
0 1 0
-sin𝜙 0 cos𝜙

Rz(𝜙)
cos𝜙 -sin𝜙 0
sin𝜙 cos𝜙 0
0 0 1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

What is the principle of “Euler Rotations”

A
  • rotation represented by 3 rotations about principle axis
  • z, x, z
  • z, y, z
  • x, y, z
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What are “Affine Mappings”? What are the properties (4)?

A
  • combination of linear transformation and translation
    +> x -> Ax + b
  • straight lines mapped to straight lines
  • parallel lines stay parallel
  • preservation of division ratio
  • NO preservation of angles
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What are advantages of “Homogeneous Coordinates”

A
  • include points at infinity
  • affine mappings as matrix
17
Q

How are “Homogeneous Coordinates” build

A
  • include one more dimension z
  • other values / z must result in original value
    => (x, y) -> (xz, yz, z)
  • if z = 0 => direction
  • else => point
18
Q

How do “Affine Mappings” work in “Homogeneous Coordinates” compared to “Euclidian Coordinates”

A

Ax + b

=>

a11 a12 b1
a21 a22 b2
0 0 1

19
Q

What does a “Translation Matrix” look like in “Homogeneous Coordinates”

A

1 0 Δx
0 1 Δy
0 0 1

20
Q

How does one rotate around a point with “Homogeneous Coordinates”

A
  1. move point to origin = A
    1 0 -cx
    0 1 -cy
    0 0 1
  2. rotate = B
    cos𝜙 -sin𝜙 0
    sin𝜙 cos𝜙 0
    0 0 1
  3. move point back from origin = C
    1 0 cx
    0 1 cy
    0 0 1

=> p’ = CBAp

21
Q

How to calculate the coordinates of a point in different coordinate systems with “Homogeneous Coordinates”

A

pu = ux uy 0 * 1 0 -ex * px
pv = vx vy 0 0 1 -ey py
1 = 0 0 1 0 0 1 1

px = 1 0 ex * ux uy 0 * pu
py = 0 1 ey vx vy 0 pv
1 = 0 0 1 0 0 1 1

22
Q

How to scale with “Homogeneous Coordinates”

A

sx 0 0 0
0 sy 0 0
0 0 sz 0
0 0 0 1

23
Q

How to shear with “Homogeneous Coordinates” (z unchanged)

A

1 0 dx 0
0 1 dy 0
0 0 1 0
0 0 0 1

24
Q

How to rotate with “Homogeneous Coordinates”

A

Like normal but with 4ht dimension at 1

25
Q

What are the “Coordinate Systems in Computer Graphics” and what are their translations called

A
  • Object Coordinates
    => model transformation
  • World Coordinates
    => camera transformation
  • Camera Coordinates
    => projection transformation
  • Clip Coordinates
    => normalization transformation
  • Normalized Device Coordinates
    => viewport transformation
  • Window Coordinates
26
Q

What is “Hierarchical Modeling”

A
  • generate copies to create scene
  • create scene graph (directed and acyclic)
  • utilize matrix stack
27
Q

What’s the problem with “Transformation of Normals”? How do you fix that?

A
  • some transformations don’t preserve angles
    => instead transform tangent-plane

=> normal transformation by multiplication with “Inverse Transpose”

28
Q

How do you perform an “Intersection Test” with a “Transformed Object”? What problem occurs here?

A
  • problem: implicit representation of transformed object
  • transform ray into object coordinates
    -> eos = M^-1 * ews
    -> dos = M^-1 * dws
  • problem: directional vector dos might not be normalized (if M contains scaling)
  • two options:
    1. normalize dos -> dos / ||dos||
    -> tos = tws
    2. don’t normalize
    -> tos = tws -> tos not true distance (because in different coordinate system)
29
Q

How to perform “Projective Mappings” with “Homogeneous Coordinates”? (map onto z = 1 plane)

A

example: map onto z = 1 plane
1 0 0 0
0 1 0 0
0 0 1 0
0 0 1 0

30
Q

What is a “View Frustum” / “View Volume”

A
  • cuboid [l; r] x [b; t] x [n; f]
    -> n>f (because view in negative direction)
31
Q

How does “Orthographic Projection” work

A
  • map “View Frustum” to unit cube [-1; 1]^3
  • general matrix:

2/(r-l) 0 0 -(r+l)/(r-l)
0 2/(t-b) 0 -(t+b)/(t-b)
0 0 2/(n-f) -(n+f)/(n+f)
0 0 0 1

32
Q

How does “Perspective Projection” work? What is a problem of this projection and how can it be solved?

A
  • includes distance / orientation of camera to object
  • includes zoom
  • projection onto image plane with z=0
  • because of triangle similarity:
    x’/D = x/(z+D) => x’ = x/(z/D + 1) = (xh wh)^T
    same for y
    z is 0 => no need for projection BUT we need to know order of objects

solution:
map z to projection plane

Overall:
(1 0 0) (x)
(0 1 0) (z)
(0 1/D 1) (1)

=> shear in w-direction

  • de-homogenize = “Normalization Transformation”
    => unit cube
33
Q

How does the z value of the “Perspective Projection” effect z’

A
  • large z result in a small resolution between z-values -> low precision
  • small z result in negative z’ (until z behind camera)

=> solution: “View Frustum” with near an far plane
=> use full resolution in this frustum, clip everything else

34
Q

What is the “Normalization Transformation”? What’s special about this?

A
  • de-homogenization after projection transformation
  • camera coordinates: looking along -z
  • after de-homogenization: z now pointing in -z direction
35
Q

Why do we need 3 x 4 entries to unambiguously define an “Affine 3D Transformation”

A
  • linear part (3 x 3)
  • translation part (3 x 1)
36
Q

Why do we need 3 x 3 - 1 entries to define an “2D Projection”? How do you define the “Projection Matrix”

A
  • homogeneous coordinates are scale invariant (bottom right value is free)
  1. camera position mapped to -∞
    M (0, 0, 1) = k1 (0 -1 0)
  2. x-direction preserved
    M (1, 0, 0) = k2 (1, 0, 0)
    1. Two additional points (not 3 on a line)
      M (0, -n, 1) = k3 (0, -1, 1)
      M (f, -f, 1) = k4 (1, 1, 1)

=> 12 equations (3 equations for each point)
=> 4 + 8 unknowns