实时渲染之王

了解图形卡的重要性并解释图形管道

在游戏世界中,没有什么硬件比图形卡更重要,它本身并不是计算机启动所需的一部分,但是在正确渲染3D图形方面却是最典型的。 话虽这么说,它在游戏领域的声名狼藉,掩盖了它在工作站台式机专业领域中的重要用途,例如Nvidia的Titan V等显卡,它是为机器学习科学家而开发的,可以进行更繁重的研究。 显卡位于主板的PCI-E插槽中,该主板的中央部分(通过电源设备供电)可重新启动电源,并统一计算机的所有部件,从而使它们之间可以相互通信。 现在,如果在PC上未安装GPU(图形处理单元)的情况下渲染3D图形,会发生什么情况? 为了完全回答这个问题,我们需要深入研究图形卡和3D渲染过程本身的工作方式。

您计算机的中央处理器(CPU)就像您的计算机一样,它将信息发送到计算机的其他每个部分。 CPU在很多数学方面都很擅长,但是在矢量数学方面却很困难,而矢量数学是3D渲染过程的重要组成部分。 但是,为了获得最佳的3D渲染,CPU将需要与GPU协同工作,而GPU则可以在矢量数学上蓬勃发展,而又不会互相妨碍。 三维渲染过程始于CPU发送GPU接收的命令,然后通过所谓的顶点处理 ,获取每个顶点并将其转换为2D位置。 窗口中的所有内容都会被剪切掉。 然后,将这些顶点形成重叠的三角形,这将在以后生成每个三角形内每个像素的特征时发挥关键作用。 然后,图形卡会进行几何数学运算,以将这些三角形表示为3D坐标系。 对于每个三角形,在统一坐标系上,将为每个三角形指定其颜色和根据场景中给定的灯光计算得出的光照。 该卡必须再次进行有针对性的,高度复杂的矩阵矢量数学运算,并将每个3D三角形投影到将成为屏幕的虚拟平面上。 要添加到图片中的所有其他纹理都存储在内存中,然后叠加在几何图形上。 最后,将发生光栅化的主要过程,其中每个三角形重叠的每个像素都被隔离。 有关其背后的数学解释,特别是在3d平面内定位像素坐标的地方,请在此处检查。 现在,考虑到每个像素,新完成的图片将与其他多余的图片一起存储在系统内存中,直到将其发送到显示器进行显示。 这整个过程称为“图形管道” ,所有这些操作必须在一秒钟内发生60次,这对于您的CPU来说是一项繁重的工作,而这些CPU缺乏这些特定的计算速度。 (有关图片和更多说明,请在此处检查)。

但是,这种明显的优势仅在于实时渲染,而直到本月才可以通过光栅化来实现。 3D渲染的另一种形式称为光线跟踪,在某些情况下,即使与CPU相比效果也不佳。 光线跟踪从摄像机角度获取光源并跟踪每条光线,此过程会产生非常逼真的阴影,但对于当前技术而言,实在太繁琐。 在查看脱机渲染时,如果您有一个非常高性能的CPU,通常它是光线跟踪的更好选择,因为此过程严重阻碍了GPU的性能,从而使编码人员摆脱CPU的脆弱性大大降低。 尽管在当前事件中,Nvidia凭借其20系列图形卡使用专用内核进行处理,首次实现了实时光线追踪。 此外,图形卡具有专用的过程,用于增强该图形管线中的图片。 遮挡的另一项改进示例是遮挡,其中其他物体遮挡的所有像素都将被移除(此处可以找到裁剪的说明)。 其他增强功能通常用于处理纹理,雾化,着色器等。流水线内运行所有这些进程的驱动程序都位于CPU内部,并且处理器的速度必须与图形卡的速度兼容,否则系统将成为瓶颈。 这意味着您的CPU速度对于GPU而言太快,反之亦然,这会在用于传输数据的图形管道中造成阻塞。

因此,虽然在PC版中不需要图形卡即可启动计算机,但如果您打算仅使用CPU渲染3D图形,则结果将取决于渲染类型和处理器规格。 但是对于实时渲染,图形卡使用光栅化技术将其从水中吹了出来,这正是创建它的原因。 借助专用的增强过程和针对栅格化所需数学的目标工程,GPU是实时3D渲染中必不可少的。