50 likes | 160 Views
A Hardware-eye View of the Graphics Process. MC Vertices. Vertex Processor. Attribute variables. Input Devices. Uniform variables. CPU. SC Vertices. Varying variables. B u s. Shader Memory. Rasterizer. Network. Display List. Pixel Parameters. Varying variables. Uniform variables.
E N D
A Hardware-eye View of the Graphics Process MC Vertices Vertex Processor Attributevariables Input Devices Uniformvariables CPU SC Vertices Varying variables Bus ShaderMemory Rasterizer Network Display List Pixel Parameters Varying variables Uniformvariables FragmentProcessor Video Input MC = Model CoordinatesWC = World CoordinatesEC = Eye CoordinatesCC = Clip CoordinatesNDC = Normalized Device CoordinatesSC = Screen CoordinatesTC = Texture Coordinates TC Cursor Z-Buffer RGBAZPixels RGBATexels Back Video Driver Front Double-buffered Framebuffers Texture Memory MC WC EC CC NDC SC HomogeneousDivision Transform gluLookAt Projection Viewport
A Shader-eye View of the Graphics Process Vertex Processor Vertices CPU Transformed Vertices Bus AssembleGeometry Assembled Primitive Rasterizer Interpolated Values FragmentProcessor Pixels
A Shader-eye View of the Graphics Process, with Geometry Shaders Vertex Processor Vertices CPU Transformed Vertices Bus AssembleGeometry Create NewGeometry Assemble NewGeometry Assembled Primitive Rasterizer Interpolated Values FragmentProcessor Pixels
Varying Variables are Interpolated by the Rasterizer Color, LightIntensity Rasterizer Color, LightIntensity, Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity,Color, LightIntensity, FragmentProcessor
In Hardware, it’s Really Parallel-Processed RGBAZPixels RGBAZPixels RGBAZPixels RGBAZPixels MC Vertices Vertex Processor Vertex Processor Vertex Processor Vertex Processor Rasterizer FragmentProcessor FragmentProcessor FragmentProcessor FragmentProcessor