光栅化(1)"/>
详解D3D/OpenGL光栅化(1)
前言:Rasterizer做什么
本篇 简单地 讨论一个问题: 给出图元(三角形/线/点)的顶点坐标及颜色,DirectX 3D(D3D)/OpenGL(OGL)如何确定最终在屏幕上画出的结果? 从D3D Pipeline看[1],这些工作是由光栅化(Rasterizater)做的,光栅化是D3D/OGL Pipeline中关键的固定功能阶段,其前面的Shader经过基于Vertex/Patch/Geometry的处理后,以为图元基本单位,输出图元各顶点的位置坐标及各种属性(如颜色,纹理坐标等),交由Raster (1)确定图元覆盖到的所有屏幕像素(2)插值计算出这些像素的属性 。 Raster为这些像素触发像素着色器(Pixel Shader),将结果输出给像素着色器进一步处理。一个例子
这里假设 (1)输入的顶点是屏幕坐标(严格讲,Raster还需要做透视除法及viewport变换才得到屏幕坐标,可认为Shader里完成了这两个步骤),且每个顶点只有Color一种属性;更多推荐
详解D3D/OpenGL光栅化(1)
发布评论