180 likes | 187 Views
Understand the first pass of the graphics pipeline, covering object representation, transformations, clipping, rasterization, and attribute interpolation. Learn about triangle-based object representation, model-view transformations, projection transformations, and more.
E N D
Graphics Pipeline: First pass • Object representation (triangles) and computation of vertex attributes • Model-view transformation • Projection transformation • Clipping and vertex interpolation of attributes • Rasterization and pixel interpolation of attributes
Object Representation • Most common: TRIANGLES • Advantages: • Consistently planar • Rotationally-invariant interpolation during rasterization • Easy definition of topology as well as geometry • Easy hardware implementation
Object Representation • Other representations: • Points (no connectivity information) • Quadrilaterals (non-planarity, inconsistent interpolation of attributes) • Images (no geometry: not useful in simulations) • Splines (to be converted to polygons for rasterization)
Attributes • Color (Red, Green, Blue) • Normal vector • Texture coordinate • Transparency value . . .
Graphics Pipeline: First pass • Object representation (triangles) and computation of vertex attributes • Model-view transformation • Projection transformation • Clipping and vertex interpolation of attributes • Rasterization and pixel interpolation of attributes
Model-view transformations • Model transformation • View transformation
Model transformations • Transform the object to the required position, size and orientation. • Can use any transformation to achieve this. • In graphics library/hardware only linear transformations like rotate, translate, scale, shear are supported.
View transformation • Viewing parameters: (9 parameters) • View POINT (x,y,z), • Viewing direction (VECTOR): (vx,vy,vz), • View-up VECTOR: (ux,uy,uz). • Default: (0,0,0), (0,0,-1), (0,1,0) • Transforming the scene such that the view point is at the origin, viewing direction is aligned with the negative Z axis, and the view-up vector is aligned with the positive Y axis. • Uses rotation and translation to achieve this transformation.
Graphics Pipeline: First pass • Object representation (triangles) and computation of vertex attributes • Model-view transformation • Projection transformation • Clipping and vertex interpolation of attributes • Rasterization and pixel interpolation of attributes
Projection Transformation • Define the “view frustum” (6 parameters) • Assume origin is the view point • Near and far planes (planes parallel to XY plane in the negative Z axis) • Left, right, top, bottom rectangle defined on the near plane. -Z Y X near far
Projection Transformation • Transforming the view frustum (along with the objects inside it) into a cuboid with unit square faces on the near and far planes and with the negative Z axis passing through the center of these two faces. • Consists of a “shear” and a “perspective projection” operations.
Graphics Pipeline: First pass • Object representation (triangles) and computation of vertex attributes • Model-view transformation • Projection transformation • Clipping and vertex interpolation of attributes • Rasterization and pixel interpolation of attributes
Clipping and Interpolation of Attributes • Clipping: Removing the portions of the polygon that is outside the view frustum. If the polygon spans inside and outside the view frustum, introduce new vertices on the boundary to remove the outside portion of the polygon. • Interpolation: For the new vertices introduced, compute all the attributes of the original vertices by interpolation.
Window coordinate transformation • After clipping, scale the square faces of the unit cuboid (square faced on the near and far planes) such that it represents the (relative) pixel coordinates. (You don’t consider the Z value). • Then translate these coordinates to the position of the window on the monitor screen to represent the absolute pixel coordinates. • This is called window coordinate transformation.
Graphics Pipeline: First pass • Object representation (triangles) and computation of vertex attributes • Model-view transformation • Projection transformation • Clipping and vertex interpolation of attributes • Rasterization and pixel interpolation of attributes
Rasterization and Pixel Attribute Interpolation • Rasterization is a process of generating pixels in the scan (horizontal) line order (top to bottom, left to right). (Also called “scan conversion”.) • While generating pixels, the colors and other relevant attributes of the pixels are found by interpolating the attributes of the left and right extent of the scan line that lie on the polygon edge. Scan Line right left right left