GPU的工作原理是什么?渲染几个阶段流程介绍
扫描二维码
随时随地手机看文章
图形处理器GPU将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对图形处理器GPU的相关情况以及信息有所认识和了解,详细内容如下。
一、GPU的工作原理
在GPU出现以前,显卡和CPU的关系有点像“主仆”,简单地说这时的显卡就是画笔,根据各种有CPU发出的指令和数据进行着色,材质的填充、渲染、输出等。
那么,GPU的工作原理是什么?
简单的说GPU就是能够从硬件上支持T&L(Transform and Lighting,多边形转换与光源处理)的显示芯片,因为T&L是3D渲染中的一个重要部分,其作用是计算多边形的3D位置和处理动态光线效果,也可以称为“几何处理”。一个好的T&L单元,可以提供细致的3D物体和高级的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也就是所谓的软件T&L),由于CPU的任务繁多,除了T&L之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。主机总线接口模块收到来自PCI总线的读写操作,包括对寄存器的读写操作和对显示存储的读写操作,完成对寄存器的初始化后,基本图形模式能够正常输出显示。打开视频采集寄存器后能够实时采集显示视屏图像窗口。
即使CPU的工作频率超过 1GHz或更高,对它的帮助也不大,由于这是PC本身设计造成的问题,与CPU的速度无太大关系。
二、实例阐述GPU渲染流程
下面以绘制一朵玫瑰为例来说明GPU图形流水线的工作流程。
首先,GPU从显存读取描述玫瑰3D外观的顶点数据,生成一批反映三角形场景位置与方向的顶点;
由vertex shader计算2D坐标和亮度值,在屏幕空间绘出构成玫瑰的顶点;
顶点被分组成三角形图元;
geometry shader进行进一步细化,生成更多图元;
随后,GPU中的固定功能单元对这些图元进行光栅化,生成相应的片元集合;
由pixel shader从显存中读取纹理数据对片元上色和渲染;
最后一个阶段,根据片元信息更新玫瑰图像,主要是可视度的处理。
由ROP完成像素到帧缓冲区的输出,帧缓冲区中的数据经过D/A输出到显示器上以后,就可以看到绘制完成的玫瑰图像了。
图形渲染过程具有内在的并行性:顶点之间、图元之间、片元之间的数据相关性很弱,对它们的计算可以独立并行进行。这使得通过并行处理提高吞吐量成为可能。
首先,渲染流水线具有时间上的功能并行。流水线的各级可以同时工作,当各级都能满负荷工作时,能够获得最高性能。
其次,渲染流水线具有数据并行性。不仅可以通过SIMD提高每一个可编程着色器的性能,还可以在一个GPU内集成多条渲染流水线实现更高的吞吐量。
总结一下,GPU渲染流程可以概括为以下内容:
1.顶点生成
2.顶点处理
3.图元生成
根据应用程序定义的顶点拓扑逻辑,把上阶段输出的顶点组织起来形成有序的图元流。顶点拓扑逻辑定义了图元在输出流中的顺序,一个图元记录由若干顶点记录组成。
4.图元处理
5.片元生成
这一阶段将对每一个图元在屏幕空间进行采样,即光栅化。每一个采样点对应一个片元记录,记录该采样点在屏幕空间中的位置、与视点之间的距离以及通过插值获得的顶点属性等。
6.片元处理
片元处理阶段是可编程的,由pixel shader完成,主要完成图形的填色功能。模拟光线和物体表面的交互作用,决定每个片元的颜色及透明程度等属性。
7.像素操作
最后,小编诚心感谢大家的阅读。你们的每一次阅读,对小编来说都是莫大的鼓励和鼓舞。希望大家对图形处理器GPU已经具备了初步的认识,最后的最后,祝大家有个精彩的一天。