13D PolygonRendering PipelineTom FunkhouserPrinceton UniversityCOS 426, Spring 20063D Polygon Rendering• Many applications use rendering of 3D polygonswith direct illumination3D 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!More efficient algorithmsutilize spatial coherence!3D Polygon Rendering• What steps are necessary to utilize spatial coherence while drawing these polygons into a 2D image?3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationThis is a pipelinedsequence of operations to draw a 3D primitiveinto a 2D image2PC ArchitectureGPU Gems 2, NVIDIAGPU ArchitectureGeForce 6 Series ArchitectureGPU Gems 2, NVIDIAGPU ArchitectureXbox360, ATIGPU ArchitectureGPU Gems 2, NVIDIAGeForce 6 Series Architecture3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationThis is a pipelinedsequence of operations to draw a 3D primitiveinto a 2D image 3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationOpenGL 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();33D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform into 3D world coordinate system3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform into 3D world coordinate systemIlluminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform into 3D world coordinate systemTransform into 3D camera coordinate systemIlluminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform into 3D world coordinate systemTransform into 3D camera coordinate systemTransform into 2D camera coordinate system Illuminate according to lighting and reflectance3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform 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)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform 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 reflectanceTransform into image coordinate system43D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform 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 reflectanceTransform into image coordinate system 3D Rendering Pipeline (for direct illumination)3D PrimitivesModelingTransformationModelingTransformationProjectionTransformationProjectionTransformationClippingClippingLightingLightingImageViewportTransformationViewportTransformationScanConversionScanConversionViewingTransformationViewingTransformationTransform 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 reflectanceTransform into image coordinate system TransformationsModelingTransformationModelingTransformationViewingTransformationViewingTransformation2D Image CoordinatesProjectionTransformationProjectionTransformationViewportTransformationViewportTransformation3D Object Coordinates3D World Coordinates3D Camera Coordinates2D Screen CoordinatesTransformations map points from one coordinate system
View Full Document