说一说图形系统
虽然经常接触到显卡图形处理器之类的东西,但是对图形系统的认识还是停留在非常原始的阶段,头脑中的印象还是黑底白字时代的那种情形,输入一段文字到显示缓存里,这个显示缓存也在内存中,然后显示器就从内存中把数据显示出来。这是最根深蒂因的印象了。但是现在图形技术的发展,已经完全不是这样了。
1. 图形处理器
图形处理器把图像生成指令放在自己的从内存里,显示处理器的内存称为显示列表或显示文件。显示处理器会反复执行显示列表中的指令,并以足够快的速度进行刷新,以避免显示器的闪烁。这样减轻了主处理器的负荷。
2. 图形处理流水线
图像的生成过程需要经过以下几个步骤:
顶点---->顶点处理器---->裁剪器和图元装配器---->光栅器---->片元处理器---->像素
分别对应着:顶点处理; 裁剪与图元组装; 光栅化; 片元处理,这四个处理过程。
(1) 顶点处理
顶点处理包括两个主要任务:进行顶点坐标变换和顶点颜色计算。顶点的坐标变换都可以表示为一个矩阵的,通过矩阵的乘法运算可以实现。经过坐标变换之后还需要进行投影变换,投影变换也可以用一个4*4的矩阵表示。
(2)裁剪与图元组装
不可能将所有的图元都显示在屏幕上,所以需要根据视域进行裁剪,裁剪不是针对顶点进行的,是对图元进行的,所以进行将顶点组装成像线段和多边形这样的图元,通过裁剪,输出的也是图元。
(3)光栅化
经过裁剪之后的图元必须转换为帧缓存里的像素的表示。光栅化的结果是每个图元用一个片元(fragments) 表示。一个片元可以看成是一个将要显示的具有颜色和位置信息的像素,它可以用来更新缓存里的相应像素。此外还有深度信息。
(4)片元处理
接受片元更新帧缓存的像素。如果处理三维数据,则需要处理遮挡的情况,像半透明效果都需要进行处理。
这差不多就是一个现在的图形系统的结构了。
浙公网安备 33010602011771号