图形系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30100043/article/details/84480372

一个计算机图形系统首先是一个计算机系统,隐藏,它必然包含一个通用计算机系统的所有部件。
图形系统包含6个主要元素:

  1. 输入设备
  2. 中央处理单元(CPU)
  3. 图形处理单元(GPU)
  4. 存储器
  5. 帧缓存
  6. 输出设备
    下图描述了计算机图形系统的结构:
    在这里插入图片描述

CPU

当我们使用鼠标和键盘将图形数据输入时,数据将会移交给系统的中央处理单元(CPU)来处理。处理器要完成的图形处理功能主要是获取由应用程序生成的图元(比如线、圆、多边形)的属性,并为帧缓存中的像素赋值,以最佳地表示这些图元。

GPU

今天,几乎所有的图形系统都已经使用了专用的图形处理单元(GPU),它是专门用来完成图形处理功能的。GPU可以在系统的主板上或者图形卡中。

帧缓存

实际上,所有的现代图形系统都是基于光栅的。在这样的图形系统中,我们在输出设备上看到的图像是一个由图形系统产生的图形元素组成的阵列,图形元素也叫像素,像素阵列也称为光栅。
这些像素都保存再一个称为帧缓存的存储区域中。帧缓存可以看出是图形系统的核心元素。帧缓存中的像素的数目叫作分辨率,它决定了从图像中可以分辨出多少细节。
帧缓存中会存储很多的信息:像素的颜色值,深度信息,精度信息等。

图形绘制流水线

在一个辅助的场景里,可能会使用数千甚至数百万个顶点来定义对象。为了生存存储在帧缓存中的图像,必须以相似的方式来处理这些顶点。我们就需要一条标准的流水线过程,通过模型的几何数据生成所需要显示的像素需要四个主要步骤:

  1. 顶点处理
  2. 裁剪和图元组装
  3. 光栅化
  4. 片元处理

顶点处理

这个模块的主要功能是执行坐标变换。这个模块也计算每个顶点的颜色值并改变每个顶点的其他属性。
在成像国产中,有许多步骤可以看成是对象在不同坐标系下表示之间的变换。比如从被定义的坐标系下面转换到照相机坐标系(观察坐标系),不管是在观察坐标系下的还是在图形软件使用的其他坐标系下的,最终必须转换成再显示坐标系下的表示。坐标系的每一次变换都可以用一个矩阵表示。坐标系的多次变换可以表示为矩阵的相乘或者级联,于是多个矩阵通过相乘就合并为一个矩阵。

裁剪和图元组装

因为成像系统不可能一次对整个场景成像,基于这个显示,必须进行裁剪。
裁剪必须针对逐个图元进行,而不是针对逐个顶点。这样,在绘制流水线的这个阶段里,在裁剪执行之前,必须吧顶点组装成像线段和多边形这样的图元。所以,这个阶段的输出是一些其投影可以被成像的图元。

光栅化

由裁剪模块得到的图元仍然是用顶点表示的,为了生存帧缓存中的像素还必须做进一步处理。光栅化模块对每个图元输出一组片元。我们可以把片元看成是携带相关信息的潜在像素,片元所携带的信息包括它的颜色和位置,使用这些信息来更新帧缓存中的对象位置的像素。

片元处理

绘制流水线的最后一个模块利用光栅化模块生成片元来更新帧缓存中的像素。

猜你喜欢

转载自blog.csdn.net/qq_30100043/article/details/84480372