COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS...

11
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS • AFFINE TRANSFORMATIONS • QUATERNIONS

Transcript of COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS...

Page 1: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

COMPUTER GRAPHICS

CS 482 – FALL 2015

SEPTEMBER 17, 2015TRANSFORMATIONS

• AFFINE TRANSFORMATIONS• QUATERNIONS

Page 2: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

TRANSFORMATION TYPES

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 2

TO EFFECTIVELY PLACE OBJECTS IN A GRAPHICAL ENVIRONMENT, IT IS CONVENIENT TO USE CERTAIN MATRIX TRANSFORMATIONS TO

MANIPULATE THEIR POSITION AND ORIENTATION.

THE SPECIFIC TYPES OF TRANSFORMATIONS THAT WE USE ARE:• SCALING: MULTIPLY EACH DIMENSION BY A CONSTANT

FACTOR• TRANSLATION: ADD A CONSTANT AMOUNT IN EACH

DIMENSION• ROTATION: SPIN EACH OBJECT SOME ANGLE AROUND THE

ORIGIN

CAREFULLY COMBINING THESE THREE TYPES OF TRANSFORMATIONS WILL PERMIT A GRAPHICAL

OBJECT TO BE POSITIONED AND ORIENTED IN ANY DESIRED FASHION.

Page 3: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

ROTATION

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 3

2D ROTATION:

(x, y)

(xcos - ysin, xsin + ycos)

cossin

sincos

cossin

sincos

yx

yx

y

x

Page 4: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

3D ROTATION

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 4

PITCH: ROTATION ABOUT X-AXIS

YAW: ROTATION ABOUT Y-AXIS

ROLL: ROTATION ABOUT Z-AXIS

z

yx

yx

z

y

x

cossin

sincos

100

0cossin

0sincos

cossin

sincos

cos0sin

010

sin0cos

zx

y

zx

z

y

x

cossin

sincos

cossin0

sincos0

001

zy

zy

x

z

y

x

Page 5: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

SCALING

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 5

2D SCALING:

(x, y)

(k1x, k2y)

yk

xk

y

x

k

k

2

1

2

1

0

0

Page 6: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

TRANSLATION

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 6

2D TRANSLATION:

(x, y)

x

y

(x + x, y + y)

yy

xx

y

x

??

??

ANY 2X2 MATRIX REPRESENTING TRANSLATION WOULD REQUIRE NON-

CONSTANT VALUES IN THE MATRIX (REQUIRING A SEPARATE MATRIX FOR

EACH POINT BEING TRANSLATED!)

Page 7: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

HOMOGENEOUS COORDINATES

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 7

THE TRANSLATION MATRIX PROBLEM IS REMEDIED BY THE USE OF HOMOGENEOUS COORDINATES, WHICH UTILIZE AN EXTRA

COORDINATE (I.E., A “WEIGHT” FACTOR) FOR EVERY 2D POINT.

w

yx

yx

w

y

x

cossin

sincos

100

0cossin

0sincos

ROTATION

w

yk

xk

w

y

x

k

k

2

1

2

1

100

00

00

w

ywy

xwx

w

y

x

y

x

100

10

01

TRANSLATIONSCALING

(NOTE: IN MOST OF OUR WORK, THE

WEIGHT FACTOR WILL MERELY BE 1.)

Page 8: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

COMBINING TRANSFORMATIONS

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 8

Original Image

BY APPLYING DIFFERENT TRANSFORMATIONS IN A PARTICULAR ORDER, GRAPHICAL OBJECTS CAN BE MANIPULATED TO FORM COMPLEX VARIATIONS

OF THEIR ORIGINAL FORMS.

1. ENLARGE ONE COPY OF THE ORIGINAL IMAGE VIA SCALING, AND THEN TRANSLATE IT TO THE RIGHT.

2. SHRINK ANOTHER COPY OF THE ORIGINAL IMAGE VIA SCALING, ROTATE IT SLIGHTLY COUNTERCLOCKWISE, AND THEN TRANSLATE IT HIGHER AND TO THE RIGHT.3. SHRINK A THIRD COPY OF THE ORIGINAL IMAGE VIA SCALING, ROTATE IT CLOCKWISE A BIT LESS THAN THE SECOND IMAGE, AND THEN TRANSLATE IT SLIGHTLY HIGHER AND FURTHER TO THE RIGHT.

Page 9: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

AFFINE TRANSFORMATIONS

CS 482 – FALL 2015

ORDER OF TRANSFORMATIONS

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 9

CARE MUST BE TAKEN WHEN APPLYING TRANSFORMATIONS, SINCE THE RESULTING IMAGE VARIES WITH THE ORDER IN WHICH THE

TRANSFORMATIONS ARE APPLIED.R=60 COUNTERCLOCKWISE ROTATION S=150% X-SCALING & 50% Y-SCALING

T=TRANSLATION BY (-3,-1)

Rfirst

Ssecond

Tthird

Sfirst

Tsecond

Rthird

Page 10: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

QUATERNIONS

CS 482 – FALL 2015

SMOOTH ROTATIONS

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 10

TRADITIONALLY, A GRAPHICAL OBJECT’S ORIENTATION HAS BEEN DEFINED VIA “EULER ANGLE” ROTATIONS

ABOUT THE THREE COORDINATE AXES (I.E., PITCH, YAW, AND ROLL).HOWEVER, THIS APPROACH CAN RESULT IN “GIMBAL

LOCK”, IN WHICH ROTATION ABOUT ONE AXIS EFFECTIVELY OVERRIDES ROTATION ABOUT ANOTHER

AXIS.

OPENGL USES ROTATION ABOUT A USER-SPECIFIED AXIS, BUT THAT APPROACH CAN RESULT IN

INTERPOLATIONS BETWEEN ORIENTATIONS THAT DO NOT APPEAR SMOOTH.

A MUCH SMOOTHER APPROACH INVOLVES QUATERNIONS, FOUR-DIMENSIONAL VERSIONS

OF COMPLEX NUMBERS THAT CAN ESSENTIALLY BE VIEWED AS A 3D VECTOR,

COMBINED WITH A SCALAR.q=𝑤+𝑥 i+𝑦 j+ 𝑧 k

Page 11: COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 17, 2015 TRANSFORMATIONS AFFINE TRANSFORMATIONS QUATERNIONS.

QUATERNIONS

CS 482 – FALL 2015

SPHERICAL LINEAR INTERPOLATION

SEPTEMBER 17, 2015: TRANSFORMATIONS PAGE 11

QUATERNIONS MAY BE USED TO CREATE SLERPS, SPHERICAL LINEAR INTERPOLATIONS, WHICH COMPEL THE INTERPOLATED ORIENTATIONS TO BE ALONG THE

GREAT CIRCLE OF A SPHERE.

P

QC

GIVEN A SPHERE WITH CENTER C AND

SURFACE POINTS P AND Q, WHERE THE ANGLE BETWEEN THE CP AND

CQ VECTORS IS .

𝑃 (𝑡 )=𝑃sin [ (1− 𝑡¿𝜙 ]

sin𝜙+𝑄

sin (𝑡 𝜙 )sin 𝜙

THE SLERP EQUATION FOR ALL OF THE POINTS ON THE

GREAT CIRCLE OF THE SPHERE JOINING P AND Q

IS: