ࡱ> `!_RWщCݨB @ wPVxڥJ@ϙ$ ."%k\PQ@Q!®+ceeaei)y  V*ƹeYmĄa73?3.Q"k.#"$Yh XO[W sǢ d\ E,mY`is>k/8WVtjm4ʚ}LǙab?<=ܢ:X:;gDGG ޞy.>t7u$:8[9Tq@mΓSqkLge60W]Okת33q6{-䀖맆mt槆OP'O dr_O/tX܇C΢)9VLɠ:ym?4NpG^'^ R[ЕxHj<(ۨC~4`!cxUw@/W\@v |1xcdd``cd``baV d,FYzP1n:&lB@?b  ㆪaM,,He`H {01d++&19(b Xtri# VWA|8ߍ/DoH +ss˸j? {d.ܞL -0{IFP,} ddrAÑ ֌`! 0#"#RpeqIj.ŠV "~<bt:Q+f~`f^`!ojunlYߦ+0 ` 0=xcdd```d``baV d,FYzP1n:&N! KA?H1Z8؀깡jx|K2B* R vfjv,L ! ~ Ay b'Xr:]3q50^cƟn >}@L@(\Pu}`@Flۓ BQDAae@VJfQ*TDE% \а?#N ؑBI)$5bPd+? 1h:(G)3X?a`!_`cgiW$ׯ` `0_xcdd``ed``baV d,FYzP1n:n! KA?H1 @P5< %! `3);aV&br<1@pT9 P.P16p3g`JX8Ŋʏb 7ؿ/gX8䎠0?o;$I9 @\J no;[=v>zbg3'q0d.6sI7TadaM%\6Fؑ∑I)$5bPd+/B N' s`!iL.x"Gqf@`10wxcdd```d``baV d,FYzP1n:&! KA?H1Z9l@P5< %! `3- KP 27)?(p뎘ry V8p( TSY@Z51Oy`AFhBݩj.HhnHfnj_jBP~nb.wBe:|@VJfԦ_ZoaoQfzF \M#HMX85  ]^a|1NTMTwPM ǎķ 炦.pb[) +KRsA<.E.bBAD9z0Y,`!F}v}SU1` vxSAKQuW+N"uл?h@)KOݽxH~ABou >+u!y}00Q`xնڄ( $+jtƼ4Q3*Z7`&w*ꫝU Ҙ4V a/F!WN*naDeX-R2 FhICqJMv r,-$9ΐ GR߷)}|!ϭg~ͫB%J=2DԍR궣=h2iO(h 5ҙ!ّs^ת֚ujզlU93Ҵ'oscS5EHNKs 9}A\Yo'Cpg`!ڿ{#@m2?z|e kxS=KA}3|(U"Z(R'hDMR!M Oɟ6=w6h#w{o@ #fuV$Cyd6iI2[L/J&6ijWQO;>i0)얫' #';n%,eNj`['];bOEH ?xQ=K@}3&؝ph &'ܡBJ[k+?``M 7; CFra'D!.B#S=U]Gfωb-B$]W'x0RSԱwDrl/bWaOC޼x/\v*9.\==F9IA\70-ά6=Pmd#8jNGV/Z8+qJWpф]|Q;Oj&cijx aP7E4"L)zsI Ld4xMM`!f$ (2f"o^$HD 4xQ=K`~FUABA DY[m@B':8o?pV0ݛ x V"jr"EQXdV-Tk<ɫ4B?En7=)1uFg2ւ/vz"Ǿ֒Xǁqs&x?i/ a^QQUg\UǼHR")5*5ցn=*yz2Ozp<_„ph[ cu{sGI 3/!bK.`!V"cxJoUX^a@$xQ=K@}3?. W)h) 2B 98 @'ת`; ̛yv ] -,`iG[Vg њd;FMHH$'=I6|ձwɫo0xšKv/NϽC b$"/| *ev-~b_E6ӹĽThxBqf'ZWḵyy:FیTf%Cv+U(/~ζG`!iv5;,/O .J$@0= 7xQJ@}3IZ+ b*]ԃm@Bm<]c?Ń'~ *gv)ܰy˛fg>4I@'g\Ldn07jnJNQ;؍.V~p:&s wɤ#Wr%crh#1r}\#9gg@;G&,8TCT׫+ (Vv'jgoP_w`![_~gm@d`\x=KAg.\>D EBL:@$B"V6 TX([.) Y!/z| !E:10m[(cl@(dv]_[L*a &[<:'JT4b}`me}/*9U^nD'RF>&ς:JgTJ+ѮRsM%9`!Y|".kV/:X xڥJ@ϙi*"X PVEvjnvw}7wBՅ p!3x+2M?p eD!q]WD/:thTpy2YTc PYIVe',*_I(t!ts`gV,;- ߼~"0(>68O\JN+wyi||kF^}j/֯~&ΝcD< 3EŞ|{|7 G7-[^|Le(!烒<) |Z{npCԇA8#=' Wc\7fM9M1?/{f cٯXN& ?/_h؟{w# `!vaGV` HbpxK/CQgPx$¦ ! VV[$ZMV|¢AڂBu^ưpo?gzA_qIZXh$H ֥Xd$aPXy !Uqt̸V-|}WLO:G/- '~'%4%%o΁͹F|Qk7\58oPA?I5\v9xYS<ޅ_}[qqf½vP8%uS/qgUUi"~_r6frxr9KJ4Kp}.MkZ'g#בձC:tMg(q)$-:H)tA]|LZ ]:ұ?AtGބ MHru֛H(ןJ`. r:=ktOh'r:|~{y`!W %'| Wlx %xcdd``vdd``baV d,FYzP1n:&B@?b u  ㆪaM,,He` {01d++&1KZ~ X.dR*Q͛1HZ-X@8#D^P@penR~CP[\WBn3ogR NJA\( HqĤ\Y\ t0.?2iV`!Ok#(8e $@`0= 0xcdd``bd``beV dX,XĐ )Ɂ]Rcgb x l@P5< %! `} vL@(\_(M@J4v$;@J5>ͤ$ZZs$FI&UAJ8 M =p>3*, a.p,0탄(`8+KRs!B3X%eO`!Cd (T@`\|xQAJP}3IզAWBAЅP[!7BEB3R\5aȼߟ@0OKڥRLdMh&*s]xnJ H&Uŏ; fJʘSn;-ɫ}Gw`=P=ɞJ_QGwIKz`7ru~pʪ(ˑ/щ/jvqtg:Xӧ/ Y̶Lcлbj\z9}b? K`!L[# D$}@ |xQMJ`}3Ѧ Bt^Ѕ`Հi47.B|H4X3_ !vr@2U&׺% װ"RO${hߧ1̾;yv1(zc(ewIY @{6J/M!9f\wP:nO{ .-H^̖ugAojyas?"٦]Xކ;hfexӟM`!޷&I+K'D`  xRJAň(VG ب ?`RFCIBll| vZ V*zn#cf替.qfA_# (HIG'pK9thMD.t'([R<ɸP2Rg02\bu)uk=|ů_3+A ~=,22^ Vy̜)pAq{M&Q PA=O46)^Nοg |Tvٱ JPE8;P%jZXyfcWf0dǸFp.)vUW7Gu o-c[J '&iKiQ[z`fb B .m8`!k/HczvFz?B(h^xR1KPI BA⮃P5bB  tpq\]T#N.n!-Bx}|x0nԲ+S-B)"aVpFUX]D!iU0 QMUOjm6kJ]ׂj4πxb j_qXч;ϱt1WH)="~7Ϭk;޹ mI%A_-|ۂMCUÄ9ӄiF${Z ^*0~0i{:3$۽:GWfKD{:0!Y.Uvu Pq`!W۹DCT @@%xQJP=37>6.|X--ܭXBt-+K@mU0̽7L2grsZ#6kAŚE,B4Uh*L³6w:Zlgqh ɞ$"'p8F~uSO:.y OXuɎ"iwzDUezӳa^,߃NeoWo:WW  C(섿wQ˓rx 9?]'g4u8'9\>#oh//9G8K}sI/o(Ojq?+c<͋qNs$g> r$q>#+U]>촻v/i=xFrO\yM9^hXyཙޗy\ /yS mex2`_OyG;? oǧ9w;59]m9^l%Q]}Y$SIѲ=bD{x0 Bdh?qp>~`4Dy`!}A ѫݺ0p `8>0kxcdd``ed``baV d,FYzP1n:&n! KA?H1ā깡jx|K2B* RvfRv,L ! ~ Ay b'Xr:]b mTYV KMʭb7L۳q2'܂J 2pD=;&P 27)?d \~;aC3^K.y Cv0;=$#0Ds0ۓ sAS8!v8fdbR ,.IAD !M~d!`!w)7D5!GdėGlj@ `M0Excdd``V`d``baV d,FYzP1n:B@?b -b熪aM,,He`(I? 01d++&19(b Xt3q=` ddrAE&WQb9bk?{!VF0h;Ɲ w;Qn >@L@(\Pxo!2]2b ܞ&߶ \`[όLLJ% "CX1y!Ġt`Xd`!iYa{Y Mj@(8xcdd``6e 2 ĜL0##0KQ* W_RcgbR vq?fĒʂT @_L ĺE@,a 7L&vL !'I9 @%.b'Xr=`~KPKQϡ@bPo0x@pPKQϡ_̓A La[ o?|M2_&05sVِ 6 ᣇ;H莐br<\q+у/?ib/Ȅ*?ipT7%484FUL``a#!,NΟ&i\\ι`g0@&uF&&\A $EAD9z3`!+Z\ gz=EB@ "PVxڥ?hQ{4(E0Z܄P8ũK) Z\\2KV3P -N:99#t`|^ ǽϽݻݽ;)@<ŗ[Ehߗir.6Ҵj沼UG`2ܻ%RNդ\Y?7mOŠ3~mi>x%a!~.%oՌgĮ?}ecE;Dȏǻ4*UiaO[{)xa%$+<y.#efoD~猏$,좉ݡ]_.Q>J',좉ݡ]):oIcNs(y=na3ErMN΋ݲ&vbwq^82{$wOg^Us <\yes%qXp{94VR< ϗ:GeL4*_Fe=εqJ{8F=Υ\;u]BL: TT mrV漢s]<ϫH_q}C㳃 0Uk/lem #Nk՚ aCb/ gg̐((  L hVR-Equation Equation.30,Microsoft Equation 3.00WS-Equation Equation.30,Microsoft Equation 3.00Xb-Equation Equation.30,Microsoft Equation 3.00Yc-Equation Equation.30,Microsoft Equation 3.00Zd-Equation Equation.30,Microsoft Equation 3.00[e-Equation Equation.30,Microsoft Equation 3.00\f-Equation Equation.30,Microsoft Equation 3.00]g-Equation Equation.30,Microsoft Equation 3.00^h-Equation Equation.30,Microsoft Equation 3.00_i-Equation Equation.30,Microsoft Equation 3.00`j-Equation Equation.30,Microsoft Equation 3.00ak-Equation Equation.30,Microsoft Equation 3.00bl-Equation Equation.30,Microsoft Equation 3.00cm-Equation Equation.30,Microsoft Equation 3.00do-Equation Equation.30,Microsoft Equation 3.00eU-Equation Equation.30,Microsoft Equation 3.00fV-Equation Equation.30,Microsoft Equation 3.00gW-Equation Equation.30,Microsoft Equation 3.00hX-Equation Equation.30,Microsoft Equation 3.00iY-Equation Equation.30,Microsoft Equation 3.00j[-Equation Equation.30,Microsoft Equation 3.00k\-Equation Equation.30,Microsoft Equation 3.00l]-Equation Equation.30,Microsoft Equation 3.00m^-Equation Equation.30,Microsoft Equation 3.00n-Equation Equation.30,Microsoft Equation 3.00o-Equation Equation.30,Microsoft Equation 3.00p-Equation Equation.30,Microsoft Equation 3.00q-Equation Equation.30,Microsoft Equation 3.00r-Equation Equation.30,Microsoft Equation 3.00s-Equation Equation.30,Microsoft Equation 3.00t-Equation Equation.30,Microsoft Equation 3.00u-Equation Equation.30,Microsoft Equation 3.00v-Equation Equation.30,Microsoft Equation 3.00w -Equation Equation.30,Microsoft Equation 3.0/ 0DTimes New Roman,0Wo 0DArialNew Roman,0Wo 0" DWingdingsRoman,0Wo 00DTimesngsRoman,0Wo 0 @DCourier Newman,0Wo 01PDSymbol Newman,0Wo 0c(.2  @n?" dd@  @@`` x:p:HA!                   $ ,                         , 3'        )  ,h/        !"# $%&'()*+,-./0 123456789:;<= >?@A        +   O              Yo $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$2$_RWщCݨ$$2$xUw@/W\k2$junlYߦ+w`2$_`cgiW$ׯ2$iL.x"Gqfp$2$F}v}SU1!2$ڿ{#@m2?z 2$ᡩnK>Eyv 2$$ (2f"o^n $2$"cxJoUX^a^]2$v5;,/O .Jq$2$ 6zi,$2$[_~gm2$Y|".kV/:"$2$vaG 2$b,+|ނ3$$$$$$$$2$ %'| Wl_$$$$$$$$$$$$$$$$$$2$k#(8e Wa$$$$$$$$$$$$$$$$$$$2$d (TK$2$[# D$}T$$$2$޷&I+K'W 2$k/HczvFz?B#"2$۹DCT @_#2$ j}ܴLهc$%2$i5{ Er.'2$ƝԚ"e)$$$$$$$$$$$$$$2$(duЇdb(=#vq/+2$}A ѫݺ0p,$$2$)7D5!GdėGlj].$$$$$2$iYa{Y M%/$2$+Z\ gz=E2c $0e0e     A@ AjJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E||@d g4AdAd04ppp@ <4BdBd 0Lg4VdVd0zpu pp<4!d!d 0L~kʚ;a3ʚ;<4ddddЁ 0r0___PPT10 2___PPT9/ 0?D$ 0Essential Math for GamesO =dViewing and Projection6MJim Van Verth (jim@essentialmath.com) Lars M. Bishop (lars@essentialmath.com).N~                    xViewingTo render a scene, need to know  Where am I and  What am I looking at The view transform does this Maps a standard  view space into world space Defined by a point (location), and two vectors (direction and up)y View Space   d Locked to the camera Origin is view position (focal point) The position and orientation of this space in world space tells us Where the camera is located What it is looking at&22  z View Spacex- and y-axes intuitive for screen coordinates Z-axis is the view direction (depth) Can be right- or left-handed: Left-handed can be intuitive; z = depth OpenGL uses right-handed; "z = depth We ll explain the right-handed caseNrM$rB  $   ${View Space Transform&A transform that can map World Space ! View Space Often written as V Easier to discuss V-1 first V-1 maps view ! world  Pick up a camera and aim /1'    !| Components of V-1V-1 is built from simple transforms View Translation Where is the camera? View Orientation What direction is the camera facing?d6% 3%} Components of VV is built from the inverse transforms View Translation Move the world to the camera View Orientation Turn world to face the cameraX98~ Creating View Transform  gHave viewer position e, world up direction u, point we want to look at o Want to compute view transformZhh   View Translation  3Translate the view center e to the origin E =F+ 4   View Orientation  View orientation consists of three view vectors (we defined these earlier): World space view space View-direction vector "z-axis View-right vector x-axis View-up vector y-axis fL2L2# e   Computing View Orientation  First compute view direction vector Take cross product with up vector to get right vector Cross with direction to get view up :  Computing View Orientation  dNormalize these three vectors We have three unit-length, orthogonal vectors  basis vectors! Copy to columns of matrix RVW  transforms from view orientation to world orientation4w 9   Verifying RVW    Finishing View Orientation  RVW maps view-to-world  we need world-to-view Just invert RVW. Since RVW is a rotation (orthogonal), we know:~p 8  % p  Other View Orientation Methods  View Orientation is just a rotation Either use look-at orientation (prev seq) OR other rotation matrix OR convert orientation from other format (e.g. Quaternions)FD        W  Final V  bViewing transformation V: View translation matrix E View orientation matrix RWV V = RWV E Maps world space to view space No right-to-left handed swap needed, as depth maps to "Z6b   U    Mbv = V Mbw`   8        ^Mbv can be used to transform the vertices of the body of object from model space to view space6_ [  \  Mav = V Mbw Mabn   T            Just like the body, but with one additional concatenation The final matrix, Mav, can be used to transform the vertices of the arm of object from model space to view spaceFL Z*L    \  Prefabricated Look At  gluLookAt() is equivalent to concatenating V = RWV E Most of the time, can pretty much just use that But it is important to know how it works! Complex camera interactions require an understanding of the view transform`K   ZK      ProjectionHow we represent our camera s  lens Maps a subset of the scene onto screen Generally, destination is a rectangular window Sometimes truly a GUI window Sometimes the full screen Sometimes a texture 6{K{K NDC Space   rNormalized Device Coordinates The space of our  window Lies in a plane Resolution independent Unit square (-1,-1) -> (1, 1) Origin at (0,0)  Visible objects transformed into NDC space    Projection   Must project (flatten) 3D view of camera to a plane  called projective transformation NDC space defines visible area of projection plane Two kinds Parallel - linear Perspective - non-linear (there s a divide)<Z>Z>  Parallel Projection   Flatten in a constant direction Infinitely distant center of projection K  Parallel Projection  ZParallel lines remain parallel Orthographic most commonly used  projection perpendicular to plane Not how we see the world Mainly useful for art tools and special effects (,c  I  Perspective Projection  -Lines converge to single center of projection.  Perspective Projection  Gives view we re used to Parallel lines in view direction merge Distances appear to shrink Non-linear h  The View Frustum  We need to know what part of view space to render. A  window into the world! P  The View Frustum  ;Size of window and closeness to eye determine field of view<   The View Frustum  IAlso defines how far objects are visible and how near objects are visibleJ  ! Field of View  'Related to location of projection plane(  "The Perspective Projection  #Want to project a view-space point $  #The Perspective Projection    $The Perspective Projection  Similar triangles gives us  %The Perspective Projection   Solving for yndcD *      & Aspect Ratio<One thing we haven t considered Screen may not be square Need to adjust area covered by projection plane by aspect ratio Assume y height remains 1, adjust xLl'The Perspective Projection  |Our projection equations It s a non-linear transformation$?% ?  (Homogeneous Perspective  Transformation has linear and non-linear parts Linear part are the scales Non-linear part is the division Put linear part in homogeneous transformation matrix Dividing out the w can get us the perspective division(Z%  )Perspective matrix  The homogeneous perspective matrix Note that w is no longer 1 Perspective matrix non-invertible (right column all zeroes)FfZZ23  *Perspective In Action  (Multiply linear part Divide out the w()')  +What happens to Z?  TConceptually, it s lost in the projection In practice, we keep it for sorting chores Map near plane to -1 and far plane to 1; the tighter they are, the better z-precision&UVUV  ,Projecting The Z  oProjection equation for z where n = near plane, f = far plane (distance from eye) Maps near to -1, far to 1P9$;p  -Final Projection Matrix  3This projection matrix has all this built in 344  .The Perspective Projection  rCurrent equations map from view space (xv, yv, zv) to the projection plane If (xndc yndc) falls within unit square, we re in NDC space and visible Need to keep going into screen space&     _b+             `  / Screen Space   dAspect ratio is not usually 1:1 (e.g.4:3) Screen space y axis is flipped Origin at upper left cornere  0 Screen Space_Need to map NDC to screen Scale to same size as screen, flip y, translate corner to origin 1Screen Space Transform  Scale to same size as screen, flip y, translate corner to origin Step is affine  so, we can even concatenate this into projection matrix!&ZM<2A     <  2Notes On Projection  Have described a basic viewing and projection system Others are more powerful, allowing oblique projections in which the projection plane is not parallel to the view vector All the major concepts in this one apply in the other onesZ  3Cameras are only the Start  Projection matrices have many more uses today Shadows, dynamic lights, and some mirror techniques all use projection matrices These effects often require the more complex projections (oblique, etc)  4Picking  @Have point on screen (clicked by user) Need to go backwards from screen to world space Tricky part is  inverting projection Can use gluUnProject(), or manually(*       5Pick A Vector, Any Vector  Given some pixel on the screen, find the 3D object containing that pixel Construct 3D pick vector originating at view position, ending at pixel Inverse mapping from screen space to NDC space, then inverse projection into view spaceZ  6Constructing The Pick Vector  XGiven the screen space point transform it to NDC space Just invert previous equations 4YY  7Constructing The Pick Vector  Going from NDC space to view space Need to calculate the pz component Instead of calculating inverse of perspective projection, derive it analytically H: \*:    ]  8Constructing The Pick Vector  I(px py) lies in projection plane -pz = distance from origin to plane = dJ   #F        %  9Constructing The Pick Vector  ATransform (xs ys) to view space (px py pz) where, again4      F            :Constructing The Pick Vector  ;Of course this transformation can be expressed as a matrix!<  ;Creating A Pick Ray  Given p, intersect the scene What space do we intersect in? Several choices View space (transform the scene s geom) Model space (transform only p) World space (transform both) Efficient to intersect in model space^Md&FD&*o    d  <Creating A Pick Ray  qTransform view space vector pv to world space pw, and then to model space pm Use inverse viewing transformation p   #F        B  =Creating A Pick Ray  Use pm to intersect model space object Must re-transform pv to pm for each object; still cheaper than transforming all vertices to world space When intersecting you want to use a ray instead of a vector Rays have an origin and a direction 2  2=" *9      >Creating A Pick Ray  Ray begins at the origin and runs distance t along the direction vector In our case, the origin is the view position in object s model space, M-1e Direction is the pick vector, d = pm Pick ray Hp +F    ?Pipeline Summary  Starts in local space and ends up in screen space via a series of linear transformations and a non-linear projection Since the projection has a linear part you can concatenate the entire pipeline into a single matrix  @ References   nNewman, William M., and Robert F. Sproull, Principles of Interactive Computer Graphics, 2nd Ed, McGraw-Hill, 1981. Blinn, Jim, Jim Blinn s Corner: A Trip Down the Graphics Pipeline, Morgan Kaufmann, San Fransisco, 1996. Watt, Alan, 3D Computer Graphics, 2nd Ed, Addison-Wesley, 1993. Foley, J.D., A. van Dam, S.K. Feiner, and J.F. Hughes, Computer Graphics: Principles and Practice, 2nd Ed, Addison-Wesley, Reading, Massachusetts, 1990.Z++ $6&  O* 3"    J         3         i    u  /  ` f33` 3f3` ___>?" dd@,?" dd@  " @ `"  n?" dd@   @@``@n?" dd@  @@``PR    @ ` ` p>>D$ 0Essential Math for Games r(    N\;-gֳgֳ ?P - X Click to edit Master title style!!  2  H=-gֳgֳ ? - RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S    ZpB-1 ?`` - b* 2    ZH-1 ?`  - X*(2    ZL-1 ?`  - Z*(2  N  6޽h? ? 33  Lecture Template 0 0( ~@K@   Bh 1?P%   X* 2     B$M 1? %  Z*(2   p  0 ?*P  ,  Bh 1? @2  RClick to edit Master text styles Second level Third level Fourth level Fifth level!    S    Hl 1?P   X* 2     Hq 1?   Z*(2   H  0h0 ? ̙3380___PPT10.QA9 XP@( \@d@   B 1?P%   X* 2     B( 1? %  Z*(2     H 1?P   X* 2     H| 1?   Z*(2   H  0h0 ? ̙3380___PPT10.Qp {Gf   f(   ~  s *0>    TX1gֳgֳ ?) )  H  0޽h ? 3380___PPT10.#\z0  P0(  x  c $%P   x  c $&  H  0޽h ? 3380___PPT10.*  B:` (  x  c $,P   x  c $-  pB  HD1?```pB  HD1?``p`pB @ HD1?`p`P  3 :3WMMMԔ?xArial Black0p  3 :3WMMMԔ?zArial Black0p   3 :3WMMMԔ?yArial BlackPH  0޽h ? 330  p0(  x  c $3P   x  c $d4  H  0޽h ? 3380___PPT10.n`0  0(  x  c $:P   x  c $H;  H  0޽h ? 3380___PPT10.:0  0(  x  c $BP   x  c $xC  H  0޽h ? 3380___PPT10. 0  0(  x  c $LIP   x  c $J  H  0޽h ? 3380___PPT10.    (  x  c $OP   x  c $P    HQ 1? v?  We$ 2    HDW 1? p  Ko 2  vB  ND8c? 6 6 vB  ND8c?6 V   HT 1?`   Su  2  v   N 8c?? " BH  0޽h ? 33  80(  x  c $pbP   x  c $,c    TA*  ?  ?? H  0޽h ? 33B      (  x  c $hP   x  c $i  pB  HD1? `pB  HD1?``pB  HD1?`  3 :3WMMMԔ?zArial Black0ppB  HDjJ? jB   BDo?pjB   BDo?    3 :3WMMMԔ?xArial BlackP   3 :3WMMMԔ?yArial Black@     W?viewArial Black 0ppB  HD1?```pB  HD1?``p`pB @ HD1?`p`P  3 :3WMMMԔ?xArial Black0p  3 :3WMMMԔ?zArial Black0p  3 :3WMMMԔ?yArial BlackPH  0޽h ? 33^  (  x  c $,sP   x  c $s  r  6A-  ??AB  r  6A.  ?? ] ~  r  6A  ??)  H  0޽h ? 33d   (  x  c $zP   x  c $l{  l  0A0  ??+ - H  0޽h ? 33  jb(  x  c $TP   l  0A=  ??3~    H܃ jJ?c)  V$World Space = Transform x View Space% 2%H  0޽h ? 3380___PPT10.XP²  ^(  x  c $P   x  c $  l  0A/  ??q     H jJ? <l :DEMO 2H  0޽h ? 33___PPT10i.(PU+D=' = @B +   0(  x  c $(P   x  c $䔍  H  0޽h ? 33  B:0 (  x  c $P   x  c $,  pB  HD1?```pB  HD1?``p`pB @ HD1?`p`P  3 :3WMMMԔ?xArial Black0p  3 :3WMMMԔ?zArial Black0p   3 :3WMMMԔ?yArial BlackPH  0޽h ? 33  @0(  x  c $P   x  c $L  H  0޽h ? 33  P0(  x  c $$P   x  c $਍  H  0޽h ? 33  `0(  x  c $P   x  c $  H  0޽h ? 330  p 0(   x  c $lP   x  c $(  H  0޽h ? 3380___PPT10.#0  rj (   x  c $P   x  c $ؾ  j  B 1?jB  BD1? ``0jB  BD1?0`p0  3 :3WMMMԔ?xArial Black`@&  3 :3WMMMԔ?yArial BlackP H  0޽h ? 33   0(   x  c $ōP   x  c $ō  H  0޽h ? 332      r (   x  c $ʍP   x  c $pˍ,L    N\֍ 1? p Y view position    pB  HD1? pB  @ HD1?@`pB  HD1?0dB  <D1? dB  <D1? 0 dB  <D1? ` dB  @ <D1?0 P dB  <D1? 0 ` dB  <D1? dB  @ <D1?@dB  @ <D1?P   N4 1?0   hprojection plane / NDC space 2   j  B 1? P pdB  @ <D1?  P dB  @ <D1?   dB  @ <D1?p@  dB  @ <D1?p P  dB  <D1? dB  <D1? @ dB  <D1?@ @ dB  <D1? @   N 1?@ U 3d object 2     H  0޽h ? 330   0(   x  c $P   x  c $h  H  0޽h ? 3380___PPT10.$2      r (   x  c $pP   x  c $,    NH 1? w] Y view position    pB  HD1?p 00 pB  HD1? 0dB  <D1?0 dB  <D1? 0 dB   <D1? ` dB   @ <D1?0 dB   <D1? 0 ` dB   <D1? dB   @ <D1?P 0 dB  @ <D1?0   NdO- 1?0   hprojection plane / NDC space 2   j  B 1? P pdB  @ <D1?  P dB  @ <D1?   dB  @ <D1?p # dB  @ <D1?p P dB  <D1? dB  <D1? # dB  <D1? # dB  <D1?   Nt- 1?@ U 3d object 2     pB  @ HD1? 00H  0޽h ? 33   0(   x  c $|-P  - x  c $l}- - H  0޽h ? 33      ( (   x  c $-P  - x  c $p- -   N- 1? G  Y view position    pB  HD1? P pB  @ HD1?P PpB  HD1?P p  Np- 1? P] Mx 2      N- 1? t  My 2      N܏- 1? p Mz 2   dB   <D1?0 pP dB   <D1?`  dB   <D1?  dB  @ <D1?@P dB  <D1?`  dB  <D1? dB  @ <D1?p  P dB  @ <D1?`  P   N- 1? }  Rwindow    H  0޽h ? 33  RJ  (   x  c $(-P  - x  c $- - pB  HD1? P pB  HD1?P p  Nԟ- 1? P] Mx 2     N- 1? t  My 2   dB  <D1?0 pP dB  <D1?`  dB  <D1?  dB  @ <D1?@P dB  <D1?`  dB  <D1? dB  @ <D1?p  P dB  @ <D1?`  P   NL- 1? }  Rwindow      c z0e0e    BCDE4F @  jJ 8c8c     ?1 d0u0@Ty2 NP'p<'pA)BCD|E|| 0T8g0Ph` @    p   Tl- 8c?  c fov angle  2     pB  @ HD1?P   N@- 1?  Mz 2   H  0޽h ? 33  ?7$ (  $ x $ c $-P  - x $ c $- -  $ N- 1?` Y view position    pB $ HD1? @pB $ HD1?@` $ Nd- 1?M Mx 2    $ N- 1? $  My 2   dB  $ <D1?@dB  $ <D1?F  dB  $ <D1?` P dB  $ @ <D1?@@dB  $ <D1?@ ` dB $ <D1? P dB $ @ <D1? 0 @dB $ @ <D1? @ @ $ N- 1? @ Rwindow    dB $ <D1?` p dB $ <D1? p dB $ <D1?` pp dB $ <D1?  dB $ <D1?0  dB $ <D1?P ` dB $ <D1?0  P dB $ <D1?  `  $ NH- 1?   V Near plane       $ Nh- 1?`  U Far plane       $ B - 1?p   \The View Frustum 2   pB $ @ HD1?@0 $ N- 1?t Mz 2    $ H- jJ? <l :DEMO 2H $ 0޽h ? 338     , x (  , x , c $-P  - x , c $P- -  ,  0A2  ??W[x d  ,  0A3  ??Nq x d pB , HD1? > jB , BD1? > dB , <D1?   , N- 1?< " C  \Projection plane 2     , B- 1?b   Y View position 2     , N- 1?   ]View space origin 2     , N - 1?   Z-z-axis (VDIR) 2   jB  , BD1?y>>  , N- 1?s`  X y-axis (VUP) 2     pB , HD1? x  , N` 1? 0n  Md 2    , Td jJ?   Hq/2& 2pB , HD1?/ /  , Nxh 1?w  %  M1 2   H , 0޽h ? 33z  0 0 1(  0 x 0 c $pP   x 0 c $p  pB 0 HD1?:@jB 0 BD1?   0 Br 1?p   Y View position 2    0 Nw 1? }  ]View space origin 2    0 Ny 1? 5  Z-z-axis (VDIR) 2   )  0 N} 1? yv , zvH 2      8        jB  0 BD1?p   0 N 1?p>  X y-axis (VUP) 2     H 0 0޽h ? 33y___PPT10Y+D=' = @B +   (  @4  (  4 x 4 c $8P   x 4 c $  pB 4 HD1?@ jB 4 BD1?   4 NЍ 1? ] \Projection plane 2    4 BH 1?p   Y View position 2    4 NX 1? }  ]View space origin 2     4 N 1?@ ~  S-z-axis 2     4 Nț 1? f  lyv* 2       jB  4 BD1?p   4 N  1?p  Ry-axis 2   pB  4 HD1?@ pB 4 HD1?P pP  4 N$ 1?P  {-zv* 2   *      H 4 0޽h ? 33y___PPT10Y+D=' = @B +  7/P8  (  8 x 8 c $lP   x 8 c $(  r 8  6A4  ??@ pB 8 HD1?@ jB 8 BD1?  dB 8 <D1?p  8 N 1? ] \Projection plane 2     8 Bг 1?p   Y View position 2     8 N 1? }  ]View space origin 2     8 N 1?@ ~  S-z-axis 2     8 N̿ 1? f  lyv* 2       jB  8 BD1?   8 N 1?   nYndc* 2       jB 8 BD1?p  8 N@ 1?p  Ry-axis 2   pB 8 HD1?   8 N 1? ` =  Md 2   pB 8 HD1?@ pB 8 HD1?P pP  8 N 1?P  {-zv* 2   *      pB 8 HD1? ` ` H 8 0޽h ? 33y___PPT10Y+D=' = @B +m  `< $(  < x < c $P   x < c $<  r <  6A4  ??  r <  6A5  ??   H < 0޽h ? 33y___PPT10Y+D=' = @B +  p@ (  @ x @ c $P   x @ c $  r @  6A7  ??/  ,  H @ 0޽h ? 33y___PPT10Y+D=' = @B +m  D $(  D x D c $@P   x D c $  r D  6A8  ??h\  r D  6A5  ?? c\  H D 0޽h ? 33y___PPT10Y+D=' = @B +y  H 0(  H x H c $P   x H c $4  H H 0޽h ? 33y___PPT10Y+D=' = @B +  80L (  L x L c $@P   x L c $   L  TA:  ?  ?U  H L 0޽h ? 33y___PPT10Y+D=' = @B +  P `(  P x P c $P   x P c $   P  TA  ?  ?)J   P  TA<  ?  ?  H P 0޽h ? 33y___PPT10Y+D=' = @B +C   j b T  (  T x T c $P   x T c $  pB T HD1? @jB T BD1?@dB T <D1?p  T N 1?p  Near plane: -zs= -18 2    *        T B 1? ] Y View position 2     T N@ 1?A ]View space origin 2     T N2 1?p@ S-z-axis 2     T NP 1? L   lPv* 2       jB  T BD1? @@  T NҺ 1? p]  Ry-axis 2    T Nֺ 1?pP  Far plane : -zs= 18 2    *       dB T <D1? H T 0޽h ? 33y___PPT10Y+D=' = @B +  80X (  X x X c $\P   x X c $   X  TA  ?  ?P  H X 0޽h ? 33y___PPT10Y+D=' = @B +  80\ (  \ x \ c $P   x \ c $|   \  TA?  ?  ?M3  H \ 0޽h ? 33y___PPT10Y+D=' = @B +  ` 0(  ` x ` c $<P   x ` c $  H ` 0޽h ? 33  >6 d (  d x d c $@P   x d c $  j d B 1?  jB d BD1? pjB d BD1?    d 3 :3WMMMԔ?xArial Black  d 3 :3WMMMԔ?yArial Black   d N 1?  hws& 2        d N$ 1? }  hhs& 2      pB  d HD1?  pB  d HD1?  H d 0޽h ? 33     h : (  h x h c $   x h c $ P   j h B 1?0 b .  j h B 1?@~@  h H  1?   Q(-1 -1) 2   h H 1?9 @ O(1 1) 2   h Ht 1?0 W  O(0 0) 2    h H 1?^@ P(-1 1) 2