1Greg HumphreysCS445: Intro GraphicsUniversity of Virginia, Fall 20043D PolygonRendering Pipeline3D Polygon Rendering• Many applications use rendering of 3D polygonswith direct illumination3D Polygon Rendering• Many applications use rendering of 3D polygonswith direct illuminationQuake II(Id Software)3D Polygon Rendering• Many applications use rendering of 3D polygonswith direct illuminationRay Casting Revisited• For each sample … Construct ray from eye position through view plane Find first surface intersected by ray through pixel Compute color of sample based on surface radianceMore efficient algorithmsutilize spatial coherence!3D Polygon Rendering• What steps are necessary to utilizespatial coherence while drawingthese polygons into a 2D image?23D Rendering Pipeline (direct illumination)3D Geometric PrimitivesModelingTransformationViewingTransformationProjectionTransformationLightingImageClippingScanConversionThis is a pipelinedsequence of operationsto draw a 3D primitiveinto a 2D imageExample: OpenGLModelingTransformationViewingTransformationProjectionTransformationLightingImageClippingScanConversionOpenGL executes steps of 3D rendering pipelinefor each polygonglBegin(GL_POLYGON);glVertex3f(0.0, 0.0, 0.0);glVertex3f(1.0, 0.0, 0.0);glVertex3f(1.0, 1.0, 1.0);glVertex3f(0.0, 1.0, 1.0);glEnd();3D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate system3D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemIlluminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemIlluminate according to lighting and reflectanceTransform into 3D camera coordinate system3D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemTransform into 2D screen coordinate system Illuminate according to lighting and reflectance33D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemClip primitives outside camera’s viewTransform into 2D screen coordinate system Illuminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)ModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemDraw pixels (includes texturing, hidden surface, ...)Clip primitives outside camera’s viewTransform into 2D screen coordinate system Illuminate according to lighting and reflectanceTransformationsModelingTransformationViewingTransformationProjectionTransformationLighting3D Geometric PrimitivesImageClippingScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemDraw pixels (includes texturing, hidden surface, etc.)Clip primitives outside camera’s viewTransform into 2D screen coordinate system Illuminate according to lighting and reflectanceTransformationsModelingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationWindow-to-ViewportTransformation3D Object Coordinates3D World Coordinates3D Camera Coordinates2D Screen CoordinatesTransformations map points fromone coordinate system to anotherp(x,y,z)p’(x’,y’)3D WorldCoordinates3D CameraCoordinates3D ObjectCoordinatesxzyViewing TransformationsModelingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationWindow-to-ViewportTransformation3D Object Coordinates3D World Coordinates3D Camera Coordinates2D Screen Coordinatesp(x,y,z)p’(x’,y’)}Viewing TransformationsCamera CoordinatesCamera right vectormaps to X axisCamera up vector maps to Y axisCamera back vectormaps to Z axis(pointing out of screen)• Canonical coordinate system Convention is right-handed (looking down -z axis) Convenient for projection, clipping, etc.xyz4Viewing Transformation• Mapping from world to camera coordinates Eye position maps to origin Right vector maps to X axis Up vector maps to Y axis Back vector maps to Z axisxyzWorldrightupbackCameraView planeFinding the viewing transformation• We have the camera (in world coordinates)• We want T taking objects from world to camera• Trick: find T-1 taking objects in camera to worldwpTcp =!!!"#$$$%&!!!"#$$$%&=!!!"#$$$%&wzyxponmlkjihgfedcbawzyx''''cpTwp1!=?Finding the Viewing Transformation• Trick: map from camera coordinates to world Origin maps to eye position Z axis maps to Back vector Y axis maps to Up vector X axis maps to Right vector• This matrix is T-1 so we invert it to get T … easy!!!!!"#$$$$%&!!!!"#$$$$%&=!!!!"#$$$$%&wzyxEBUREBUREBUREBURwzyxwwwwzzzzyyyyxxxx''''Viewing TransformationsModelingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationWindow-to-ViewportTransformation3D Object Coordinates3D World Coordinates3D Camera Coordinates2D Screen Coordinatesp(x,y,z)p’(x’,y’)}Viewing TransformationsProjection• General definition: Transform points in n-space to m-space (m<n)• In computer graphics: Map 3D camera coordinates to 2D screen coordinatesTaxonomy of ProjectionsFVFHP Figure 6.105Taxonomy of ProjectionsFVFHP Figure 6.10Parallel ProjectionAngel Figure 5.4• Center of projection is at infinity Direction of projection (DOP) same for all pointsDOPViewPlaneOrthographic ProjectionsAngel Figure 5.5Top SideFront• DOP perpendicular to view planeOblique ProjectionsH&B Figure 12.24• DOP not perpendicular to view planeCavalier(DOP α = 45o)Cabinet(DOP α = 63.4o)45=!45=!Parallel Projection View VolumeH&B Figure 12.30Parallel Projection Matrix• General parallel projection transformation:!!!!"#$$$$%&!!!!"#$$$$%&=!!!!"#$$$$%&1100000000sin100cos0111cccsssszyxLLwzyx''6Taxonomy of
View Full Document