渲染管线
渲染管线数量计算公式:像素渲染管线的数量 X 每管线的问题单元数量
For Examples:
GeForce 6800Ultra 的渲染管线是16X1 表示具有16条像素渲染生产线,每管线具有1个纹理单元
GeForce 4MX440 的渲染管线是2X2,表示其具有2条像素渲染生产线,每管线具有2个纹理单元,以此类推
GPU处理流程
上图直白的说明了一切,此图来自:【GPU 编程与CG 语言之阳春白雪下里巴人】(推荐读一读)
应用程序阶段: 主要和CPU 、内存打交道,具体不详细说,大家都懂
几何阶段:
Local Space --> World Space --> View Space --> Backface Culling --> Lighting --> Clipping --> Projection --> Viewport Space --> Rasterization
Local Space(本地空间):本地空间以叫建模空间,这是我们定义物体三角形列的坐标系。
World Space(世界空间):世界变换就是设置在世界中的各物体彼此的位置,大小和方向关系。
View Space(视图空间):视图空间变换就是世界坐标系中的所有物体随着摄像机的变换而做的相同的变换。
Backface Culling(背面拣选):背面拣选是指正面多边形挡住了在它后面的背面多边形,Direct3D将通过拣选(即删除多余的处理过程)背面多边形来提高效率的过程。
Lighting(光照):光源被定义在世界空间中,不是通过视图空间变换到视图空间中。
Clipping(裁剪):裁剪是拣选那些超出了可视体范围的几何图形的过程。有三种情况完全包含,完全在外,部分在内。
Projection(投影):从n维转换成n-1维的过程。
Viewport Transform(视口变换):视口变换是将投影窗口变换为屏幕上一个矩形区域的可靠的变换。
Rasterization(光栅化):光栅化过程是计算需要显示的每个三角形中每个点颜色值。
片段阶段:
深度测试(消除遮挡面)-》纹理操作-》混合-》滤镜-》帧缓存