ICS 415 Computer Graphics Rendering Geometric Primitives
600 likes | 763 Views
ICS 415 Computer Graphics Rendering Geometric Primitives. Dr. Muhammed Al-Mulhem March 1, 2009. Rendering geometric primitives. Describe objects with points, lines, and surfaces Compact mathematical notation Operators to apply to those representations Render the objects
ICS 415 Computer Graphics Rendering Geometric Primitives
E N D
Presentation Transcript
ICS 415Computer Graphics Rendering Geometric Primitives Dr. Muhammed Al-Mulhem March 1, 2009 Dr. Muhammed Al-Mulhem
Rendering geometric primitives • Describe objects with points, lines, and surfaces • Compact mathematical notation • Operators to apply to those representations • Render the objects • The rendering pipeline • Reading: • Appendix A1-A5 Dr. Muhammed Al-Mulhem
Rendering • Generate an image from geometric primitives Rendering Geometric Primitives Raster Image Dr. Muhammed Al-Mulhem
3D Rendering Example What issues must be addressed by a 3D rendering system? Dr. Muhammed Al-Mulhem
Overview • 3D scene representation • 3D viewer representation • Visible surface determination • Lighting simulation Dr. Muhammed Al-Mulhem
Overview • 3D scene representation • 3D viewer representation • Visible surface determination • Lighting simulation How is the 3D scene described in a computer? Dr. Muhammed Al-Mulhem
3D Scene Representation • Scene is usually approximated by 3D primitives • Point • Line segment • Polygon • Polyhedron • Curved surface • Solid object • etc. Dr. Muhammed Al-Mulhem
3D Point • Specifies a location Dr. Muhammed Al-Mulhem
3D Point • Specifies a location • Represented by three coordinates (x,y,z) Dr. Muhammed Al-Mulhem
3D Vector • Specifies a direction and a magnitude Dr. Muhammed Al-Mulhem
3D Vector • Specifies a direction and a magnitude • Represented as the difference between two point positions by three coordinates (Vx, Vy, Vz). • Magnitude |V| = sqrt( Vx2 + Vy2 + Vz2) • Has no location (Vx, Vy, Vz). Dr. Muhammed Al-Mulhem
u+v Vector Addition/Subtraction • Operation u + v, with: • Identity 0 : v + 0 = v • Inverse - : v + (-v) = 0 • Addition uses the “parallelogram rule”: v u -v v -v u-v u Dr. Muhammed Al-Mulhem
Vector Space • Vectors define a vector space • They support vector addition • Commutative and associative • Possess identity and inverse • They support scalar multiplication • Associative, distributive • Possess identity Dr. Muhammed Al-Mulhem
Affine Spaces • Vector spaces lack position and distance • They have magnitude and direction but no location • Combine the point and vector primitives • Permits describing vectors relative to a common location • A point and three vectors define a 3-D coordinate system • Point-point subtraction yields a vector Dr. Muhammed Al-Mulhem
Y Y Z X Right-handed coordinate Left-handed system coordinate system Z X Coordinate Systems Grasp z-axis with hand Thumb points in direction of z-axis Roll fingers from positive x-axis towards positive y-axis Dr. Muhammed Al-Mulhem
Q v P Points + Vectors • Points support these operations • Point-point subtraction: Q - P = v • Result is a vector pointing fromPtoQ • Vector-point addition: P + v = Q • Result is a new point • Note that the addition of two points is not defined Dr. Muhammed Al-Mulhem
3D Line Segment • Linear path between two points Dr. Muhammed Al-Mulhem
3D Line Segment • Use a linear combination of two points • Parametric representation: • P = P1 + t (P2 - P1), (0 t 1) P2 P1 Dr. Muhammed Al-Mulhem
3D Ray • Line segment with one endpoint at infinity • Parametric representation: • P = P1 + t V, (0<= t < ) V P1 Dr. Muhammed Al-Mulhem
3D Line • Line segment with both endpoints at infinity • Parametric representation: • P = P1 + t V, (- < t < ) V P1 Dr. Muhammed Al-Mulhem
P = (x, y) y P2 = (x2, y2) P1 = (x1, y1) x 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 Dr. Muhammed Al-Mulhem
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 product • Permits the computation of distance and angles Dr. Muhammed Al-Mulhem
v θ u Dot Product • Thedot productor, more generally, inner productof two vectors is a scalar: v1 • v2 = x1x2 + y1y2 + z1z2 (in 3D) Dr. Muhammed Al-Mulhem
v θ u Dot Product • Useful for many purposes • Computing the length (Euclidean Norm) of a vector: • length(v) = ||v|| = sqrt(v • v) • Normalizing a vector, making it unit-length: v = v / ||v|| • Computing the angle between two vectors: • u • v = |u| |v| cos(θ) • Checking two vectors for orthogonality • u • v = 0.0 Dr. Muhammed Al-Mulhem
w v u Dot Product • Projecting one vector onto another • If v is a unit vector and we have another vector, w • We can project w perpendicularly onto v • And the result, u, has length w • v Dr. Muhammed Al-Mulhem
Dot Product • Is commutative • u • v = v • u • Is distributive with respect to addition • u • (v + w) = u • v + u • w Dr. Muhammed Al-Mulhem
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 Dr. Muhammed Al-Mulhem
Cross Product Right Hand Rule • See: 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 Dr. Muhammed Al-Mulhem
Cross Product Right Hand Rule • See: 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 Dr. Muhammed Al-Mulhem
Cross Product Right Hand Rule • See: 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 Dr. Muhammed Al-Mulhem
Cross Product Right Hand Rule • See: 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 Dr. Muhammed Al-Mulhem
Cross Product Right Hand Rule • See: 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 Dr. Muhammed Al-Mulhem
Other helpful formulas • Length = sqrt (x2 - x1)2 + (y2 - y1)2 • Midpoint, p2, between p1 and p3 • p2 = ((x1 + x3) / 2, (y1 + y3) / 2)) • Two lines are perpendicular if: • M1 = -1/M2 • cosine of the angle between them is 0 • Dot product = 0 Dr. Muhammed Al-Mulhem
3D Plane • A linear combination of three points P2 P3 P1 Dr. Muhammed Al-Mulhem
Origin 3D Plane • A linear combination of three points • Implicit representation: • ax + by + cz + d = 0, or • P·N + d = 0 • N is the plane “normal” • Unit-length vector • Perpendicular to plane N = (a,b,c) P2 P3 P1 d Dr. Muhammed Al-Mulhem
r 3D Sphere • All points at distance “r” from point “(cx, cy, cz)” • Implicit representation: • (x - cx)2 + (y - cy)2 + (z - cz)2 = r 2 • Parametric representation: • x = r cos() cos() + cx • y = r cos() sin() + cy • z = r sin() + cz Dr. Muhammed Al-Mulhem
3D Geometric Primitives • More detail on 3D modeling later in course • Point • Line segment • Polygon • Polyhedron • Curved surface • Solid object • etc. Dr. Muhammed Al-Mulhem H&B Figure 10.46
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 Dr. Muhammed Al-Mulhem
Transform Illuminate Transform Clip Project Rasterize Model & CameraParameters Rendering Pipeline Framebuffer Display Rendering 3D Scenes Dr. Muhammed Al-Mulhem
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) • Sensor response proportional to radiance • Other models consider ...Depth of field, Motion blur, Lens distortion View plane Eye position (focal point) Dr. Muhammed Al-Mulhem
Camera Parameters • What are the parameters of a camera? Dr. Muhammed Al-Mulhem
Camera Parameters • Position • Eye position (px, py, pz) • Orientation • View direction (dx, dy, dz) • Up direction (ux, uy, uz) • Aperture • Field of view (xfov, yfov) • Film plane • “Look at” point • View plane normal View Plane Up direction “Look at” Point back Viewdirection Eye Position right Dr. Muhammed Al-Mulhem
Moving the camera Up Back Towards Right View Frustum Dr. Muhammed Al-Mulhem
Transform Illuminate Transform Clip Project Rasterize Model & CameraParameters Rendering Pipeline Framebuffer Display The Rendering Pipeline Dr. Muhammed Al-Mulhem
Rendering: Transformations • We’ve learned about transformations • But they are used in three ways: • Modeling transforms • Viewing transforms (Move the camera) • Projection transforms (Change the type of camera) Dr. Muhammed Al-Mulhem
The Rendering Pipeline: 3-D Scene graphObject geometry • Result: • All vertices of scene in shared 3-D “world” coordinate system • Vertices shaded according to lighting model • Scene vertices in 3-D “view” or “camera” coordinate system • Exactly those vertices & portions of polygons in view frustum • 2-D screen coordinates of clipped vertices ModelingTransforms LightingCalculations ViewingTransform Clipping ProjectionTransform Dr. Muhammed Al-Mulhem
Scene graphObject geometry • Result: • All vertices of scene in shared 3-D “world” coordinate system ModelingTransforms LightingCalculations ViewingTransform Clipping ProjectionTransform The Rendering Pipeline: 3-D Dr. Muhammed Al-Mulhem
Y X Z Rendering: Transformations • Modeling transforms • Size, place, scale, and rotate objects and parts of the model w.r.t. each other • Object coordinates -> world coordinates Y Z X Dr. Muhammed Al-Mulhem
Scene graphObject geometry • Result: • All geometric primitives are illuminated ModelingTransforms LightingCalculations ViewingTransform Clipping ProjectionTransform The Rendering Pipeline: 3-D Dr. Muhammed Al-Mulhem
N N Lighting Simulation Light Source • Lighting parameters • Light source emission • Surface reflectance • Atmospheric attenuation • Camera response Surface Camera Dr. Muhammed Al-Mulhem