The Rendering PipelineAdminFramebuffersFramebuffers: True-ColorFramebuffers: Indexed-ColorFramebuffers: Hi-ColorRecap: MatricesSlide 8Recap: Matrix TransformationsVectors and MatricesThe Rendering Pipeline: A Whirlwind TourThe Display You KnowThe Framebuffer You KnowSlide 142-D Rendering: Rasterization (Coming Soon)The Rendering Pipeline: 3-DSlide 17Slide 18Rendering: TransformationsSlide 20Slide 21Slide 22Slide 23The Rendering PipelineCS 445/645Introduction to Computer GraphicsDavid Luebke, Spring 2003David Luebke 2 01/15/19Admin●Call roll●Assignment 0: questions?David Luebke 3 01/15/19Framebuffers●So far we’ve talked about the physical display device●How does the interface between the device and the computer’s notion of an image look?●Framebuffer: A memory array in which the computer stores an image■On most computers, separate memory bank from main memory (why?)■Many different variations, motivated by cost of memoryDavid Luebke 4 01/15/19Framebuffers: True-Color ●A true-color (aka 24-bit or 32-bit) framebuffer stores one byte each for red, green, and blue●Each pixel can thus be one of 224 colors●Pay attention toEndian-ness●How can 24-bit and 32-bit mean the same thing here?David Luebke 5 01/15/19Framebuffers: Indexed-Color●An indexed-color (8-bit or PseudoColor) framebuffer stores one byte per pixel (also: GIF image format)●This byte indexes into a color map: ●How many colorscan a pixel be?●Still common on low-end displays (cell phones, PDAs,GameBoys)●Cute trick: color-map animationDavid Luebke 6 01/15/19Framebuffers: Hi-Color●Hi-Color is/was a popular PC SVGA standard●Packs pixels into 16 bits:■5 Red, 6 Green, 5 Blue (why would green get more?)■Sometimes just 5,5,5●Each pixel can be one of 216 colors●Hi-color images can exhibit worse quantization artifacts than a well-mapped 8-bit imageDavid Luebke 7 01/15/19Recap: Matrices●By convention, matrix element Mrc is located at row r and column c:●By (OpenGL) convention, vectors are columns:mnm2m12n22211n1211MMMMMMMMMM32vvvv1David Luebke 8 01/15/19Recap: Matrices●Matrix-vector multiplication applies a linear transformation to a vector:●Recall how to do matrix multiplication-zyxvvvMMMMMMMMMvM333231232221131211David Luebke 9 01/15/19Recap: Matrix Transformations●A sequence or composition of linear transformations corresponds to the product of the corresponding matrices■Note: the matrices to the right affect vector first, e.g:rotation about x, then translation along y, then rotation about z■Note: order of matrices matters!●The identity matrix I has no effect in multiplication●Some (not all) matrices have an inverse: vvMM 1'z y xp p=R T Rx x�PQ QPx x=IDavid Luebke 10 01/15/19Vectors and Matrices●Vector algebra operations can be expressed in this matrix form■Dot product:■Cross product:○Note: useright-handrule! -zyxzyxbbbaaaba000z y x xz x y yy x z za a b ca a b ca a b c-� �� � � �� �� � � �� = - = =� �� � � �� �� � � �-� �� � � �� =� =a b ca c 0b c 0David Luebke 11 01/15/19The Rendering Pipeline: A Whirlwind TourTransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 12 01/15/19The Display You KnowTransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 13 01/15/19The Framebuffer You KnowTransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 14 01/15/19The Rendering PipelineTransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 15 01/15/192-D Rendering: Rasterization(Coming Soon)TransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 16 01/15/19The Rendering Pipeline: 3-DTransformIlluminateTransformClipProjectRasterizeModel & CameraModel & CameraParametersParametersRendering PipelineRendering PipelineFramebufferFramebufferDisplayDisplayDavid Luebke 17 01/15/19The Rendering Pipeline: 3-DModelingTransformsScene graphObject geometryLightingCalculationsViewingTransformClippingProjectionTransformResult:Result:• All vertices of scene in shared 3-D “world” coordinate All vertices of scene in shared 3-D “world” coordinate systemsystem• Vertices shaded according to lighting modelVertices shaded according to lighting model• Scene vertices in 3-D “view” or “camera” coordinate Scene vertices in 3-D “view” or “camera” coordinate systemsystem• Exactly those vertices & portions of polygons in view Exactly those vertices & portions of polygons in view frustumfrustum• 2-D screen coordinates of clipped vertices2-D screen coordinates of clipped verticesDavid Luebke 18 01/15/19The Rendering Pipeline: 3-DScene graphObject geometryLightingCalculationsClippingResult:Result:• All vertices of scene in shared 3-D “world” coordinate All vertices of scene in shared 3-D “world” coordinate systemsystem• Vertices shaded according to lighting modelVertices shaded according to lighting model• Scene vertices in 3-D “view” or “camera” coordinate Scene vertices in 3-D “view” or “camera” coordinate systemsystem• Exactly those vertices & portions of polygons in view Exactly those vertices & portions of polygons in view frustumfrustum• 2-D screen coordinates of clipped vertices2-D screen coordinates of clipped verticesModelingTransformsViewingTransformProjectionTransformDavid Luebke 19 01/15/19Rendering: Transformations●So far, discussion has been in screen space●But model is stored in model space(a.k.a. object space or world
View Full Document