Graphics - 应用阶段流水线

一些图形学的概念介绍,个人摘抄或整理,作为个人文章的词条引用;

应用阶段流水线

渲染流水线的起点是CPU,即应用阶段;应用阶段大致可分为下面三个阶段:

把数据加载到显存中

所有渲染所需的数据都需要从硬盘(HDD)中加载到系统内存(RAM)中;然后,网格和纹理等数据又被加载到显卡上的存储空间——显存(VRAM)中;这是因为,显卡对于显存的访问速度更快,而且大多数显卡对于RAM没有直接的访问权限;加载在显存中,在渲染时,GPU可以快速访问这些数据;加载在显存中的数据有顶点的位置信息、法线方向、顶点颜色、纹理坐标等等;

当把数据加载到显存中后,RAM中的数据就可以移除了;但对于一些数据来说,CPU仍然需要访问它们(比如CPU要访问网格数据来进行碰撞检测),那么可能就不移除这些数据,因为从硬盘加载到RAM的过程是十分耗时的;

设置渲染状态

在以上过程之后,开发者还需要通过CPU来设置渲染状态,从而指导GPU如何进行渲染工作;通过设置渲染状态,来定义场景中的网格如何被渲染;

调用Draw Call

在准备好上述所有工作后,CPU就需要调用一个渲染命令来通知GPU开始渲染工作,即Draw Call命令;它的发起方是CPU,接收方是GPU;这个命令仅仅会指向一个需要被渲染的图元(primitives)列表,而不会再包含任何材质信息——因为我们已经在上一个阶段中完成了;

当给定了一个Draw Call时,GPU就会根据渲染状态(例如材质、纹理、着色器等)和所有输入的顶点数据来进行计算,最终输出成屏幕上显示的像素;这个计算过程则属于GPU流水线;


猜你喜欢

转载自blog.csdn.net/DoomGT/article/details/113804617