CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

63
CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    229
  • download

    2

Transcript of CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Page 1: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

CSCE 641: Computer Graphics Rotation Representation and

InterpolationJinxiang Chai

Page 2: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Joints and Rotation

Rotational dofs are widely used in character animation

3 translation dofs

48 rotational dofs

1 dof: knee 2 dof: wrist 3 dof: shoulder

Page 3: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

• Orientation is described relative to some reference alignment

• A rotation changes object from one orientation to another

• Can represent orientation as a rotation from the reference alignment 

Orientation vs. Rotation 

Page 4: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Ideal Orientation Format 

• Represent 3 degrees of freedom with minimum number of values

• Allow concatenations of rotations

• Math should be simple and efficient – concatenation – interpolation – rotation

Page 5: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Outline

• Rotation matrix

• Fixed angle and Euler angle

• Axis angle

• Quaternion

Page 6: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Matrices as Orientation 

• Matrices just fine, right?

• No… – 9 values to interpolate – don’t interpolate well

Page 7: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Representation of orientation

Homogeneous coordinates (review):– 4X4 matrix used to represent translation,

scaling, and rotation

– a point in the space is represented as

– Treat all transformations the same so that they can be easily combined

1

z

y

x

P

Page 8: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Rotation

New points rotation matrix old points

Page 9: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Interpolation

• In order to “move things”, we need both translation and rotation

• Interpolating the translation is easy, but what about rotations?

Page 10: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Interpolation of Orientation

• How about interpolating each entry of the rotation matrix?

• The interpolated matrix might no longer be orthonormal, leading to nonsense for the inbetween rotations

Page 11: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Interpolation of Orientation

Example: interpolate linearly from a positive 90 degree rotation about y axis to a negative 90 degree rotation about y

Linearly interpolate each component and halfway between, you get this...

1000

0001

0010

0100

1000

0001

0010

0100

Rotate about y-axis with 90

Rotate about y-axis with -90

1000

0000

0010

0000

Page 12: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Properties of Rotation Matrix

Easily composed?

Interpolation?

Compact representation?

Page 13: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Properties of Rotation Matrix

Easily composed? yes

Interpolation?

Compact representation?

Page 14: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Properties of Rotation Matrix

Easily composed? yes

Interpolation? not good

Compact representation?

Page 15: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Properties of Rotation Matrix

Easily composed? yes

Interpolation? not good

Compact representation? - 9 parameters (only needs 3 parameters)

Page 16: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Outline

• Rotation matrix

• Fixed angle and Euler angle

• Axis angle

• Quaternion

Page 17: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Fixed angles

• Angles are used to rotate about fixed axes

• Orientations are specified by a set of 3 ordered parameters that represent 3 ordered rotations about fixed axes

• Many possible orderings: x-y-z, x-y-x,y-x-z - as long as axis does immediately follow itself such as x-x-y

Page 18: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

E.g., (z, y, x)

XZ

Y

Q = Rx(x). Ry(y). Rz(z). P

Ordered triple of rotations about global axes, any triple can be used that doesn’t immediately repeat an axis, e.g., x-y-z, is fine, so is x-y-x. But x-x-z is not.

Fixed angles

Page 19: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Euler Angles vs. Fixed Angles 

One point of clarification

Euler angle

- rotates around local axes

Fixed angle

- rotates around world axes Rotations are reversed

- x-y-z Euler angles == z-y-x fixed angles

Page 20: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Euler angle Interpolation

• Interpolating each component separately

• Might have singularity problem – Halfway between (0, 90, 0) & (90, 45, 90) – Interpolate directly, get (45, 67.5, 45)– Desired result is (90, 22.5, 90) (verify this!)

Page 21: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Euler angle concatenation 

• Can't just add or multiply components • Best way:

– Convert to matrices – Multiply matrices – Extract Euler angles from resulting matrix

• Not cheap

Page 22: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock 

• Euler/fixed angles not well-formed • Different values can give same rotation • Example with z-y-x fixed angles:

– ( 90, 90, 90 ) = ( 0, 90, 0 )

Page 23: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock 

• Euler/fixed angles not well-formed • Different values can give same rotation • Example with z-y-x fixed angles:

– ( 90, 90, 90 ) = ( 0, 90, 0 )

z

x

y

Page 24: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock 

• Euler/fixed angles not well-formed • Different values can give same rotation • Example with z-y-x fixed angles:

– ( 90, 90, 90 ) = ( 0, 90, 0 )

z

x

y

z

x

y

(90,0,0)

Page 25: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock 

• Euler/fixed angles not well-formed • Different values can give same rotation • Example with z-y-x fixed angles:

– ( 90, 90, 90 ) = ( 0, 90, 0 )

z

x

y

z

x

y

z

x

y

(90,0,0) (90,90,0)

Page 26: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock 

• Euler/fixed angles not well-formed • Different values can give same rotation • Example with z-y-x Euler angles:

– ( 90, 90, 90 ) = ( 0, 90, 0 )

z

y

x

z

x

y

z

x

y z

x

y

(90,0,0) (90,90,0) (90,90,90)

Page 27: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock

• A Gimbal is a hardware implementation of Euler angles used for mounting gyroscopes or expensive globes

• Gimbal lock is a basic problem with representing 3D rotation using Euler angles or fixed angles

Page 28: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Gimbal lock

• When two rotational axis of an object pointing in the same direction, the rotation ends up losing one degree of freedom

Page 29: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Outline

• Rotation matrix

• Fixed angle and Euler angle

• Axis angle

• Quaternion

Page 30: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

(Ax,Ay,Az,)

Euler’s rotation theorem: An arbitrary rotation may be described by only three parameters.

X

Y

Z

Rotate an object by around A

Axis angle

Page 31: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

rr’

n

Given r – Vector in space to rotate n – Unit-length axis in space about which to rotate – The amount about n to rotate

Solve r’ – The rotated vector

Page 32: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

rr’

rpar

• Compute rpar: the projection of r along the n direction

rpar = (n·r)n

Page 33: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

r

r’rperprpar

• Compute rperp: rperp = r-rpar

Page 34: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

r

r’rperp

v

rpar

• Compute v: a vector perpedicular to rpar and rperp: v= rparxrperp

Page 35: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

r

r’rperp

v

Use rpar, rperp and v, θ to compute the new vector!

rpar

• Compute v: a vector perpedicular to rpar and rperp: v= rparxrperp

Page 36: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

r

r’

n

rpar = (n·r) n

rperp = r – (n·r) n

V = n x (r – (n·r) n) = n x r

r’ = r’par + r’perp

= r’par + (cos ) rperp + (sin ) V=(n·r) n + cos (r – (n·r)n) + (sin ) n x r= (cos )r + (1 – cos ) n (n·r) + (sin ) n x r

Page 37: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

• Can interpolate rotation well

Page 38: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

1. Interpolate axis from A1 to A2 Rotate axis about A1 x A2 to get A

X

Y

Z

2. Interpolate angle from 1 to to get

3. Rotate the object by around A

A1 x A2

Axis-angle interpolation

Page 39: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Axis-angle rotation

• Can interpolate rotation well

• Compact representation

• Messy to concatenate - might need to convert to matrix form

Page 40: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Outline

• Rotation matrix

• Fixed angle and Euler angle

• Axis angle

• Quaternion

Page 41: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion

Remember complex numbers: a+ib, where i2=-1

Quaternions are a non-commutative extension of complex numbers

Invented by Sir William Hamilton (1843) Quaternion: - Q = a + bi + cj + dk: where i2=j2=k2=ijk=-1,ij=k,jk=i,ki=j - Represented as: q = (w, v) = w + xi + yj + zk

Page 42: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion

• 4 tuple of real numbers: w, x, y, z

• Same information as axis angles but in a more computational-friendly form

Page 43: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion math

Unit quaternion

Multiplication

Associative

Non-commutative

Page 44: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion math

Conjugate

Inverse

Page 45: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

let

then

Page 46: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Rotation

Page 47: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion rotation

Page 48: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

• Rotate a point (1,0,0) about y-axis with -90 degrees

z

x

y

(1,0,0)

(0,0,1)

Page 49: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

• Rotate a point (1,0,0) about y-axis with -90 degrees

z

x

y

(1,0,0)

(0,0,1)

)

1

0

0

,0(

)

0

1

0

2

90sin,

2

90)(cos

0

0

1

,0)(

0

1

0

2

90sin,

2

90(cos *

Page 50: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

• Rotate a point (1,0,0) about y-axis with 90 degrees

z

x

y

(1,0,0)

(0,0,1)

)

1

0

0

,0(

)

0

1

0

2

90sin,

2

90)(cos

0

0

1

,0)(

0

1

0

2

90sin,

2

90(cos *

Point (1,0,0)

Page 51: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

• Rotate a point (1,0,0) about y-axis with 90 degrees

z

x

y

(1,0,0)

(0,0,1)

)

1

0

0

,0(

)

0

1

0

2

90sin,

2

90)(cos

0

0

1

,0)(

0

1

0

2

90sin,

2

90(cos *

Point (1,0,0)

Quaternion rotation

Page 52: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion Example

• Rotate a point (1,0,0) about y-axis with 90 degrees

z

x

y

(1,0,0)

(0,0,1)

)

1

0

0

,0(

)

0

1

0

2

90sin,

2

90)(cos

0

0

1

,0)(

0

1

0

2

90sin,

2

90(cos *

Page 53: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion composition

Rotq (Rotp (v)) Rotq (p 0 v p 1)

qp 0 v p 1q 1

qp 0 v (qp) 1

Rotqp (v)

Rotation by p then q is the same as rotation by qp

Page 54: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Matrix Form

1

0

0

0

0

1

'

'

'

q

z

y

xq

z

y

x

1

)(

1

'

'

'

0

0

0

z

y

x

qRz

y

x

For a 3D point (x0,y0,z0)

Page 55: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

1-angle rotation can berepresented by a unit circle

Page 56: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

1-angle rotation can berepresented by a unit circle

2-angle rotation can berepresented by a unit sphere

Page 57: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

• Interpolation means moving on n-D sphere

• Now imagine a 4-D sphere for 3-angle rotation

1-angle rotation can berepresented by a unit circle

2-angle rotation can berepresented by a unit sphere

Page 58: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

Moving between two points on the 4D unit

Sphere:

• a unit quaternion at each step - another point on the 4D unit sphere

• move with constant angular velocity along the great circle between the two points on the 4D unit sphere

Page 59: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

Direct linear interpolation does not workLinearly interpolated intermediate points are not uniformly spaced when projected onto the circle

Page 60: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

Spherical linear interpolation (SLERP) Normalize to regain unit quaternion

Page 61: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

Spherical linear interpolation (SLERP) Normalize to regain unit quaternion

Page 62: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternion interpolation

Spherical linear interpolation (SLERP) Normalize to regain unit quaternion

Page 63: CSCE 641: Computer Graphics Rotation Representation and Interpolation Jinxiang Chai.

Quaternions

• Can interpolate rotation well

• Compact representation

• Also easy to concatenate