实时渲染
2. 图形渲染管线
2.2 应用程序阶段
开发人员可以完全控制应用程序阶段发生的事情,因为它通常在CPU上执行。因此,开发人员可以完全决定其实现,然后对其进行修改以提高性能。此处的更改也会影响后续阶段的性能。例如,应用程序阶段算法或设置可以减少要渲染的三角形数量。
综上所述,一些应用程序工作可以由GPU执行,使用称为计算着色器的单独模式。此模式将GPU视为高度并行的通用处理器,忽略其专门用于渲染图形的特殊功能。
在应用程序阶段结束时,要渲染的几何图形被馈送到几何图形处理阶段。这些是渲染图元,即点、线和三角形,它们最终可能会出现在屏幕上(或正在使用的任何输出设备)。这是应用阶段最重要的任务。
该阶段基于软件实现的结果是它没有被划分为子阶段,几何处理、光栅化和像素处理阶段也是如此[1](#1)。但是,为了提高性能,此阶段通常在多个处理器内核上并行执行。在CPU设计中,这被称为超标量构造,因为它能够在同一阶段同时执行多个进程。第18.5节介绍了使用多个处理器内核的各种方法。
在这个阶段通常实施的一个过程是碰撞检测。在检测到两个物体之间发生碰撞后,可以生成响应并将其发送回碰撞物体以及力反馈设备。应用程序阶段也是处理来自其他来源的输入的地方,例如键盘、鼠标或头戴式显示器。根据这个输入,可以采取几种不同的动作。加速算法,例如特定的剔除算法(第19章),也在这里实现,以及管道的其余部分无法处理的任何其他内容。
- 由于CPU本身的流水线规模要小得多,您可以说应用程序阶段被进一步细分为几个流水线阶段,但这在这里无关紧要。 ↩︎