一、渲染管线概述

管线一共可以分为3大概念阶段:应用阶段、几何阶段、光栅化阶段。

应用阶段:主要是准备好各种场景数据:例如相机位置、视锥体、场景里的模型、纹理光源等,简单做一些粗粒度剔除(剔除太远看不到的物体),最终输出渲染图元(例如点、线、三角面),传递给几何阶段

几何阶段:几何阶段的一个重要任务是:使用空间变换 将顶点变换到屏幕空间,并传递打包每个顶点对应的深度值、着色、法线等相关信息,交给光栅化阶段

光栅化阶段:使用几何阶段传递来的数据在屏幕上产生像素,决定每个渲染图元的哪些像素应该被绘制到屏幕上。它需要对几何阶段得到的逐顶点数据(纹理坐标、顶点颜色......)进行插值,然后进行逐像素处理并渲染出最终图像

每个阶段的各个模块功能详见C++光栅化软渲染器(上)框架篇 – PULUO

整个硬件之间的协作流程如下图: