Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Computer Graphics CS 445 / 645 Lecture 6 Geometric primitives and the rendering pipepline Lecture 6 Geometric primitives and the rendering.

Similar presentations


Presentation on theme: "Introduction to Computer Graphics CS 445 / 645 Lecture 6 Geometric primitives and the rendering pipepline Lecture 6 Geometric primitives and the rendering."— Presentation transcript:

1 Introduction to Computer Graphics CS 445 / 645 Lecture 6 Geometric primitives and the rendering pipepline Lecture 6 Geometric primitives and the rendering pipepline M.C. Escher – Smaller and Smaller (1956)

2 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 pipeline Appendix 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 pipeline Appendix A1-A5 H&B Figure 109

3 Rendering Generate an image from geometric primitives Rendering Geometric Primitives Raster Image

4 3D Rendering Example What issues must be addressed by a 3D rendering system?

5 Overview 3D scene representation 3D viewer representation Visible surface determination Lighting simulation 3D scene representation 3D viewer representation Visible surface determination Lighting simulation

6 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 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 3D Point Specifies a location

9 3D Point Specifies a location Represented by three coordinatesRepresented by three coordinates Infinitely smallInfinitely small Specifies a location Represented by three coordinatesRepresented by three coordinates Infinitely smallInfinitely small (x,y,z)

10 3D Vector Specifies a direction and a magnitude

11 3D Vector Specifies a direction and a magnitude Represented by three coordinatesRepresented by three coordinates Magnitude ||V|| = sqrt(dx dx + dy dy + dz dz)Magnitude ||V|| = sqrt(dx dx + dy dy + dz dz) Has no locationHas no location Specifies a direction and a magnitude Represented by three coordinatesRepresented by three coordinates Magnitude ||V|| = sqrt(dx dx + dy dy + dz dz)Magnitude ||V|| = sqrt(dx dx + dy dy + dz dz) Has no locationHas no location (dx,dy,dz)

12 Vector Addition/Subtraction operation u + v, with:operation u + v, with: –Identity 0 : v + 0 = v –Inverse - : v + (- v ) = 0 Addition uses the “parallelogram rule”:Addition uses the “parallelogram rule”: operation u + v, with:operation u + v, with: –Identity 0 : v + 0 = v –Inverse - : v + (- v ) = 0 Addition uses the “parallelogram rule”:Addition uses the “parallelogram rule”: u+v u v u-v u v -v

13 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 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 Coordinate Systems Y X Z Right-handed coordinate system Z X Y Left-handed coordinate system l Grasp z-axis with hand l Thumb points in direction of z-axis l Roll fingers from positive x-axis towards positive y-axis

16 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 3D Line Segment Linear path between two points

18 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 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 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 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 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 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 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 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 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 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 Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html http://www.phy.syr.edu/courses/video/RightHandRule/index2.html 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 Cross Product Right Hand Rule See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html http://www.phy.syr.edu/courses/video/RightHandRule/index2.html 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 Cross Product Right Hand Rule l See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html http://www.phy.syr.edu/courses/video/RightHandRule/index2.html l Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A l Twist your hand about the A-axis such that B extends perpendicularly from your palm l As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

31 Cross Product Right Hand Rule l See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html http://www.phy.syr.edu/courses/video/RightHandRule/index2.html l Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A l Twist your hand about the A-axis such that B extends perpendicularly from your palm l As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

32 Cross Product Right Hand Rule l See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html http://www.phy.syr.edu/courses/video/RightHandRule/index2.html l Orient your right hand such that your palm is at the beginning of A and your fingers point in the direction of A l Twist your hand about the A-axis such that B extends perpendicularly from your palm l As you curl your fingers to make a fist, your thumb will point in the direction of the cross product

33 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 3D Plane A linear combination of three points P1P1 P3P3 P2P2

35 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 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 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 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 Rendering 3D Scenes Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

40 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 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 Camera Parameters What are the parameters of a camera?

42 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    Eye Position  View Plane “Look at” Point

43 Moving the camera View Frustum Right Back Towards Up

44 The Rendering Pipeline Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

45 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 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 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 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 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 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 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 More on these methods later! More on these methods later! N N Camera Surface Light Source N

52 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 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

54 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 Assignment 2 Due two and a half weeks from today Project description available onlineProject description available online We’ll discuss details in class on MondayWe’ll discuss details in class on Monday Due two and a half weeks from today Project description available onlineProject description available online We’ll discuss details in class on MondayWe’ll discuss details in class on Monday

56 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

57 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

58 Perspective Camera Orthographic Camera Perspective Camera Orthographic Camera Rendering: Transformations

59 Rendering 3D Scenes Transform Illuminate Transform Clip Project Rasterize Model & Camera Parameters Rendering Pipeline FramebufferDisplay

60 Rasterize Convert screen coordinates to pixel colors

61 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


Download ppt "Introduction to Computer Graphics CS 445 / 645 Lecture 6 Geometric primitives and the rendering pipepline Lecture 6 Geometric primitives and the rendering."

Similar presentations


Ads by Google