13D PolygonRendering PipelineAdam FinkelsteinPrinceton UniversityCOS 426, Spring 20033D 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 …o Construct ray from eye position through view planeo Find first surface intersected by ray through pixelo Compute color of sample based on surface radianceMore efficient algorithmsutilize spatial coherence!More efficient algorithmsutilize spatial coherence!3D Polygon Rendering• What steps are necessary to utilize spatial coherence while drawing these polygons into a 2D image?23D Rendering Pipeline (direct illumination)3D Geometric PrimitivesModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLightingImageClippingClippingScanConversionScanConversionThis is a pipelinedsequence of operations to draw a 3D primitiveinto a 2D image Example: OpenGLModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLightingImageClippingClippingScanConversionScanConversionOpenGL executes steps of 3D rendering pipelinefor each polygonOpenGL 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)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate system3D Rendering Pipeline (for direct illumination)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemIlluminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemIlluminate according to lighting and reflectanceTransform into 3D camera coordinate system3D Rendering Pipeline (for direct illumination)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemTransform into 2D camera coordinate system Illuminate according to lighting and reflectance33D Rendering Pipeline (for direct illumination)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemClip primitives outside camera’s viewTransform into 2D camera coordinate system Illuminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)ModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemDraw pixels (includes texturing, hidden surface, ...)Clip primitives outside camera’s viewTransform into 2D camera coordinate system Illuminate according to lighting and reflectanceTransformationsModelingTransformationModelingTransformationViewingTransformationViewingTransformationProjectionTransformationProjectionTransformationLightingLighting3D Geometric PrimitivesImageClippingClippingScanConversionScanConversionTransform into 3D world coordinate systemTransform into 3D camera coordinate systemDraw pixels (includes texturing, hidden surface, etc.)Clip primitives outside camera’s viewTransform into 2D camera coordinate system Illuminate according to lighting and reflectanceTransformationsModelingTransformationModelingTransformationViewingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationProjectionTransformationWindow-to-ViewportTransformationWindow-to-ViewportTransformation3D Object Coordinates3D World Coordinates3D Camera Coordinates2D Screen CoordinatesTransformations map points from one coordinate system to anotherTransformations map points from one coordinate system to anotherp(x,y,z)p’(x’,y’)3D WorldCoordinates3D CameraCoordinates3D ObjectCoordinatesxzyViewing TransformationsModelingTransformationModelingTransformationViewingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationProjectionTransformationWindow-to-ViewportTransformationWindow-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 page)• Canonical coordinate systemo Convention is right-handed (looking down -z axis)o Convenient for projection, clipping, etc.xyz4Viewing Transformation• Mapping from world to camera coordinateso Eye position maps to origino Right vector maps to X axiso Up vector maps to Y axiso Back vector maps to Z axis xyzWorldrightupbackCameraView planeFinding the viewing transformation• We have the camera (in world coordinates)• We want T taking objects from world to camera• Trick: find T-1taking objects in camera to worldwpTcp ==wzyxponmlkjihgfedcbawzyx''''cpTwp1−=?Finding the Viewing Transformation• Trick: map from camera coordinates to worldo Origin maps to eye positiono Z axis maps to Back vector o Y
View Full Document