Realtime 3D Computer Graphics & Virtual Reality. Viewing

Size: px
Start display at page:

Download "Realtime 3D Computer Graphics & Virtual Reality. Viewing"

Transcription

1 Realtime 3D Computer Graphics & Virtual Realit Viewing

2 Transformation Pol. Per Verte Pipeline CPU DL Piel Teture Raster Frag FB v e r t e object ee clip normalied device Modelview Matri Projection Matri Perspective Division Viewport Transform window Modelview Modelview Projection other calculations here material color shade model (flat) polgon rendering mode polgon culling clipping

3 Eample Frame Rendering Establish World Establish Viewpoint & Displa Plane Perform 3D Clipping Projection of World onto Displa Plane Perform Hidden Surface Removal Determine Displa Colors Rasteriation of 2D Displa *Rendering order ma be changed based on algorithms involved!

4 Classical and General Viewing

5 Viewing Process for Seeing a world Projection of a 3D world onto a 2D plane Snthetic Camera Model

6 Viewing Issues Location of viewer Location of view plane What can be seen (Culling and Clipping) How relationships are maintained Parallel Lines Angles Distances (Foreshortening) Relation to Viewer

7 Objects vs. Scenes Some viewing techniques better suited for viewing single objects rather than entire scenes Viewing an object from the outside (eternal viewing) Engineering, Eternal Buildings Viewing an object from within (internal viewing) Internal Buildings, Games

8 Definitions Projection: a transformation that maps from a higher dimensional space to a lower dimensional space (e.g. 3D->2D) Center of projection (CoP): the position of the ee or camera with respect to which the projection is performed (also ee point, camera point, proj. reference point) Projection plane: in a 3D->2D projection, the plane to which the projection is performed (also view plane)

9 Projectors Projectors: lines from coordinate in Original Space to coordinate in Projected Space A A Projectors A' B Projectors A' B Center of Projection B' Projection Plane B' Center of Projection at Infinit (Direction of Projection) Projection Plane Perspective: Distance to CoP is finite Parallel: Distance to CoP is infinite

10 Planar Geometric Projections Projection onto a plane Projectors are straight lines Alternatives: Some Cartographic Projections Omnima

11 Center of Projection Perspective View Parallel View

12 Projections Planar Geometric Projections Top (Plan) Front elevation Orthographic Parallel Oblique Cabinet Cavalier Perspective One-point Two-point Three-point Side elevation Aonometric Other Other

13 Parallel Projections Orthographic: Direction of projection is orthogonal to the projection plane Elevations: Projection plane is perpendicular to a principal ais Front Top (Plan) Side Aonometric: Projection plane is not orthogonal to a principal ais Isometric: Direction of projection makes equal angles with each principal ais. Oblique: Direction of projection is not orthogonal to the projection plane; projection plane is normal to a principal ais Cavalier: Direction of projection makes a 45 angle with the projection plane Cabinet: Direction of projection makes a 63.4 angle with the projection plane

14 Parallel Projections: Orthographic Projections Parallel Projectors Perpendicular to Projection Plane Special Case of Perspective Projection

15 Orthographic Projections: Multiview Classical Drafting Views Preserves both distance and angles Suitable to Object Views, not scenes Front-Elevation Projection Plane Parallel to Principle Faces Top or Plan-Elevation Side-Elevation

16 Orthographic Projections: Aonometric Projections Projection plane can have an orientation to object

17 Aonometric Projections Isometric Smmetric to three faces Dimetric Smmetric to two faces Trimetric General Aonometric case Foreshortening: Length is shorter in image space than in object space Uniform Foreshortening (As opposed to perspective projections where foreshortening is dependent on distance from object to COP) Parallel lines preserved Angles are not preserved

18 Oblique Projections Parallel Projections not perpendicular to projection plane Oblique projection tpes: Cavalier 45-degree Angles from Projection Plane Cabinet Arctan(2) or 63.4-degree Angles from Projection Plane

19 Perspective Projections First discovered b Donatello, Brunelleschi, and DaVinci during Renaissance Objects closer to viewer look larger Parallel lines appear to converge to single point One-point: One principal ais cut b projection plane One ais vanishing point Two-point: Two principal aes cut b projection plane Two ais vanishing points Three-point: Three principal aes cut b projection plane Three ais vanishing points

20 Vanishing Points Perspective Projection of an set of parallel line (not perpendicular to the projection plane) converge to a vanishing point Infinit of vanishing points one of each set of parallel lines

21 Ais Vanishing Points Vanishing point of lines parallel to one of the three principal aes There is one ais vanishing point for each ais cut b the projection plane At most, 3 such points Perspective Projections are categoried b number of ais vanishing points

22 Perspective Projections

23 Perspective Projection n n In the real world, objects ehibit perspective foreshortening: distant objects appear smaller The basic situation:

24 Perspective Views Objects further awa look smaller Natural look Length is not preserved Foreshortening of lines depends on distance from viewer

25 Perspective Projection When we do 3-D graphics, we think of the screen as a 2-D window onto the 3-D world: How tall should this bunn be?

26 Projection Transformations NOTE: Throughout the following discussions, we assume an OpenGL-like camera coordinate sstem (COP at the origin, DOP along the ais, vp < ). The concepts are the same for an arbitrar viewing configuration but the math is slightl more complicated.

27 Projecting Points onto a Displa Plane* Projection of world onto displa plane involves a perspective transformation: p =M per p Not affine (parallel lines do not remain parallel) Non-reversable ( p,d) =d ( p,d) =d *Note: Angels book has several errors in the mathematics in this area

28 Projection of point onto displa plane Observe: = (Same for ), = / d Results in non-uniform foreshortening d p p ( p,d) =d ( p,d) =d

29 One-Point Projection Center of Projection on the negative - ais with viewplane in the - plane. -Z +Z (,, -d) (,, ) ( proj, proj, ) + + = + = )) / ( /( )) / ( /( ) / ( / d d d d (,, ) projected = d/(d+) = /(+(/d)) projected = d/(d+) = /(+(/d))

30 Perspective Projection step b step The geometr of the situation is that of similar triangles. View from above: P (,, ) View plane Z What is? =? d (,,)

31 Perspective Projection Desired result for a point [,,, ] T projected onto the view plane: What could a matri look like to do this? d d d d d d d = = = = = = =, ', ' ', '

32 Use of Homogeneous Coordinates We can use homogeneous coordinates to make perspective transformation easier Homogeneous Representation of point: Suppose, instead: w w p = w w p = As long as w, we can recover original point

33 Use of w in homogeneous coordinates Let matri M transforms point p into point q: = = = / / d Mp d q

34 What is q? Then convert q back to a 3D point: Thus q is our projection of p onto the displa plane! = = = / / / / / p p p d d d d d d q

35 A Perspective Projection Matri Eample: Or, in 3-D coordinates: = d d d d d,,

36 Thus, M is M pers Thus, the matri M is used to project points onto a perspective displa plane = / d M

37 Simple Projection Pipeline Simple OpenGL-like Projection Matri: Model-View Matri Projection Matri Perspective Division

38 Orthogonal Projections, M ortho Special Case of Perspective Projection Displa Plane at =,, = = = p p p = p p p

39 Another One-Point Projection Center of Projection at the origin with view plane parallel to the - plane at distance d from the origin. M per Points plotted are /w, /w where w = /d Perspective division d d d d d ) / /( ) / /( / / = -Z +Z projected = d/ = /(/d) projected = d/ = /(/d)

40 Specifing An Arbitrar 3-D View Two coordinate sstems World reference coordinate sstem (WRC) Viewing reference coordinate sstem (VRC) First specif a view plane and coordinate sstem (WRC) View Reference Point (VRP) View Plane Normal (VPN) View Up Vector (VUP) Specif a window on the view plane (VRC) Ma and min u,v values (Center of the window (CW)) Projection Reference Point (PRP) Front (F) and back (B) clipping planes (hither and on)

41 Snthetic Camera Model

42 Snthetic Camera Model

43 Camera Analog 3D is just like taking a photograph (lots of photographs!) camera viewing volume tripod model

44 Camera

45 Camera Projection

46 Camera Analog and Transformations Projection transformations adjust the lens of the camera Viewing transformations tripod define position and orientation of the viewing volume in the world Modeling transformations moving the model Viewport transformations enlarge or reduce the phsical photograph

47 Coordinate Sstems and Transformations Steps in Forming an Image specif geometr (world coordinates) specif camera (camera coordinates) project (window coordinates) map to viewport (screen coordinates) Each step uses transformations Ever transformation is equivalent to a change in coordinate sstems (frames)

48 Projection Specification

49 Projection Characteristics Camera/Viewpoint Location Camera/Viewpoint Direction Camera/Viewpoint Orientation Camera/Viewpoint Lens (View Volume) Width/Height of Lens Front/Back Clipping Planes Parallel or Perspective Projections Parallel is special case of Perspective

50 OpenGL Camera or Projection Coordinates Visible Objects in the - direction Displa Plane centered at (,,)

51 Specifing Viewing Characteristics Fied Camera / Move World Look At View Volume / Displa Plane Specification Vector Specification

52 Camera Location Relative to World Coordinates Can be thought of in two was: Camera location is specified in world coordinates World coordinate frame is located in camera coordinates Camera transformations are reverse of World transformations

53 Fied Camera / Move World Fi the camera at a specific location/orientation Transform the world such that the camera sees the world the right wa I.e., move the world, not the camera Tpical approach for OpenGL

54 Look At Setup the camera to Look At the world Set the camera location Set the look at point Set the camera rotation angle Eample: glulookat

55 View Volume / Displa Plane Specification Specif View Volume and Displa Plane Viewing Volume Projection Plane Near Clipping Plane Far Clipping Plane

56 Fun with View Volumes All projection information is captured in view volume and projection plane. What happens if we pla with these values? Oblique Parallel Projections Non-Right Frustum Perspective Projections View Volume Values Bo Lower-Left Corner/Upper Right Corner of back and front planes Back Plane Angles/Front Plane Angles View Projection Plane Plane Lower-Left Corner/Upper-Right Corner Front Clipping Angle Plane Location Relative to View Volume Back Clipping Plane

57 Vector Specification Most fleible method of viewing specification View plane ma be anwhere with respect to the world Locate the View Plane (I.e. Projection Plane) b: View reference point (VRP) View-plane normal (VPN) (n ais) v VRP n VPN u

58 VRC Coordinate Sstem Viewing-Reference Coordinate (VRC) Sstem n-ais - along View-plane normal (VPN) v-ais projection of View-up Vector (VUP) u-ais Right hand coordinate sstem v VUP VRP n VPN u

59 Viewing Window Min/Ma u and v ranges Need not be smmetrical around VRP v (u-min, v-min) n VPN VRP (u-ma, v-ma) u

60 Center of Projection Projection-Reference Point (PRP) v VRP n VPN u Center of Projection (PRP)

61 Direction of Projection Projection-Reference Point (PRP) v PRP CW VRP u n VPN

62 Oblique Parallel Projection Vector from PRP to Center of the Window not parallel to VPN v PRP CW VRP u n VPN

63 Perspective View Volumes Back Clipping Plane View Plane Front Clipping Plane VRP VPN

64 Orthogonal View Volumes Specification of Viewing Volume Front Clipping Plane View Plane Back Clipping Plane VRP VPN DOP

65 Oblique Projections View Plane Back Clipping Plane VPN VRP DOP

66 Projection Specification in OpenGL

67 Projection Specification in OpenGL Locate World in Camera Coordinates Alternative: glulookat encapsulates world to camera coordinate transformations Select View Tpe (Pespective or Orthogonal) Set View Volume (glfrustum, glortho, gluperspective) (near clipping plane is projection plane) Conceptuall not as fleible as VRC sstem Although with world coordinate transformation, ou can obtain the same results

68 Projections in OpenGL Camera located at (,,) pointing in the direction. Up is positive direction. GL_Modelview Matri controls the world GL_Projection Matri controls the camera Vertices in Object or World Coordinates Model-View CTM Projection Vertices in Viewpoint Coordinates

69 OpenGL Move the world relative to the camera For eample: Moving the camera + along the Z ais is equivalent to moving the world along the Z ais Is rotating the camera positivel around the ais the same as rotating the world negativel around the ais?

70 OpenGL Implementation of View Volume / Displa Plane glfrustum Displa Plane is same as Near Clipping Plane Specif Lower-Left and Upper Right Corners of Near Clipping Plane Specif Near and Far Distances =-far -Z ( min, min,-near) CW ( ma, ma,-near) COP Projection Plane Near Clipping Plane

71 glfrustum Variations Displa Ais (-) does not have to go through the center of the window =-far -Z COP ( min, min,-near) CW Projection Plane ( ma, ma,-near) Near Clipping Plane

72 OpenGL Alternatives Alternative: gluperspective Specifies Frustum via viewing angles (ala Camera Lens) glortho Orthogonal Projection

73 Now What? Several issues are not address with the simple projection matries we have developed: 3D Clipping Efficienc in a Frustum Viewing Volume Hidden Surface Efficienc Solution: Use Projection Normaliation Get rid of perspective and other problem projections! Everthing is easier in an canonical, orthogonal world!

74 3D Viewing Transformation Projection Matries Input 3D World Coordinates Output 3D Normalied Device Coordinates (a.k.a. Window Coordinates) Data in 3D World Coordinates Data in 3D Camera Coordinates Entire World in Normalied Device Coordinates (NDC) Viewable World in Normalied Device Coordinates (NDC) NDC or Window Coordinates Transform World into Camera Coordinates Appl Normaliing Transformation Clip Against View Volume Project onto Projection Plane p cam = M cam p p p proj proj P = pers cam Just set to ero or (or ignore) = P ortho p p cam

75 Idea: Canonical View Volume Define Viewing Volume via Canonical View Volumes Plus: Easier Clipping Minus: Another Transformation View Volume Back Clipping Plane OpenGL s canonical view volume (other APIs ma be different): + Front Clipping Plane,,- Back Clipping Plane - DOP Back Clipping Plane + Front Clipping Plane View Volume View Plane - Front Clipping Plane - -,-,-

76 Projection Normaliation Distort world until viewing volume in world fits into a parallel canonical view volume. Find a transformation that distorts the vertices in a wa that we can use a simple canonical projection. +,,- Back Clipping Plane - + Front Clipping Plane View Volume - - -,-,-

77 Camera Transformation and Projection Normaliation for Orthogonal Views Camera Transformation in Orthogonal Views (M cam ). Convert World to Camera Coordinates Camera at origin, looking in the direction Displa plane center along the ais 2. Combinations of translate, scale, and rotate transformations Can be accomplished through camera location specification Y X Z Y (min,min,-near) X (ma, ma, -far) Z -Z Projection Normaliation for Orthographic Views (P ortho ). Translate along the ais until the front clipping plane is at the origin 2. Scale in all three dimensions until the viewing volume is in canonical form Y (min,min,-near) (ma, ma, -far) (,,) Y -Z X X

78 Projection Normaliation for Orthogonal Parallel Projections Mapping a orthogonal view volume to a canonical view volume requires two affine transformations: T ma + min ) ( + ) ( +, ma min, ma ( min ) S ( ma 2 2 2,, min ) ( ma min ) ( ma min ) these can be concatenated to The camera is pointing in the negative direction. All projectors are from infinit towards the origin. Hence P can be written as: P = ST = P = ma ma 2 2 OpenGL note: OpenGL offers just an interface for the orthogonal case using glortho(min, ma, ma, min, near, far) min min ma ma 2 2 min min ma 2 min 2 far near ma + min ma min ma + min ma min ma + min ma min ma + min ma min ma + min ma min far + near far near

79 Projection Normaliation for Orthogonal Parallel Projections = = min ma min ma min ma min ma min ma min ma near far near far near far ST M P orth Finall, the resulting matri has to be post multiplied b a simple orthogonal parallel projection + + = 2 2 min ma min ma min ma min ma min ma min ma P

80 Projection Normaliation for Oblique Parallel Projections Orthogonal parallel projection can be seen as just a special case of an oblique parallel projection. An oblique projection can be characteried b the angle of the projectors with the VP. θ φ Top and side views (see left) of a projector and the VP =. ( θ, φ) characterie the degree of obliqueness. Considering the top view (a), tanθ = p and likewise following (b): p p p can be found b = cotθ = cotφ For VP = this results to P: cotθ cotφ P = After etracting the orthogonal projection we derive an additional shear: P = M orth H( θ, φ) = cotθ cotφ

81 Projection Normaliation for Oblique Parallel Projections = = cot cot ), ( φ θ φ θ H M P orth P is not in canonical form! It is a simple shear followed b an orthographic projection. The same translation and scaling used for the orthographic case has to be inserted between the shear and the projection: = = cot cot ), ( min ma min ma min ma min ma min ma min ma φ θ φ θ near far near far near far STH M P orth + + = 2cot 2 2cot 2 min ma min ma min ma min ma min ma min ma min ma min ma P φ θ

82 Camera Transformation (M cam ) and Projection Normaliation (P pers ) for Perspective Views Camera Transformation for Perspective Views (M cam ). Convert World to Camera Coordinates Camera (COP) at origin, looking in the direction Displa plane center along the ais 2. Combinations of translate, scale, and rotate transformations Can be accomplished through camera location specification Y X Z Y (min,min,-near) Z X (ma, ma, -far) Z Projection Normaliation for Perspective Views (P pers ). Convert viewing bo to right frustum (on ais) This is because man APIs including OpenGL allow non-right viewing volumes 2. Scale the right frustum into canonical form 3. Convert viewing bo (right frustum) to a right parallelpiped Shrinking objects that are further awa Y (min,min,-near) X (ma, ma, -far) (,,) Y Z X

83 Projection Normaliation for Perspective Projections Again, find a transformation that distorts the vertices in a wa that we can use a simple canonical projection: perspective-normaliation transformation Given ) a simple perspective projection M = with VP =- and COP persp at origin: Given 2) a perspective view volume with the angle of view being 9 => frustum sides intersect VP at 45 angle. View volume is a semi infinite view pramid with: = +/-, = +/- View volume is finite b specifing the near plane = ma and the far plane = min with ma > min

84 Projection Normaliation for Perspective Projections = β α N Let N be a nonsingular matri similar to M with:, β α Appling N to a homogeneous-coordinate point: = + + = ' ' ' ' ' ' a division perspectiv e β β α β α Appling an orthographic projection along the -ais to N: = = β α M orth N = = ' Np M division perspectiv e orth Appling the result to an arbitrar point p : If we appl N followed b an orthogonal projection to a point we achieve the same result for and as appling a perspective projection to the same point!

85 Projection Normaliation for Perspective Projections Nonsingular matri N transforms the original viewing volume into a new volume. Now choosing α, β such that the new volume is the canonical view (clipping) volume. Given the sides = +/- transformed b results to = +/- and = +/- transformed b results to = +/- and The front of the view volume = ma is transformed to: The back of the view volume = min is transformed to: Now we choose: α = ma ma + min min 2 β = ma Then the plane = is mapped to the plane =- and the plane = is mapped to the plane =, hence we achieve the canonical volume: ma min min β ' ' = a + β ' ' = a + ma min N transforms the viewing volume to a right parallelepiped, a following orthographic projection is the same as a perspective transformation. N is called the perspective normaliation matri.

86 Projection Normaliation for Perspective Projections β ' ' = a + is nonlinear but preserves depth-ordering, hence > 2 ' ' > ' ' 2 Notes: Hidden surface removal works in the normalied volume. Nonlinearit can cause numerical problems due to limited resolution in the depth buffer. Onl one viewing pipeline is required b carefull choosing a projection matri to insert into the pipeline. Perspective-Normaliation Matri (N per ) converts frustum view volume into canonical orthogonal view volume: N per = far + near far near 2 far near far near

87 Projection Normaliation for nonright Perspective Projections The right (smmetric) perspective projection is a special case for an arbitrar perspective projection like the orthographic projection was for the parallel oblique case. An arbitrar perspective projection is required, e.g., for driving several large-screen projection-based VR displa tpes which. use head tracking and 2. fi the VPs w.r.t. the moving COP and which hence require dnamic frustum calculation (responsive workbenches, Holoscreens, CAVEs, ) This tpe of projection is a.k.a. off-ais projection! Do derive the projection matri for off-ais set-ups we follow the same path as we did for the parallel projection case: Insertion of a shear transformation into the projection pipeline.

88 Projection Normaliation for nonright Perspective Projections Find H which satisfies: ( ( H min min min ma ma H ( θ, φ) = H cot ) ) = min min + 2ma ma,cot ma + 2ma The resulting frustum is described b the planes: ma min ma min, = ±, = min, 2ma 2ma min ( ) ( ) = ± = ma

89 Projection Normaliation for nonright Perspective Projections Now scale the sides to achieve without changing near/far planes. = 2ma 2ma S S,, ma min ma min = ±, = ± S is without reference to since it is uniquel determined b its results on four points, here the intersection points of the near plane and the sides. Now N = α β gets the far plane to - and the near plane to with the alread chosen α = ma ma + min min 2 β = ma ma min min

90 P = Projection Normaliation for Perspective Views This results to the projection matri: pers N per SH 2( near) ma min = 2( near) ma min ma + min ma min ma + min ma min far + near far near 2 far near far near Where H converts a non-right frustum to a right frustum Where S scales the frustum into a canonical perspective view volume Where N is the Perspective-Normaliation Matri

91 Project onto Projection Plane Since normaliation changed all projections into an orthogonal projection: Just ignore the value! In effect, a non-event! In realit, we retain the -value for hiddensurface removal and shading effects. Viewable world now in Normalied Device Coordinates (NDC) or Window Coordinates

92 3D Viewing Summar Data in local Object Coordinates Data in 3D World Coordinates Data in 3D Camera Coordinates Entire World in Normalied Device Coordinates (NDC) Viewable World in Normalied Device Coordinates (NDC) (aka World Coordinates) Transform Object to World Coordinates Transform World into Camera Coordinates Appl Normaliing Transformation Clip Against View Volume CTM Model-View Projection

93 Matri Operations Specif Current Matri Stack glmatrimode( GL_MODELVIEW or GL_PROJECTION ) Other Matri or Stack Operations glloadidentit() glpushmatri() glpopmatri() Viewport usuall same as window sie viewport aspect ratio should be same as projection transformation or resulting image ma be distorted glviewport(,, width, height )

94 Projection Transformation Shape of viewing frustum Perspective projection gluperspective( fov, aspect, Near, Far ) glfrustum( left, right, bottom, top, Near, Far ) Orthographic parallel projection glortho( left, right, bottom, top, Near, Far ) gluortho2d( left, right, bottom, top ) calls glortho with values near ero

95 Appling Projection Transformations Tpical use (orthographic projection) glmatrimode( GL_PROJECTION ); glloadidentit(); glortho( left, right, bottom, top, Near, Far );

96 Viewing Transformations Position the camera/ee in the scene place the tripod down; aim camera To fl through a scene change viewing transformation and redraw scene glulookat( ee, ee, ee, aim, aim, aim, up, up, up ) up vector determines unique orientation careful of degenerate positions tripod

97 Projection Tutorial

98 Modeling Transformations Move object gltranslate{fd}(,, ) Rotate object around arbitrar ais ( ) glrotate{fd}( angle,,, ) angle is in degrees Dilate (stretch or shrink) or mirror object glscale{fd}(,, )

99 Transformation Tutorial

100 Connection: Viewing and Modeling Moving camera is equivalent to moving ever object in the world towards a stationar camera Viewing transformations are equivalent to several modeling transformations glulookat() has its own command can make our own polar view or pilot view

101 Projection is left handed Projection transformations (gluperspective, glortho) are left handed think of Near and Far as distance from view point Everthing else is right handed, including the vertees to be rendered + left handed right handed +

102 Common Transformation Usage 3 eamples of resie() routine restate projection & viewing transformations Usuall called when window resied Registered as callback for glutreshapefunc()

103 resie(): Perspective & LookAt void resie( int w, int h ) { glviewport(,, (GLsiei) w, (GLsiei) h ); glmatrimode( GL_PROJECTION ); glloadidentit(); gluperspective( 65., (GLfloat) w / h,.,. ); glmatrimode( GL_MODELVIEW ); glloadidentit(); glulookat(.,., 5.,.,.,.,.,.,. ); }

104 resie(): Perspective & Translate Same effect as previous LookAt void resie( int w, int h ) { glviewport(,, (GLsiei) w, (GLsiei) h ); glmatrimode( GL_PROJECTION ); glloadidentit(); gluperspective( 65., (GLfloat) w/h,.,. ); glmatrimode( GL_MODELVIEW ); glloadidentit(); gltranslatef(.,., -5. ); } 4

105 resie(): Ortho (part ) void resie( int width, int height ) { GLdouble aspect = (GLdouble) width / height; GLdouble left = -2.5, right = 2.5; GLdouble bottom = -2.5, top = 2.5; glviewport(,, (GLsiei) w, (GLsiei) h ); glmatrimode( GL_PROJECTION ); glloadidentit(); continued

106 resie(): Ortho (part 2) } if ( aspect <. ) { left /= aspect; right /= aspect; } else { bottom *= aspect; top *= aspect; } glortho( left, right, bottom, top, near, far ); glmatrimode( GL_MODELVIEW ); glloadidentit();

107 Compositing Modeling Transformations Problem : hierarchical objects one position depends upon a previous position robot arm or hand; sub-assemblies Solution : moving local coordinate sstem modeling transformations move coordinate sstem post-multipl column-major matrices OpenGL post-multiplies matrices

108 Compositing Modeling Transformations Problem 2: objects move relative to absolute world origin m object rotates around the wrong origin make it spin around its center or something else Solution 2: fied coordinate sstem modeling transformations move objects around fied coordinate sstem pre-multipl column-major matrices OpenGL post-multiplies matrices must reverse order of operations to achieve desired effect

109 Additional Clipping Planes At least 6 more clipping planes available Good for cross-sections Modelview matri moves clipping plane A + B + C + D < clipped glenable( GL_CLIP_PLANEi ) glclipplane( GL_CLIP_PLANEi, GLdouble* coeff )

110 Reversing Coordinate Projection Screen space back to world space glgetintegerv( GL_VIEWPORT, GLint viewport[4] ) glgetdoublev( GL_MODELVIEW_MATRIX, GLdouble mvmatri[6] ) glgetdoublev( GL_PROJECTION_MATRIX, GLdouble projmatri[6] ) gluunproject( GLdouble win, win, win, mvmatri[6], projmatri[6], GLint viewport[4], GLdouble *obj, *obj, *obj ) gluproject goes from world to screen space

Lecture 4: Viewing. Topics:

Lecture 4: Viewing. Topics: Lecture 4: Viewing Topics: 1. Classical viewing 2. Positioning the camera 3. Perspective and orthogonal projections 4. Perspective and orthogonal projections in OpenGL 5. Perspective and orthogonal projection

More information

Realtime 3D Computer Graphics Virtual Reality

Realtime 3D Computer Graphics Virtual Reality Realtime 3D Comuter Grahics Virtual Realit Viewing an rojection Classical an General Viewing Transformation Pieline CPU CPU Pol. Pol. DL DL Piel Piel Per Per Verte Verte Teture Teture Raster Raster Frag

More information

Chap 7, 2009 Spring Yeong Gil Shin

Chap 7, 2009 Spring Yeong Gil Shin Three-Dimensional i Viewingi Chap 7, 29 Spring Yeong Gil Shin Viewing i Pipeline H d fi i d? How to define a window? How to project onto the window? Rendering "Create a picture (in a snthetic camera) Specification

More information

Computer Graphics. Jeng-Sheng Yeh 葉正聖 Ming Chuan University (modified from Bing-Yu Chen s slides)

Computer Graphics. Jeng-Sheng Yeh 葉正聖 Ming Chuan University (modified from Bing-Yu Chen s slides) Computer Graphics Jeng-Sheng Yeh 葉正聖 Ming Chuan Universit (modified from Bing-Yu Chen s slides) Viewing in 3D 3D Viewing Process Specification of an Arbitrar 3D View Orthographic Parallel Projection Perspective

More information

5.8.3 Oblique Projections

5.8.3 Oblique Projections 278 Chapter 5 Viewing y (, y, ) ( p, y p, p ) Figure 537 Oblique projection P = 2 left right 0 0 left+right left right 0 2 top bottom 0 top+bottom top bottom far+near far near 0 0 far near 2 0 0 0 1 Because

More information

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo

Computer Graphics. Bing-Yu Chen National Taiwan University The University of Tokyo Computer Graphics Bing-Yu Chen National Taiwan Universit The Universit of Toko Viewing in 3D 3D Viewing Process Classical Viewing and Projections 3D Snthetic Camera Model Parallel Projection Perspective

More information

Overview. Viewing and perspectives. Planar Geometric Projections. Classical Viewing. Classical views Computer viewing Perspective normalization

Overview. Viewing and perspectives. Planar Geometric Projections. Classical Viewing. Classical views Computer viewing Perspective normalization Overview Viewing and perspectives Classical views Computer viewing Perspective normalization Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface

More information

3D Viewing. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

3D Viewing. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller 3D Viewing CMPT 361 Introduction to Computer Graphics Torsten Möller Reading Chapter 4 of Angel Chapter 6 of Foley, van Dam, 2 Objectives What kind of camera we use? (pinhole) What projections make sense

More information

Chap 7, 2008 Spring Yeong Gil Shin

Chap 7, 2008 Spring Yeong Gil Shin Three-Dimensional i Viewingi Chap 7, 28 Spring Yeong Gil Shin Viewing i Pipeline H d fi i d? How to define a window? How to project onto the window? Rendering "Create a picture (in a synthetic camera)

More information

Introduction to Computer Graphics 4. Viewing in 3D

Introduction to Computer Graphics 4. Viewing in 3D Introduction to Computer Graphics 4. Viewing in 3D National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor Textbook: E.Angel, Interactive Computer Graphics, 5 th Ed., Addison Wesley Ref: Hearn

More information

Three-Dimensional Graphics III. Guoying Zhao 1 / 67

Three-Dimensional Graphics III. Guoying Zhao 1 / 67 Computer Graphics Three-Dimensional Graphics III Guoying Zhao 1 / 67 Classical Viewing Guoying Zhao 2 / 67 Objectives Introduce the classical views Compare and contrast image formation by computer with

More information

COMP Computer Graphics and Image Processing. a6: Projections. In part 2 of our study of Viewing, we ll look at. COMP27112 Toby Howard

COMP Computer Graphics and Image Processing. a6: Projections. In part 2 of our study of Viewing, we ll look at. COMP27112 Toby Howard Computer Graphics and Image Processing a6: Projections Tob.Howard@manchester.ac.uk Introduction In part 2 of our stud of Viewing, we ll look at The theor of geometrical planar projections Classes of projections

More information

3D Viewing. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller

3D Viewing. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller 3D Viewing Introduction to Computer Graphics Torsten Möller Machiraju/Zhang/Möller Reading Chapter 4 of Angel Chapter 13 of Hughes, van Dam, Chapter 7 of Shirley+Marschner Machiraju/Zhang/Möller 2 Objectives

More information

CS 4731/543: Computer Graphics Lecture 5 (Part I): Projection. Emmanuel Agu

CS 4731/543: Computer Graphics Lecture 5 (Part I): Projection. Emmanuel Agu CS 4731/543: Computer Graphics Lecture 5 (Part I): Projection Emmanuel Agu 3D Viewing and View Volume Recall: 3D viewing set up Projection Transformation View volume can have different shapes (different

More information

Viewing/Projections III. Week 4, Wed Jan 31

Viewing/Projections III. Week 4, Wed Jan 31 Universit of British Columbia CPSC 34 Computer Graphics Jan-Apr 27 Tamara Munner Viewing/Projections III Week 4, Wed Jan 3 http://www.ugrad.cs.ubc.ca/~cs34/vjan27 News etra TA coverage in lab to answer

More information

Viewing/Projection IV. Week 4, Fri Jan 29

Viewing/Projection IV. Week 4, Fri Jan 29 Universit of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munner Viewing/Projection IV Week 4, Fri Jan 29 http://www.ugrad.cs.ubc.ca/~cs314/vjan2010 News etra TA office hours in lab

More information

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface

One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical views are based

More information

Computer Graphics. P05 Viewing in 3D. Part 1. Aleksandra Pizurica Ghent University

Computer Graphics. P05 Viewing in 3D. Part 1. Aleksandra Pizurica Ghent University Computer Graphics P05 Viewing in 3D Part 1 Aleksandra Pizurica Ghent University Telecommunications and Information Processing Image Processing and Interpretation Group Viewing in 3D: context Create views

More information

What does OpenGL do?

What does OpenGL do? Theor behind Geometrical Transform What does OpenGL do? So the user specifies a lot of information Ee Center Up Near, far, UP EE Left, right top, bottom, etc. f b CENTER left right top bottom What does

More information

CS 428: Fall Introduction to. Viewing and projective transformations. Andrew Nealen, Rutgers, /23/2009 1

CS 428: Fall Introduction to. Viewing and projective transformations. Andrew Nealen, Rutgers, /23/2009 1 CS 428: Fall 29 Introduction to Computer Graphics Viewing and projective transformations Andrew Nealen, Rutgers, 29 9/23/29 Modeling and viewing transformations Canonical viewing volume Viewport transformation

More information

CS Computer Graphics: Transformations & The Synthetic Camera

CS Computer Graphics: Transformations & The Synthetic Camera CS 543 - Computer Graphics: Transformations The Snthetic Camera b Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Introduction to Transformations A transformation changes an objects Size

More information

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Classical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Classical and Computer Viewing Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Planar Geometric Projections Standard projections project onto a plane Projectors

More information

CS 543: Computer Graphics. Projection

CS 543: Computer Graphics. Projection CS 543: Computer Graphics Projection Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Poltechnic Institute gogo@wpi.edu with lots of

More information

Projections. Brian Curless CSE 457 Spring Reading. Shrinking the pinhole. The pinhole camera. Required:

Projections. Brian Curless CSE 457 Spring Reading. Shrinking the pinhole. The pinhole camera. Required: Reading Required: Projections Brian Curless CSE 457 Spring 2013 Angel, 5.1-5.6 Further reading: Fole, et al, Chapter 5.6 and Chapter 6 David F. Rogers and J. Alan Adams, Mathematical Elements for Computer

More information

Fundamental Types of Viewing

Fundamental Types of Viewing Viewings Fundamental Types of Viewing Perspective views finite COP (center of projection) Parallel views COP at infinity DOP (direction of projection) perspective view parallel view Classical Viewing Specific

More information

Viewing. Cliff Lindsay, Ph.D. WPI

Viewing. Cliff Lindsay, Ph.D. WPI Viewing Cliff Lindsa, Ph.D. WPI Building Virtual Camera Pipeline l Used To View Virtual Scene l First Half of Rendering Pipeline Related To Camera l Takes Geometr From ApplicaHon To RasteriaHon Stages

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theor, Algorithms, and Applications Hong Qin State Universit of New York at Ston Brook (Ston Brook Universit) Ston Brook, New York 794--44 Tel: (63)632-845; Fa: (63)632-8334 qin@cs.sunsb.edu

More information

CITSTUDENTS.IN VIEWING. Computer Graphics and Visualization. Classical and computer viewing. Viewing with a computer. Positioning of the camera

CITSTUDENTS.IN VIEWING. Computer Graphics and Visualization. Classical and computer viewing. Viewing with a computer. Positioning of the camera UNIT - 6 7 hrs VIEWING Classical and computer viewing Viewing with a computer Positioning of the camera Simple projections Projections in OpenGL Hiddensurface removal Interactive mesh displays Parallelprojection

More information

6. Modelview Transformations

6. Modelview Transformations 6. Modelview Transformations Transformation Basics Transformations map coordinates from one frame of reference to another through matri multiplications Basic transformation operations include: - translation

More information

3-Dimensional Viewing

3-Dimensional Viewing CHAPTER 6 3-Dimensional Vieing Vieing and projection Objects in orld coordinates are projected on to the vie plane, hich is defined perpendicular to the vieing direction along the v -ais. The to main tpes

More information

Computer Graphics. Bing-Yu Chen National Taiwan University

Computer Graphics. Bing-Yu Chen National Taiwan University Computer Graphics Bing-Yu Chen National Taiwan University Introduction to OpenGL General OpenGL Introduction An Example OpenGL Program Drawing with OpenGL Transformations Animation and Depth Buffering

More information

Computer Viewing. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science

Computer Viewing. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Computer Viewing CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at

More information

Lecture 4 of 41. Lab 1a: OpenGL Basics

Lecture 4 of 41. Lab 1a: OpenGL Basics Lab 1a: OpenGL Basics William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://snipurl.com/1y5gc Course web site: http://www.kddresearch.org/courses/cis636 Instructor

More information

To Do. Motivation. Demo (Projection Tutorial) What we ve seen so far. Computer Graphics. Summary: The Whole Viewing Pipeline

To Do. Motivation. Demo (Projection Tutorial) What we ve seen so far. Computer Graphics. Summary: The Whole Viewing Pipeline Computer Graphics CSE 67 [Win 9], Lecture 5: Viewing Ravi Ramamoorthi http://viscomp.ucsd.edu/classes/cse67/wi9 To Do Questions/concerns about assignment? Remember it is due tomorrow! (Jan 6). Ask me or

More information

To Do. Demo (Projection Tutorial) Motivation. What we ve seen so far. Outline. Foundations of Computer Graphics (Fall 2012) CS 184, Lecture 5: Viewing

To Do. Demo (Projection Tutorial) Motivation. What we ve seen so far. Outline. Foundations of Computer Graphics (Fall 2012) CS 184, Lecture 5: Viewing Foundations of Computer Graphics (Fall 0) CS 84, Lecture 5: Viewing http://inst.eecs.berkele.edu/~cs84 To Do Questions/concerns about assignment? Remember it is due Sep. Ask me or TAs re problems Motivation

More information

Computer Graphics. Chapter 10 Three-Dimensional Viewing

Computer Graphics. Chapter 10 Three-Dimensional Viewing Computer Graphics Chapter 10 Three-Dimensional Viewing Chapter 10 Three-Dimensional Viewing Part I. Overview of 3D Viewing Concept 3D Viewing Pipeline vs. OpenGL Pipeline 3D Viewing-Coordinate Parameters

More information

Viewing/Projections IV. Week 4, Fri Feb 1

Viewing/Projections IV. Week 4, Fri Feb 1 Universit of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections IV Week 4, Fri Feb 1 http://www.ugrad.cs.ubc.ca/~cs314/vjan2008 News extra TA office hours in lab

More information

Announcements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard

Announcements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard Now Playing: Vertex Processing: Viewing Coulibaly Amadou & Mariam from Dimanche a Bamako Released August 2, 2005 Rick Skarbez, Instructor COMP 575 September 27, 2007 Announcements Programming Assignment

More information

Viewing and Projection

Viewing and Projection Viewing and Projection Sheelagh Carpendale Camera metaphor. choose camera position 2. set up and organie objects 3. choose a lens 4. take the picture View Volumes what gets into the scene perspective view

More information

Projection: Mapping 3-D to 2-D. Orthographic Projection. The Canonical Camera Configuration. Perspective Projection

Projection: Mapping 3-D to 2-D. Orthographic Projection. The Canonical Camera Configuration. Perspective Projection Projection: Mapping 3-D to 2-D Our scene models are in 3-D space and images are 2-D so we need some wa of projecting 3-D to 2-D The fundamental approach: planar projection first, we define a plane in 3-D

More information

Motivation. What we ve seen so far. Demo (Projection Tutorial) Outline. Projections. Foundations of Computer Graphics

Motivation. What we ve seen so far. Demo (Projection Tutorial) Outline. Projections. Foundations of Computer Graphics Foundations of Computer Graphics Online Lecture 5: Viewing Orthographic Projection Ravi Ramamoorthi Motivation We have seen transforms (between coord sstems) But all that is in 3D We still need to make

More information

Must first specify the type of projection desired. When use parallel projections? For technical drawings, etc. Specify the viewing parameters

Must first specify the type of projection desired. When use parallel projections? For technical drawings, etc. Specify the viewing parameters walters@buffalo.edu CSE 480/580 Lecture 4 Slide 3-D Viewing Continued Eamples of 3-D Viewing Must first specif the tpe of projection desired When use parallel projections? For technical drawings, etc.

More information

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline

Today. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline Computergrafik Today Rendering pipeline s View volumes, clipping Viewport Matthias Zwicker Universität Bern Herbst 2008 Rendering pipeline Rendering pipeline Hardware & software that draws 3D scenes on

More information

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

CSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Project 2 due Friday, October 12

More information

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation

CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11

More information

Chapter 8 Three-Dimensional Viewing Operations

Chapter 8 Three-Dimensional Viewing Operations Projections Chapter 8 Three-Dimensional Viewing Operations Figure 8.1 Classification of planar geometric projections Figure 8.2 Planar projection Figure 8.3 Parallel-oblique projection Figure 8.4 Orthographic

More information

Chap 3 Viewing Pipeline Reading: Angel s Interactive Computer Graphics, Sixth ed. Sections 4.1~4.7

Chap 3 Viewing Pipeline Reading: Angel s Interactive Computer Graphics, Sixth ed. Sections 4.1~4.7 Chap 3 Viewing Pipeline Reading: Angel s Interactive Computer Graphics, Sixth ed. Sections 4.~4.7 Chap 3 View Pipeline, Comp. Graphics (U) CGGM Lab., CS Dept., NCTU Jung Hong Chuang Outline View parameters

More information

Overview of Projections: From a 3D world to a 2D screen.

Overview of Projections: From a 3D world to a 2D screen. Overview of Projections: From a 3D world to a 2D screen. Lecturer: Dr Dan Cornford d.cornford@aston.ac.uk http://wiki.aston.ac.uk/dancornford CS2150, Computer Graphics, Aston University, Birmingham, UK

More information

Fachhochschule Regensburg, Germany, February 15, 2017

Fachhochschule Regensburg, Germany, February 15, 2017 s Operations Fachhochschule Regensburg, Germany, February 15, 2017 s Motivating Example s Operations To take a photograph of a scene: Set up your tripod and point camera at the scene (Viewing ) Position

More information

OpenGL Transformations

OpenGL Transformations OpenGL Transformations R. J. Renka Department of Computer Science & Engineering University of North Texas 02/18/2014 Introduction The most essential aspect of OpenGL is the vertex pipeline described in

More information

Transforms II. Overview. Homogeneous Coordinates 3-D Transforms Viewing Projections. Homogeneous Coordinates. x y z w

Transforms II. Overview. Homogeneous Coordinates 3-D Transforms Viewing Projections. Homogeneous Coordinates. x y z w Transforms II Overvie Homogeneous Coordinates 3- Transforms Vieing Projections 2 Homogeneous Coordinates Allos translations to be included into matri transform. Allos us to distinguish beteen a vector

More information

3D Viewing. With acknowledge to: Ed Angel. Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

3D Viewing. With acknowledge to: Ed Angel. Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 3D Viewing With acknowledge to: Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Classical Viewing Viewing plane projectors Classical

More information

Evening s Goals. Mathematical Transformations. Discuss the mathematical transformations that are utilized for computer graphics

Evening s Goals. Mathematical Transformations. Discuss the mathematical transformations that are utilized for computer graphics Evening s Goals Discuss the mathematical transformations that are utilized for computer graphics projection viewing modeling Describe aspect ratio and its importance Provide a motivation for homogenous

More information

Viewing in 3D (Chapt. 6 in FVD, Chapt. 12 in Hearn & Baker)

Viewing in 3D (Chapt. 6 in FVD, Chapt. 12 in Hearn & Baker) Viewing in 3D (Chapt. 6 in FVD, Chapt. 2 in Hearn & Baker) Viewing in 3D s. 2D 2D 2D world Camera world 2D 3D Transformation Pipe-Line Modeling transformation world Bod Sstem Viewing transformation Front-

More information

News. Projections and Picking. Transforming View Volumes. Projections recap. Basic Perspective Projection. Basic Perspective Projection

News. Projections and Picking. Transforming View Volumes. Projections recap. Basic Perspective Projection. Basic Perspective Projection Universit of British Columbia CPSC 44 Computer Graphics Projections and Picking Wed 4 Sep 3 project solution demo recap: projections projections 3 picking News Project solution eecutable available idea

More information

Three-Dimensional Viewing Hearn & Baker Chapter 7

Three-Dimensional Viewing Hearn & Baker Chapter 7 Three-Dimensional Viewing Hearn & Baker Chapter 7 Overview 3D viewing involves some tasks that are not present in 2D viewing: Projection, Visibility checks, Lighting effects, etc. Overview First, set up

More information

Viewing and Projection

Viewing and Projection CSCI 480 Computer Graphics Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Geri s Game, Pixar, 1997] January 26, 2011

More information

CPSC 314, Midterm Exam 1. 9 Feb 2007

CPSC 314, Midterm Exam 1. 9 Feb 2007 CPSC, Midterm Eam 9 Feb 007 Closed book, no calculators or other electronic devices. Cell phones must be turned off. Place our photo ID face up on our desk. One single-sided sheet of handwritten notes

More information

CS 475 / CS 675 Computer Graphics. Lecture 7 : The Modeling-Viewing Pipeline

CS 475 / CS 675 Computer Graphics. Lecture 7 : The Modeling-Viewing Pipeline CS 475 / CS 675 Computer Graphics Lecture 7 : The Modeling-Viewing Pipeline Taonom Planar Projections Parallel Perspectie Orthographic Aonometric Oblique Front Top Side Trimetric Dimetric Isometric Caalier

More information

Viewing with Computers (OpenGL)

Viewing with Computers (OpenGL) We can now return to three-dimension?', graphics from a computer perspective. Because viewing in computer graphics is based on the synthetic-camera model, we should be able to construct any of the classical

More information

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1

1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1 Transformations 1-1 Transformations are used within the entire viewing pipeline: Projection from world to view coordinate system View modifications: Panning Zooming Rotation 1-2 Transformations can also

More information

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Orthogonal Projection Matrices. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015 Orthogonal Projection Matrices 1 Objectives Derive the projection matrices used for standard orthogonal projections Introduce oblique projections Introduce projection normalization 2 Normalization Rather

More information

Computer Viewing. Prof. George Wolberg Dept. of Computer Science City College of New York

Computer Viewing. Prof. George Wolberg Dept. of Computer Science City College of New York Computer Viewing Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at alternate viewing

More information

Geometry: Outline. Projections. Orthographic Perspective

Geometry: Outline. Projections. Orthographic Perspective Geometry: Cameras Outline Setting up the camera Projections Orthographic Perspective 1 Controlling the camera Default OpenGL camera: At (0, 0, 0) T in world coordinates looking in Z direction with up vector

More information

Announcement. Project 1 has been posted online and in dropbox. Due: 11:59:59 pm, Friday, October 14

Announcement. Project 1 has been posted online and in dropbox. Due: 11:59:59 pm, Friday, October 14 Announcement Project 1 has been posted online and in dropbox Due: 11:59:59 pm, Friday, October 14 Project 1: Interactive Viewing of Two Teapots How to create a teapot? Before OpenGL 3., glutsolidteapot

More information

Getting Started. Overview (1): Getting Started (1): Getting Started (2): Getting Started (3): COSC 4431/5331 Computer Graphics.

Getting Started. Overview (1): Getting Started (1): Getting Started (2): Getting Started (3): COSC 4431/5331 Computer Graphics. Overview (1): Getting Started Setting up OpenGL/GLUT on Windows/Visual Studio COSC 4431/5331 Computer Graphics Thursday January 22, 2004 Overview Introduction Camera analogy Matrix operations and OpenGL

More information

3D Polygon Rendering. Many applications use rendering of 3D polygons with direct illumination

3D Polygon Rendering. Many applications use rendering of 3D polygons with direct illumination Rendering Pipeline 3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination 3D Polygon Rendering What steps are necessary to utilize spatial coherence while drawing

More information

Last Time. Correct Transparent Shadow. Does Ray Tracing Simulate Physics? Does Ray Tracing Simulate Physics? Refraction and the Lifeguard Problem

Last Time. Correct Transparent Shadow. Does Ray Tracing Simulate Physics? Does Ray Tracing Simulate Physics? Refraction and the Lifeguard Problem Graphics Pipeline: Projective Last Time Shadows cast ra to light stop after first intersection Reflection & Refraction compute direction of recursive ra Recursive Ra Tracing maimum number of bounces OR

More information

3D Viewing and Projec5on. Taking Pictures with a Real Camera. Steps: Graphics does the same thing for rendering an image for 3D geometric objects

3D Viewing and Projec5on. Taking Pictures with a Real Camera. Steps: Graphics does the same thing for rendering an image for 3D geometric objects 3D Vieing and Projec5on Taking Pictures ith a Real Camera Steps: Iden5 interes5ng objects Rotate and translate the camera to desired viepoint Adjust camera seings such as ocal length Choose desired resolu5on

More information

CSE 167: Introduction to Computer Graphics Lecture #5: Projection. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017

CSE 167: Introduction to Computer Graphics Lecture #5: Projection. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 CSE 167: Introduction to Computer Graphics Lecture #5: Projection Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Friday: homework 1 due at 2pm Upload to TritonEd

More information

Viewing and Projection

Viewing and Projection CSCI 480 Computer Graphics Lecture 5 Viewing and Projection January 25, 2012 Jernej Barbic University of Southern California Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective

More information

Viewing. Reading: Angel Ch.5

Viewing. Reading: Angel Ch.5 Viewing Reading: Angel Ch.5 What is Viewing? Viewing transform projects the 3D model to a 2D image plane 3D Objects (world frame) Model-view (camera frame) View transform (projection frame) 2D image View

More information

Chapter 5. Projections and Rendering

Chapter 5. Projections and Rendering Chapter 5 Projections and Rendering Topics: Perspective Projections The rendering pipeline In order to view manipulate and view a graphics object we must find ways of storing it a computer-compatible way.

More information

CS 4204 Computer Graphics

CS 4204 Computer Graphics CS 4204 Computer Graphics 3D Viewing and Projection Yong Cao Virginia Tech Objective We will develop methods to camera through scenes. We will develop mathematical tools to handle perspective projection.

More information

Notes. University of British Columbia

Notes. University of British Columbia Notes Drop-bo is no. 14 You can hand in our assignments Assignment 0 due Fri. 4pm Assignment 1 is out Office hours toda 16:00 17:00, in lab or in reading room Uniersit of Uniersit of Chapter 4 - Reminder

More information

p =(x,y,d) y (0,0) d z Projection plane, z=d

p =(x,y,d) y (0,0) d z Projection plane, z=d Projections ffl Mapping from d dimensional space to d 1 dimensional subspace ffl Range of an projection P : R! R called a projection plane ffl P maps lines to points ffl The image of an point p under P

More information

CSE528 Computer Graphics: Theory, Algorithms, and Applications

CSE528 Computer Graphics: Theory, Algorithms, and Applications CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-2424 Tel: (631)632-845; Fax: (631)632-8334 qin@cs.stonybrook.edu

More information

Lecture 5: Viewing. CSE Computer Graphics (Fall 2010)

Lecture 5: Viewing. CSE Computer Graphics (Fall 2010) Lecture 5: Viewing CSE 40166 Computer Graphics (Fall 2010) Review: from 3D world to 2D pixels 1. Transformations are represented by matrix multiplication. o Modeling o Viewing o Projection 2. Clipping

More information

Advanced Computer Graphics (CS & SE )

Advanced Computer Graphics (CS & SE ) Advanced Computer Graphics (CS & SE 233.420) Topics Covered Picking Pipeline Viewing and Transformations Rendering Modes OpenGL can render in one of three modes selected by glrendermode(mode) GL_RENDER

More information

Computer Viewing and Projection. Overview. Computer Viewing. David Carr Fundamentals of Computer Graphics Spring 2004 Based on Slides by E.

Computer Viewing and Projection. Overview. Computer Viewing. David Carr Fundamentals of Computer Graphics Spring 2004 Based on Slides by E. INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Computer Viewing and Projection David Carr Fundamentals of Computer Graphics Spring 24 Based on Slides by E. Angel Projection 1 L Overview Computer

More information

Modeling Transformations

Modeling Transformations Modeling Transformations Michael Kazhdan (601.457/657) HB Ch. 5 FvDFH Ch. 5 Overview Ra-Tracing so far Modeling transformations Ra Tracing Image RaTrace(Camera camera, Scene scene, int width, int heigh,

More information

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner GLOBAL EDITION Interactive Computer Graphics A Top-Down Approach with WebGL SEVENTH EDITION Edward Angel Dave Shreiner This page is intentionall left blank. 4.10 Concatenation of Transformations 219 in

More information

Game Architecture. 2/19/16: Rasterization

Game Architecture. 2/19/16: Rasterization Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world

More information

Viewing Transformation

Viewing Transformation CS38: Computer Graphics Viewing Transformation Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/cg/ Class Objectives Know camera setup parameters Understand viewing and projection processes

More information

CSE328 Fundamentals of Computer Graphics

CSE328 Fundamentals of Computer Graphics CSE328 Fundamentals of Computer Graphics Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 794--44 Tel: (63)632-845; Fax: (63)632-8334 qin@cs.sunysb.edu

More information

CSE328 Fundamentals of Computer Graphics: Theory, Algorithms, and Applications

CSE328 Fundamentals of Computer Graphics: Theory, Algorithms, and Applications CSE328 Fundamentals of Computer Graphics: Theor, Algorithms, and Applications Hong in State Universit of New York at Ston Brook (Ston Brook Universit) Ston Brook, New York 794-44 Tel: (63)632-845; Fa:

More information

Prof. Feng Liu. Fall /19/2016

Prof. Feng Liu. Fall /19/2016 Prof. Feng Liu Fall 26 http://www.cs.pdx.edu/~fliu/courses/cs447/ /9/26 Last time More 2D Transformations Homogeneous Coordinates 3D Transformations The Viewing Pipeline 2 Today Perspective projection

More information

Models and The Viewing Pipeline. Jian Huang CS456

Models and The Viewing Pipeline. Jian Huang CS456 Models and The Viewing Pipeline Jian Huang CS456 Vertex coordinates list, polygon table and (maybe) edge table Auxiliary: Per vertex normal Neighborhood information, arranged with regard to vertices and

More information

Computer Graphics. Viewing. Fundamental Types of Viewing. Perspective views. Parallel views. October 12, finite COP (center of projection)

Computer Graphics. Viewing. Fundamental Types of Viewing. Perspective views. Parallel views. October 12, finite COP (center of projection) Comuter Grahics Viewing October 2, 25 htt://www.hallm.ac.kr/~sunkim/teach/25/cga Funamental Tes of Viewing Persective views finite COP (center of rojection) Parallel views COP at infinit DOP (irection

More information

Determining the 2d transformation that brings one image into alignment (registers it) with another. And

Determining the 2d transformation that brings one image into alignment (registers it) with another. And Last two lectures: Representing an image as a weighted combination of other images. Toda: A different kind of coordinate sstem change. Solving the biggest problem in using eigenfaces? Toda Recognition

More information

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker

CMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker CMSC427 Transformations II: Viewing Credit: some slides from Dr. Zwicker What next? GIVEN THE TOOLS OF The standard rigid and affine transformations Their representation with matrices and homogeneous coordinates

More information

Transformations II. Arbitrary 3D Rotation. What is its inverse? What is its transpose? Can we constructively elucidate this relationship?

Transformations II. Arbitrary 3D Rotation. What is its inverse? What is its transpose? Can we constructively elucidate this relationship? Utah School of Computing Fall 25 Transformations II CS46 Computer Graphics From Rich Riesenfeld Fall 25 Arbitrar 3D Rotation What is its inverse? What is its transpose? Can we constructivel elucidate this

More information

1/29/13. Computer Graphics. Transformations. Simple Transformations

1/29/13. Computer Graphics. Transformations. Simple Transformations /29/3 Computer Graphics Transformations Simple Transformations /29/3 Contet 3D Coordinate Sstems Right hand (or counterclockwise) coordinate sstem Left hand coordinate sstem Not used in this class and

More information

3.1 Viewing and Projection

3.1 Viewing and Projection Fall 2017 CSCI 420: Computer Graphics 3.1 Viewing and Projection Hao Li http://cs420.hao-li.com 1 Recall: Affine Transformations Given a point [xyz] > form homogeneous coordinates [xyz1] > The transformed

More information

Viewing and Modeling

Viewing and Modeling Viewing and Modeling Computer Science Department The Universit of Texas at Austin A Simplified Graphics ipeline Application Vertex batching & assembl Triangle assembl Triangle clipping NDC to window space

More information

So we have been talking about 3D viewing, the transformations pertaining to 3D viewing. Today we will continue on it. (Refer Slide Time: 1:15)

So we have been talking about 3D viewing, the transformations pertaining to 3D viewing. Today we will continue on it. (Refer Slide Time: 1:15) Introduction to Computer Graphics Dr. Prem Kalra Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture - 8 3D Viewing So we have been talking about 3D viewing, the

More information

CS452/552; EE465/505. Intro to Lighting

CS452/552; EE465/505. Intro to Lighting CS452/552; EE465/505 Intro to Lighting 2-10 15 Outline! Projection Normalization! Introduction to Lighting (and Shading) Read: Angel Chapter 5., sections 5.4-5.7 Parallel Projections Chapter 6, sections

More information

On the Midterm Exam. Monday, 10/17 in class. Closed book and closed notes. One-side and one page cheat sheet is allowed. A calculator is allowed

On the Midterm Exam. Monday, 10/17 in class. Closed book and closed notes. One-side and one page cheat sheet is allowed. A calculator is allowed On the Midterm Exam Monday, 1/17 in class Closed book and closed notes One-side and one page cheat sheet is allowed A calculator is allowed Covers the topics until the class on Wednesday, 1/12 Take-home

More information

MAN-522: COMPUTER VISION SET-2 Projections and Camera Calibration

MAN-522: COMPUTER VISION SET-2 Projections and Camera Calibration MAN-522: COMPUTER VISION SET-2 Projections and Camera Calibration Image formation How are objects in the world captured in an image? Phsical parameters of image formation Geometric Tpe of projection Camera

More information

CS770/870 Spring 2017 Transformations

CS770/870 Spring 2017 Transformations CS770/870 Spring 2017 Transformations Coordinate sstems 2D Transformations Homogeneous coordinates Matrices, vectors, points Coordinate Sstems Coordinate sstems used in graphics Screen coordinates: the

More information