Real-Time Rendering 4th Edition 读书笔记-Chapter 2:The Graphics Rendering Pipeline
概述
图形渲染管线(the pipeline)是实时计算机图形学(real-time graphics)的核心部分。在图形渲染管线中,几何图元和光照一起被处理之后,通过虚拟摄像机呈现到我们眼前。第二章聚焦整个管线的功能部分(不涉及实现),依次介绍了管线各个阶段是用来做什么的。
基础架构
-
计算机为什么选择管线的方式处理图形呢?
答案是:效率更高。解释如下(参考了《Unity Shader入门精要》的说法),如图:
在这张图上,我们很清晰地看到,使用了流水线的工程效率是未使用流水线的工程的n倍!对于一条流水线而言,所用时间最长的阶段称为这条流水线的瓶颈(bottleneck)。
衡量一条渲染管线渲染速度的指标是每秒钟帧率(FPS,frames per second),当然,也可以用Hz来表示。
-
一条图形渲染管线架构示例图如下:
对于其中每个阶段,在自己内部又是一条独立的管线。- 在应用阶段(Application Stage),系统应用作为CPU上的软件对渲染项目作最初步的处理。凭借着CPU多核多线程的特性,所以像是碰撞检测、全局加速算法、动画系统和物理仿真等复杂计算全都交给CPU去处理,这样能大大加快渲染速度。
- 在几何处理阶段(Geometry Processing Stage),确定绘制的几何图元、绘制方式和绘制位置。几何处理阶段运行在GPU(Graphics Processing Unit)上
- 光栅化阶段(Rasterization)使用上一阶段提供的几何数据,在屏幕上设置对应像素,然后将这些像素传到下一阶段。这个阶段也是在GPU上执行。
- 像素处理阶段(Pixel Processing Stage)逐像素地确定像素颜色,进行深度测试、可见性测试、颜色混合等操作。同样地,这个阶段也是GPU执行的。
</