Chapter 2 – The Graphics Rendering Pipeline 图形渲染管线

2.2 应用阶段

由于应用阶段一般由CPU负责,因此程序员能够完全掌控应用阶段的程序。所以,我们能够决定该阶段的实现模式并在之后对其进行改进以提高程序的效率。而这个阶段的改变也会影响之后几个阶段的运行性能。例如,在应用阶段,我们通过某些算法或者设置,减少三角形的数量。

但是,一些应用阶段的任务也可以由GPU处理,只需要使用一个单独的模式,也就是compute shader。该模式会将GPU当作一个高度平行化的处理器,并忽视其作为渲染的功能。

在应用阶段的结尾处,需要被绘制的几何体将会被传输至几何处理阶段。这些几何体就是rendering primitives(渲染图元),例如,点,线以及三角形。这也是应用阶段最重要的任务。

与几何处理阶段,光栅化阶段,像素处理阶段不同,应用阶段是基于软件的,所以这一阶段并不会被划分为多个子阶段。然而,为了增强性能,一般我们会将该阶段平行地运行与多个处理器核心。在CPU设计中,由于我们能够在同一个阶段内同时处理多个进程,其被称为superscalar(超标量)结构。在之后的章节中我们将展示如何使用多个处理器核心。

一般来说,在应用阶段我们将进行碰撞检测。在检测到两个物体的碰撞之后,我们将生成一个回馈,并将其发送至两个碰撞的物体。应用阶段也会处理其他设备的输入信息,例如键盘,鼠标或者头戴显示器。根据输入信息的不同,我们会进行不同的操作。加速算然,例如剔除算法也会在应用阶段被执行,而这一阶段可能会处理管线所不能进行的操作。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据