天天看点

实时渲染技术之一-------渲染管线

什么是渲染:

       简单的说渲染就是把绘制的3D物体通过可编程流水线绘制在2D的屏幕上的过程。渲染速度的表示是FPS或Hz,

什么是渲染管线:

       渲染管线也称为渲染流水线,是显卡内部处理图形信息相互独立的并行处理单元,形象的比喻就是工厂流水线。渲染管线一个显著的特点是处理是并行的,这样能最大化利用显卡资源。

渲染分为几个阶段:

       实时渲染为了能够提升渲染效率,将渲染初略的分为了四个阶段,即应用阶段;几何处理阶段,光栅化阶段,像素化阶段。

流程图如下:

实时渲染技术之一-------渲染管线

由图可以看出,每个阶段还可以细分出自己的子渲染管线。

各个阶段又是怎样处理的:

         应用阶段:该阶段的处理是在应用程序内部被处理,如一些游戏引擎渲染时的碰撞检测,物理引擎,加速算法等,这些都是在CPU上处理。该阶段的最后把计算好的渲染对象的顶点,法线,纹理坐标,纹理等内容通过数据总线传递给图形处理器,作为渲染管线进一步处理的源数据。这个阶段的的任务有准备场景数据,如场景中模型,相机,光源等,然后剔除不可见物体,将待渲染物体设置好渲染状态,处理完成之后输出渲染图元(即几何信息),每个渲染图元里包含了该图元所对应的所有顶点数据。

       几何阶段:该阶段用于处理几何绘制相关的阶段,该阶段决定什么图元将被渲染,如何被渲染以及渲染在哪,该过程是在GPU中进行计算。该阶段主要处理顶点着色、投影、裁剪和屏幕映射,流程如下:

实时渲染技术之一-------渲染管线

顶点着色主要计算每个顶点上的光照效果,将顶点位置,法线,颜色存储在顶点上。投影主要处理坐标系变换问题。裁剪主要对视锥内图元进行裁剪操作,剔除视锥外图元。屏幕映射主要是将图元坐标映射到计算机屏幕坐标系中。

       光栅化阶段:该阶段主要处理图元的三角形设定和三角形遍历。目的是找出所有图元的所有像素。这里主要处理含有z(深度)和各种渲染信息的二维屏幕空间的点像屏幕上像素点的转换。

       像素化阶段:该阶段主要使用插值来处理每个像素的着色计算,因为光栅化阶段只是把顶点渲染到屏幕上,在三个顶点组成的三角片元中未覆盖的像素要进行插值处理。

继续阅读