600 likes | 732 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
E N D
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