Top Banner
18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 CS380: Introduction to Computer Graphics Frames in Graphics Chapter 5 Min H. Kim KAIST School of Computing Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler, MIT Press, 2012 SUMMARY Respect 2
15

CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

Jul 07, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

1

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

CS380:IntroductiontoComputerGraphicsFramesinGraphics

Chapter5

MinH.KimKAISTSchoolofComputing

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

SUMMARYRespect

2

Page 2: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

2

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Left-ofrule•  Pointistransformedwithrespecttotheframethatappearsimmediatelytotheleftofthetransformationmatrixintheexpression.

•  Weread

•  Weread

3

f t ⇒

f tS

Sistransformedbywithrespectto f t

f t

istransformedbywithrespectto f t = at A−1 ⇒ atSA−1

S at

f t

f t

at

SA−1A

at =f t A

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Scalingapointoverframe

4

!f t = !at A−1

Page 3: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

3

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Rotatingapointoverframe

5

!f t = !at A−1

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Twointerpretationsoftransformations•  Twodifferentwaysformultipletransformations:

1.  (Localtransformations)Translatewithrespecttothenrotatewithrespecttotheintermediateframe

2.  (Globaltransformations)Rotatewithrespecttothentranslatewithrespecttotheoriginalframe

6

f t

f 't

f t

f t

Localtransformations Globaltransformations f t ⇒

f tTR

Page 4: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

4

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

FRAMESINGRAPHICSChapter5

7

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

World,objectandeyeframes•  Worldframe(worldcoordinates)– abasicright-handedorthonormalframe– weneveralterthisframe– otherframescanbedescribedwrttheworldframe

•  Objectframe(objectcoordinates)– modelthegeometryoftheobjectusingvertexcoordinates

– notneedtobeawareoftheglobalplacement– aright-handedorthonormalframeofobject

•  Eyeframe(cameracoordinates):lateron8

wt

ot

Page 5: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

5

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Worldvs.objectframe•  Therelationshipbetweentheworldframeandobjectframe:– affine4-by-4matrix(rigidbodytransformation:rotation+translationonly)

•  Themeaningofistherelationshipbetweentheworldframetotheobject’scoordinatesystem.

•  Tomovethepositionoftheobjectframeitself,wechangethematrix.

9

ot = wtO

O

O

ot

O

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Theeye’sview•  Theworldframeisinred•  Theobjectframeisingreen•  Theeyeframeisinblue– Theeyeislookingdownitsnegativeztowardtheobject.

10

-Z

objectframe

worldframe

eyeframe

Page 6: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

6

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Theeyeframe•  Eyeframe(cameracoordinates)– aright-handedorthonormalframe–  theeyelooksdownitsnegativezaxistomakeapicture

11

et

et = wtE

-Z

objectframe

worldframe

eyeframe

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Extrinsictransformationoftheeye•  weexplicitlystorethematrix

– Objectcoordinates:– Worldcoordinates:– Eyecoordinates:– Calculatingtheeyecoordinatesofeveryvertexes:

12

E

p =otc

cOc

E−1Oc

xeyeze1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

= E−1O

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

=wtOc =

etE−1Oc

!ot = !wtO,!et = !wtE

Page 7: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

7

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

MovinganObject

•  Wewanttheobjecttorotatearounditsowncenterabouttheviewer’syaxis,whenwemovethemousetotheright.

•  Howwecoulddothis?13

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

MovinganObject•  Basicidea:setaframe

•  MovingtransformationisM.•  Whatisthebestauxiliaryframetodothis?

14

at = wt A

ot

=wtO

=at A−1O

⇒atMA−1O

=wt AMA−1O.

at

Page 8: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

8

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

MovinganObject•  Whatifwechoose•  wetransformthisobjectwithrespecttoratherthanwithrespecttoourobservationthroughthewindow.

15

ot

ot

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

MovinganObject•  Whatifwetransformwithrespectto•  wewillrotateabouttheoriginoftheeye’sframe(itappearstoorbitaroundtheeye).

•  Thenwhatframeitshouldbe?

16

ot

et

et

Page 9: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

9

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

MovinganObject

•  Weactuallywanttwodifferentoperations1.  totransform(rotate)theobjectatitsorigin2.  buttherotationaxisshouldbetheyaxisofthe

eye.17

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

HowtomoveanObject•  RecallingtheAffinetransform.:•  Theobject’sAffinetransform.:

(wewanttheobject’srotationabouttheobject’sorigin)•  Theeye’sAffinetransform.:

(wewanttheobject’srotationabouttheeye’syaxis)•  Thedesiredauxiliaryframe

(imagineinainverseway):

18

A = TRO = (O)T (O)R

E = (E)T (E)R

at = wt (O)T (E)RA = (O)T (E)R

!at

Page 10: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

10

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Summary•  Fromtheleft,wetranslatetheworldframetotheoriginOoftheobject’sframe,andthenrotatingtheobject’sframebyMaboutthatpointtoalignwiththedirectionsoftheeyeE.

19 at = wt (O)T (E)R

O← AMA−1OA = (O)T (E)R

=etE−1Oc p =

otc =wtOc

!ot = !wtO,!et = !wtE

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Movingtheeye•  Weusethesameauxiliarycoordinatesystem.•  Butinthiscase,theeyewouldorbitaroundthecenteroftheobject.

•  Applyanaffinetransformdirectlytotheeye’sownframe(turningone’shead,first-personmotion)

20

et = wtE,E← EM

Page 11: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

11

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Theeyematrix(cameratransform)•  Specifyingtheeyematrixby:–  theeyepoint–  theviewpoint(wheretheeyelooksat)–  theupvector

21

z = normalize(p − q)x = normalize(u× z)y = z × xnormalize(c) =

c / c12 + c2

2 + c32

E =

x1 y1 z1 p1x2 y2 z2 p2x3 y3 z3 p30 0 0 1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

p

q

u

et = wtE

x

y=u

z

pq

NBmatrixsenttothevertexshaderisE^{-1}*O

NBP.39containserrors(seeerrata)!!!

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Theviewmatrix(gluLookAt)•  Specifyingtheviewmatrix–  theeyepoint–  theviewpoint(wheretheeyelooksat)–  theupvector

22

z = normalize(q − p)x = normalize(u× z)y = x × z

p

q

u

V = E−1

xeyeze1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

= E−1O

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

x y

zu

p

q

V =E−1

modelmatrix:Oviewmatrix:V =E−1

movelviewmatrix:VO=E−1O

Page 12: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

12

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

SceneGraph:HierarchyFrames•  Anobjectcanbetreatedasbeingassembledbysomefixeandmovablesubobjects.

23

ot = wtO o 't = otO ' at = ot A bt = at B b 't =

bt B '

ct =btC

dt = ctD d 't =

dtD '

f t = otF

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

SceneGraph:HierarchyFrames•  WejustupdateitsOmatrixtotheobjectframe,insteadofrelatingittotheworldframe

24

ot = wtO

ot = wtOat = wtOAbt = wtOABb 't = wtOABB 'ct = wtOABCdt = wtOABCDd 't = wtOABCDD '

Page 13: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

13

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Matrixstack•  Matrixstackdatastructurecanbeusedtokeeptrackofthematrix

•  push(M)–  createsanew‘topmost’matrix–  acopyoftheprevioustopmostmatrix– M.multipliesthisnewtopmatrix

•  pop()–  removesthetopmostlayerofthestack

•  descending–  descenddowntoasubobject,whenapushoperationisdone

–  thismatrixispoppedoffthestackwhenreturningfromthisdescenttotheparent

25

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Movinglimbs

26

Page 14: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

14

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Movinglimbs

27

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Scenegraphpseudocode

28

…matrixStack.initialize(inv(E));matrixStack.push(O);

matrixStack.push(O’); draw(matrixStack.top(),cube);\\bodymatrixStack.pop();\\O’

matrixStack.push(A);\\grouping matrixStack.push(B); matrixStack.push(B’); draw(matrixStack.top(),sphere);\\upperarm matrixstack.pop();\\B’

matrixStack.push(C); matrixStack.push(C’); draw(matrixStack.top(),sphere);\\lowerarm matrixStack.pop();\\C’ matrixStack.pop();\\C matrixStack.pop();\\BmatrixStack.pop();\\A

\\currenttopmatrixisinv(E)*O\\wecannowdrawanotherarm

matrixStack.push(F);…

!p="etE−1OO'c →draw()

!p="etE−1OABB 'c →draw()

!p="etE−1OABCC 'c →draw()

!p="etE−1Oc

Page 15: CS380: Introduction to Computer Graphics Frames in ...vclab.kaist.ac.kr/cs380/slide06-frames.pdf · 18/03/22 1 Min H. Kim (KAIST) Foundations of 3D Computer Graphics, S. Gortler,

18/03/22

15

MinH.Kim(KAIST) Foundationsof3DComputerGraphics,S.Gortler,MITPress,2012

Stagesofvertextransformation

29

Modelviewmatrix

Projectionmatrix

Perspectivedivision

Viewporttransforma

tion

eyecoordinates

http://www.glprogramming.com/red/chapter03.html

clipcoordinates

normalizeddevicecoordinates

windowcoordinates

vertex

xeyeze1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

= E−1O

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥

xoyozo1

⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥