工作之余,炫酷特效的3D电影、场景逼真的大型游戏都是人们的主要消遣,这些“高大上”的图像视频效果都离不开一项重要的计算机技术:图形加速。那么我们现在来扒一扒什么是“图像加速”吧。
首先需要说明的是,纯文本时代早就离我们远去了,如今Windows的界面是完全基于图形的。我们所看到的屏幕上显示的文字,其实是Windows调度“画”字程序,从硬盘里读出字体,然后画到屏幕上来,这样就显示出了我们看到的文字。
大家应该有过这种体验:等待Windows程序运行的时间长得难以忍受。这是因为Windows这样一个图形界面的操作系统,同时运行大量的窗口图形,需要占用CPU的大部分性能去处理这些图形,因此造成PC机系统性能的低下。比如令人头疼的“正在加载”。
为了提升系统的整体性能,就需要设法加快图形的处理和显示速度。这也是开发图形加速功能的意义所在,接下来我们来看看图形加速技术的简要成长经历:
1、无加速阶段
这一阶段的图形比较简单,绘图工作全部由CPU完成。CPU在完成图形的生成、变换、着色等操作后,将处理后的图形数据从存储设备中一行一行地复制到显示终端控制器,由显示终端控制器控制其显示。由于进行图形处理的数据量较大,且全由CPU完成,对CPU的负担很重,所以这一阶段的图形处理能力低,图形也比较简单。
2、2D加速阶段
2D加速,说得直白一点,就是让显卡来充当“搬运工”的角色。由显卡上相应的电路完成图形数据从显存到显示器的复制、传送控制和显示控制,CPU只需专注完成图形的处理和数据生成。这样图形数据的处理和传送可以并行工作,提高了处理效率以及显示的速度,一定程度上减轻了CPU的负担。
3、3D加速阶段
尽管2D加速技术由显卡来完成图形的传送,分担了CPU的一部分工作,但是图形大量的数据处理对于CPU来说负担还是过重。经过研究发现,图形处理涉及的某些算法简单且固定,可以用相应的电路完成,这样就给3D加速技术的出现奠定了基础。
3D图形是用若干个三角形来表示的,用三角形组成3D图形和积分的思想一样,即用无数个平面来表示曲面图形。在3D中一般的曲面图形都用一组近似的平面图形替代,引入了贴图、光照、渲染等技术,利用人眼的视觉差模拟实现3D效果。
3D加速技术就是将3D图形处理技术中固定的算法,诸如设定、贴图、光照、渲染等全部交给显卡,用显卡中的电子线路完成这些工作,CPU只用提供这些运算所需要的参数,从而控制固件工作。3D加速技术让CPU进一步从繁重的图形运算中解脱出来,从而提高了处理速度。