Download presentation

Presentation is loading. Please wait.

Published byEmmeline Wheeler Modified about 1 year ago

1
March 1, 2009 Dr. Muhammed Al-Mulhem1 ICS 415 Computer Graphics Rendering Geometric Primitives Dr. Muhammed Al-Mulhem March 1, 2009 Dr. Muhammed Al-Mulhem March 1, 2009

2
Dr. Muhammed Al-Mulhem2 Rendering geometric primitives Describe objects with points, lines, and surfaces Compact mathematical notationCompact mathematical notation Operators to apply to those representationsOperators to apply to those representations Render the objects The rendering pipelineThe rendering pipelineReading: Appendix A1-A5Appendix A1-A5 Describe objects with points, lines, and surfaces Compact mathematical notationCompact mathematical notation Operators to apply to those representationsOperators to apply to those representations Render the objects The rendering pipelineThe rendering pipelineReading: Appendix A1-A5Appendix A1-A5

3
March 1, 2009 Dr. Muhammed Al-Mulhem3 Rendering Generate an image from geometric primitives Rendering Geometric Primitives Raster Image

4
March 1, 2009 Dr. Muhammed Al-Mulhem4 3D Rendering Example What issues must be addressed by a 3D rendering system?

5
March 1, 2009 Dr. Muhammed Al-Mulhem5 Overview 3D scene representation 3D viewer representation Visible surface determination Lighting simulation 3D scene representation 3D viewer representation Visible surface determination Lighting simulation

6
March 1, 2009 Dr. Muhammed Al-Mulhem6 Overview 3D scene representation 3D viewer representation Visible surface determination Lighting simulation 3D scene representation 3D viewer representation Visible surface determination Lighting simulation How is the 3D scene described in a computer? How is the 3D scene described in a computer?

7
March 1, 2009 Dr. Muhammed Al-Mulhem7 3D Scene Representation Scene is usually approximated by 3D primitives PointPoint Line segmentLine segment PolygonPolygon PolyhedronPolyhedron Curved surfaceCurved surface Solid objectSolid object etc.etc. Scene is usually approximated by 3D primitives PointPoint Line segmentLine segment PolygonPolygon PolyhedronPolyhedron Curved surfaceCurved surface Solid objectSolid object etc.etc.

8
March 1, 2009 Dr. Muhammed Al-Mulhem8 3D Point Specifies a location

9
March 1, 2009 Dr. Muhammed Al-Mulhem9 3D Point Specifies a location Represented by three coordinatesRepresented by three coordinates Specifies a location Represented by three coordinatesRepresented by three coordinates (x,y,z)

10
March 1, 2009 Dr. Muhammed Al-Mulhem10 3D Vector Specifies a direction and a magnitude

11
March 1, 2009 Dr. Muhammed Al-Mulhem11 3D Vector Specifies a direction and a magnitude Represented as the difference between two point positions by three coordinates (V x, V y, V z ).Represented as the difference between two point positions by three coordinates (V x, V y, V z ). Magnitude |V| = sqrt( V x 2 + V y 2 + V z 2 )Magnitude |V| = sqrt( V x 2 + V y 2 + V z 2 ) Has no locationHas no location Specifies a direction and a magnitude Represented as the difference between two point positions by three coordinates (V x, V y, V z ).Represented as the difference between two point positions by three coordinates (V x, V y, V z ). Magnitude |V| = sqrt( V x 2 + V y 2 + V z 2 )Magnitude |V| = sqrt( V x 2 + V y 2 + V z 2 ) Has no locationHas no location (Vx, Vy, Vz).

12
March 1, 2009 Dr. Muhammed Al-Mulhem12 Vector Addition/Subtraction Operation u + v, with: Identity 0 : v + 0 = vIdentity 0 : v + 0 = v Inverse - : v + (- v ) = 0Inverse - : v + (- v ) = 0 Addition uses the “parallelogram rule”: Operation u + v, with: Identity 0 : v + 0 = vIdentity 0 : v + 0 = v Inverse - : v + (- v ) = 0Inverse - : v + (- v ) = 0 Addition uses the “parallelogram rule”: u+v u v u-v u v -v

13
March 1, 2009 Dr. Muhammed Al-Mulhem13 Vector Space Vectors define a vector space They support vector additionThey support vector addition –Commutative and associative –Possess identity and inverse They support scalar multiplicationThey support scalar multiplication –Associative, distributive –Possess identity Vectors define a vector space They support vector additionThey support vector addition –Commutative and associative –Possess identity and inverse They support scalar multiplicationThey support scalar multiplication –Associative, distributive –Possess identity

14
March 1, 2009 Dr. Muhammed Al-Mulhem14 Affine Spaces Vector spaces lack position and distanceVector spaces lack position and distance –They have magnitude and direction but no location Combine the point and vector primitivesCombine the point and vector primitives –Permits describing vectors relative to a common location A point and three vectors define a 3-D coordinate systemA point and three vectors define a 3-D coordinate system Point-point subtraction yields a vectorPoint-point subtraction yields a vector Vector spaces lack position and distanceVector spaces lack position and distance –They have magnitude and direction but no location Combine the point and vector primitivesCombine the point and vector primitives –Permits describing vectors relative to a common location A point and three vectors define a 3-D coordinate systemA point and three vectors define a 3-D coordinate system Point-point subtraction yields a vectorPoint-point subtraction yields a vector

15
March 1, 2009 Dr. Muhammed Al-Mulhem15 Coordinate Systems Y X Z Right-handed coordinate system Z X Y Left-handed coordinate system Grasp z-axis with hand Thumb points in direction of z-axis Roll fingers from positive x-axis towards positive y-axis

16
March 1, 2009 Dr. Muhammed Al-Mulhem16 Points + Vectors Points support these operations Point-point subtraction: Q - P = vPoint-point subtraction: Q - P = v –Result is a vector pointing from P to Q Vector-point addition: P + v = QVector-point addition: P + v = Q –Result is a new point Note that the addition of two points is not definedNote that the addition of two points is not defined Points support these operations Point-point subtraction: Q - P = vPoint-point subtraction: Q - P = v –Result is a vector pointing from P to Q Vector-point addition: P + v = QVector-point addition: P + v = Q –Result is a new point Note that the addition of two points is not definedNote that the addition of two points is not defined P Q v

17
March 1, 2009 Dr. Muhammed Al-Mulhem17 3D Line Segment Linear path between two points

18
March 1, 2009 Dr. Muhammed Al-Mulhem18 3D Line Segment Use a linear combination of two points Parametric representation:Parametric representation: –P = P 1 + t (P 2 - P 1 ), (0 t 1) Use a linear combination of two points Parametric representation:Parametric representation: –P = P 1 + t (P 2 - P 1 ), (0 t 1) P1P1 P2P2

19
March 1, 2009 Dr. Muhammed Al-Mulhem19 3D Ray Line segment with one endpoint at infinity Parametric representation:Parametric representation: –P = P 1 + t V, (0 <= t < ) Line segment with one endpoint at infinity Parametric representation:Parametric representation: –P = P 1 + t V, (0 <= t < ) P1P1 V

20
March 1, 2009 Dr. Muhammed Al-Mulhem20 3D Line Line segment with both endpoints at infinity Parametric representation:Parametric representation: –P = P 1 + t V, (- < t < ) Line segment with both endpoints at infinity Parametric representation:Parametric representation: –P = P 1 + t V, (- < t < ) P1P1 V

21
March 1, 2009 Dr. Muhammed Al-Mulhem21 3D Line – Slope Intercept Slope =m = rise / run Slope = (y - y1) / (x - x1) = (y2 - y1) / (x2 - x1) Solve for y: y = [(y2 - y1)/(x2 - x1)]x + [-(y2-y1)/(x2 - x1)]x1 + y1 or: y = mx + b Slope =m = rise / run Slope = (y - y1) / (x - x1) = (y2 - y1) / (x2 - x1) Solve for y: y = [(y2 - y1)/(x2 - x1)]x + [-(y2-y1)/(x2 - x1)]x1 + y1 or: y = mx + b x y P2 = (x2, y2) P1 = (x1, y1) P = (x, y)

22
March 1, 2009 Dr. Muhammed Al-Mulhem22 Euclidean Spaces Q: What is the distance function between points and vectors in affine space? A: Dot product Euclidean affine space = affine space plus dot productEuclidean affine space = affine space plus dot product Permits the computation of distance and anglesPermits the computation of distance and angles Q: What is the distance function between points and vectors in affine space? A: Dot product Euclidean affine space = affine space plus dot productEuclidean affine space = affine space plus dot product Permits the computation of distance and anglesPermits the computation of distance and angles

23
March 1, 2009 Dr. Muhammed Al-Mulhem23 Dot Product The dot product or, more generally, inner product of two vectors is a scalar:The dot product or, more generally, inner product of two vectors is a scalar: v 1 v 2 = x 1 x 2 + y 1 y 2 + z 1 z 2 (in 3D) The dot product or, more generally, inner product of two vectors is a scalar:The dot product or, more generally, inner product of two vectors is a scalar: v 1 v 2 = x 1 x 2 + y 1 y 2 + z 1 z 2 (in 3D) u θ v

24
March 1, 2009 Dr. Muhammed Al-Mulhem24 Dot Product Useful for many purposes Computing the length (Euclidean Norm) of a vector:Computing the length (Euclidean Norm) of a vector: –length( v ) = ||v|| = sqrt( v v) Normalizing a vector, making it unit-length: v = v / ||v||Normalizing a vector, making it unit-length: v = v / ||v|| Computing the angle between two vectors:Computing the angle between two vectors: –u v = |u| |v| cos(θ) Checking two vectors for orthogonalityChecking two vectors for orthogonality –u v = 0.0 Useful for many purposes Computing the length (Euclidean Norm) of a vector:Computing the length (Euclidean Norm) of a vector: –length( v ) = ||v|| = sqrt( v v) Normalizing a vector, making it unit-length: v = v / ||v||Normalizing a vector, making it unit-length: v = v / ||v|| Computing the angle between two vectors:Computing the angle between two vectors: –u v = |u| |v| cos(θ) Checking two vectors for orthogonalityChecking two vectors for orthogonality –u v = 0.0 u θ v

25
March 1, 2009 Dr. Muhammed Al-Mulhem25 Projecting one vector onto another If v is a unit vector and we have another vector, wIf v is a unit vector and we have another vector, w We can project w perpendicularly onto vWe can project w perpendicularly onto v And the result, u, has length w vAnd the result, u, has length w v Projecting one vector onto another If v is a unit vector and we have another vector, wIf v is a unit vector and we have another vector, w We can project w perpendicularly onto vWe can project w perpendicularly onto v And the result, u, has length w vAnd the result, u, has length w v Dot Product u w v

26
March 1, 2009 Dr. Muhammed Al-Mulhem26 Dot Product Is commutative u v = v uu v = v u Is distributive with respect to addition u (v + w) = u v + u wu (v + w) = u v + u w Is commutative u v = v uu v = v u Is distributive with respect to addition u (v + w) = u v + u wu (v + w) = u v + u w

27
March 1, 2009 Dr. Muhammed Al-Mulhem27 Cross Product The cross product or vector product of two vectors is a vector: The cross product of two vectors is orthogonal to both Right-hand rule dictates direction of cross product The cross product or vector product of two vectors is a vector: The cross product of two vectors is orthogonal to both Right-hand rule dictates direction of cross product

28
March 1, 2009 Dr. Muhammed Al-Mulhem28 Cross Product Right Hand Rule See: Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

29
March 1, 2009 Dr. Muhammed Al-Mulhem29 Cross Product Right Hand Rule See: Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

30
March 1, 2009 Dr. Muhammed Al-Mulhem30 Cross Product Right Hand Rule See: Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

31
March 1, 2009 Dr. Muhammed Al-Mulhem31 Cross Product Right Hand Rule See: Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

32
March 1, 2009 Dr. Muhammed Al-Mulhem32 Cross Product Right Hand Rule See: Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A Twist your hand about the A-axis such that B extends perpendicularly from your palm As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

33
March 1, 2009 Dr. Muhammed Al-Mulhem33 Other helpful formulas Length = sqrt (x2 - x1) 2 + (y2 - y1) 2 Midpoint, p2, between p1 and p3 p2 = ((x1 + x3) / 2, (y1 + y3) / 2))p2 = ((x1 + x3) / 2, (y1 + y3) / 2)) Two lines are perpendicular if: M1 = -1/M2M1 = -1/M2 cosine of the angle between them is 0cosine of the angle between them is 0 Dot product = 0Dot product = 0 Length = sqrt (x2 - x1) 2 + (y2 - y1) 2 Midpoint, p2, between p1 and p3 p2 = ((x1 + x3) / 2, (y1 + y3) / 2))p2 = ((x1 + x3) / 2, (y1 + y3) / 2)) Two lines are perpendicular if: M1 = -1/M2M1 = -1/M2 cosine of the angle between them is 0cosine of the angle between them is 0 Dot product = 0Dot product = 0

34
March 1, 2009 Dr. Muhammed Al-Mulhem34 3D Plane A linear combination of three points P1P1 P3P3 P2P2

35
March 1, 2009 Dr. Muhammed Al-Mulhem35 Origin 3D Plane A linear combination of three points Implicit representation:Implicit representation: –ax + by + cz + d = 0, or –P·N + d = 0 N is the plane “normal”N is the plane “normal” –Unit-length vector –Perpendicular to plane A linear combination of three points Implicit representation:Implicit representation: –ax + by + cz + d = 0, or –P·N + d = 0 N is the plane “normal”N is the plane “normal” –Unit-length vector –Perpendicular to plane P1P1 N = (a,b,c) d P3P3 P2P2

36
March 1, 2009 Dr. Muhammed Al-Mulhem36 3D Sphere All points at distance “r” from point “(c x, c y, c z )” Implicit representation:Implicit representation: –(x - c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Parametric representation:Parametric representation: –x = r cos( ) cos( ) + c x –y = r cos( ) sin( ) + c y –z = r sin( ) + c z All points at distance “r” from point “(c x, c y, c z )” Implicit representation:Implicit representation: –(x - c x ) 2 + (y - c y ) 2 + (z - c z ) 2 = r 2 Parametric representation:Parametric representation: –x = r cos( ) cos( ) + c x –y = r cos( ) sin( ) + c y –z = r sin( ) + c z r

37
March 1, 2009 Dr. Muhammed Al-Mulhem37 3D Geometric Primitives More detail on 3D modeling later in course PointPoint Line segmentLine segment PolygonPolygon PolyhedronPolyhedron Curved surfaceCurved surface Solid objectSolid object etc.etc. More detail on 3D modeling later in course PointPoint Line segmentLine segment PolygonPolygon PolyhedronPolyhedron Curved surfaceCurved surface Solid objectSolid object etc.etc. H&B Figure 10.46

38
March 1, 2009 Dr. Muhammed Al-Mulhem38 Take a breath We’re done with the primitives Now we’re moving on to study how graphics uses these primitives to make pretty pictures We’re done with the primitives Now we’re moving on to study how graphics uses these primitives to make pretty pictures

39
March 1, 2009 Dr. Muhammed Al-Mulhem39 Rendering 3D Scenes Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

40
March 1, 2009 Dr. Muhammed Al-Mulhem40 Camera Models The most common model is pin-hole camera All captured light rays arrive along paths toward focal point without lens distortion (everything is in focus)All captured light rays arrive along paths toward focal point without lens distortion (everything is in focus) Sensor response proportional to radianceSensor response proportional to radiance Other models consider...Depth of field, Motion blur, Lens distortion The most common model is pin-hole camera All captured light rays arrive along paths toward focal point without lens distortion (everything is in focus)All captured light rays arrive along paths toward focal point without lens distortion (everything is in focus) Sensor response proportional to radianceSensor response proportional to radiance Other models consider...Depth of field, Motion blur, Lens distortion View plane Eye position (focal point)

41
March 1, 2009 Dr. Muhammed Al-Mulhem41 Camera Parameters What are the parameters of a camera?

42
March 1, 2009 Dr. Muhammed Al-Mulhem42 Camera Parameters Position Eye position (px, py, pz)Eye position (px, py, pz)Orientation View direction (dx, dy, dz)View direction (dx, dy, dz) Up direction (ux, uy, uz)Up direction (ux, uy, uz)Aperture Field of view (xfov, yfov)Field of view (xfov, yfov) Film plane “Look at” point“Look at” point View plane normalView plane normalPosition Eye position (px, py, pz)Eye position (px, py, pz)Orientation View direction (dx, dy, dz)View direction (dx, dy, dz) Up direction (ux, uy, uz)Up direction (ux, uy, uz)Aperture Field of view (xfov, yfov)Field of view (xfov, yfov) Film plane “Look at” point“Look at” point View plane normalView plane normal right back Up direction Eye Position View direction View Plane “Look at” Point

43
March 1, 2009 Dr. Muhammed Al-Mulhem43 Moving the camera View Frustum Right Back Towards Up

44
March 1, 2009 Dr. Muhammed Al-Mulhem44 The Rendering Pipeline Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

45
March 1, 2009 Dr. Muhammed Al-Mulhem45 Rendering: Transformations We’ve learned about transformations But they are used in three ways: Modeling transformsModeling transforms Viewing transforms (Move the camera)Viewing transforms (Move the camera) Projection transforms (Change the type of camera)Projection transforms (Change the type of camera) We’ve learned about transformations But they are used in three ways: Modeling transformsModeling transforms Viewing transforms (Move the camera)Viewing transforms (Move the camera) Projection transforms (Change the type of camera)Projection transforms (Change the type of camera)

46
March 1, 2009 Dr. Muhammed Al-Mulhem46 The Rendering Pipeline: 3-D Result: All vertices of scene in shared 3-D “world” coordinate system All vertices of scene in shared 3-D “world” coordinate system Vertices shaded according to lighting model Vertices shaded according to lighting model Scene vertices in 3-D “view” or “camera” coordinate system Scene vertices in 3-D “view” or “camera” coordinate system Exactly those vertices & portions of polygons in view frustum Exactly those vertices & portions of polygons in view frustum 2-D screen coordinates of clipped vertices 2-D screen coordinates of clipped vertices Scene graph Object geometry Lighting Calculations Clipping Modeling Transforms Viewing Transform Projection Transform

47
March 1, 2009 Dr. Muhammed Al-Mulhem47 The Rendering Pipeline: 3-D Modeling Transforms Scene graph Object geometry Lighting Calculations Viewing Transform Clipping Projection Transform Result: All vertices of scene in shared 3-D “world” coordinate system All vertices of scene in shared 3-D “world” coordinate system

48
March 1, 2009 Dr. Muhammed Al-Mulhem48 Rendering: Transformations Modeling transforms Size, place, scale, and rotate objects and parts of the model w.r.t. each otherSize, place, scale, and rotate objects and parts of the model w.r.t. each other Object coordinates -> world coordinatesObject coordinates -> world coordinates Modeling transforms Size, place, scale, and rotate objects and parts of the model w.r.t. each otherSize, place, scale, and rotate objects and parts of the model w.r.t. each other Object coordinates -> world coordinatesObject coordinates -> world coordinates Z X Y X Z Y

49
March 1, 2009 Dr. Muhammed Al-Mulhem49 The Rendering Pipeline: 3-D Modeling Transforms Scene graph Object geometry Lighting Calculations Viewing Transform Clipping Projection Transform Result: All geometric primitives are illuminatedAll geometric primitives are illuminated

50
March 1, 2009 Dr. Muhammed Al-Mulhem50 Lighting Simulation Lighting parameters Light source emissionLight source emission Surface reflectanceSurface reflectance Atmospheric attenuationAtmospheric attenuation Camera responseCamera response Lighting parameters Light source emissionLight source emission Surface reflectanceSurface reflectance Atmospheric attenuationAtmospheric attenuation Camera responseCamera response N N Camera Surface Light Source

51
March 1, 2009 Dr. Muhammed Al-Mulhem51 Lighting Simulation Direct illumination Ray castingRay casting Polygon shadingPolygon shading Global illumination Ray tracingRay tracing Monte Carlo methodsMonte Carlo methods Radiosity methodsRadiosity methods Direct illumination Ray castingRay casting Polygon shadingPolygon shading Global illumination Ray tracingRay tracing Monte Carlo methodsMonte Carlo methods Radiosity methodsRadiosity methods N N Camera Surface Light Source N

52
March 1, 2009 Dr. Muhammed Al-Mulhem52 Modeling Transforms Scene graph Object geometry Lighting Calculations Viewing Transform Clipping Projection Transform Result: Scene vertices in 3-D “view” or “camera” coordinate system Scene vertices in 3-D “view” or “camera” coordinate system The Rendering Pipeline: 3-D

53
March 1, 2009 Dr. Muhammed Al-Mulhem53 Rendering: Transformations Viewing transform Rotate & translate the world to lie directly in front of the cameraRotate & translate the world to lie directly in front of the camera –Typically place camera at origin –Typically looking down -Z axis World coordinates View coordinatesWorld coordinates View coordinates Viewing transform Rotate & translate the world to lie directly in front of the cameraRotate & translate the world to lie directly in front of the camera –Typically place camera at origin –Typically looking down -Z axis World coordinates View coordinatesWorld coordinates View coordinates Y X Z Right-handed coordinate system

54
March 1, 2009 Dr. Muhammed Al-Mulhem54 Modeling Transforms Scene graph Object geometry Lighting Calculations Viewing Transform Clipping Projection Transform Result: Remove geometry that is out of view Remove geometry that is out of view The Rendering Pipeline: 3-D

55
March 1, 2009 Dr. Muhammed Al-Mulhem55 Modeling Transforms Scene graph Object geometry Lighting Calculations Viewing Transform Clipping Projection Transform Result: 2-D screen coordinates of clipped vertices 2-D screen coordinates of clipped vertices The Rendering Pipeline: 3-D

56
March 1, 2009 Dr. Muhammed Al-Mulhem56 Rendering: Transformations Projection transform Apply perspective foreshorteningApply perspective foreshortening –Distant = small: the pinhole camera model View coordinates Screen coordinatesView coordinates Screen coordinates Projection transform Apply perspective foreshorteningApply perspective foreshortening –Distant = small: the pinhole camera model View coordinates Screen coordinatesView coordinates Screen coordinates

57
March 1, 2009 Dr. Muhammed Al-Mulhem57 Perspective Camera Orthographic Camera Perspective Camera Orthographic Camera Rendering: Transformations

58
March 1, 2009 Dr. Muhammed Al-Mulhem58 Rendering 3D Scenes Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

59
March 1, 2009 Dr. Muhammed Al-Mulhem59 Rasterize Convert screen coordinates to pixel colors

60
March 1, 2009 Dr. Muhammed Al-Mulhem60 Summary Geometric primitives Points, vectorsPoints, vectors Operators on these primitives Dot product, cross product, normDot product, cross product, norm The rendering pipeline Move models, illuminate, move camera, clip, project to display, rasterizeMove models, illuminate, move camera, clip, project to display, rasterize Geometric primitives Points, vectorsPoints, vectors Operators on these primitives Dot product, cross product, normDot product, cross product, norm The rendering pipeline Move models, illuminate, move camera, clip, project to display, rasterizeMove models, illuminate, move camera, clip, project to display, rasterize

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google