一、绪论
1、计算机图形学及其相关概念
(1)什么是图形?
图形是图与形的总称,是能在人视觉中形成印象的对象。
(2)图形分类:
- 自然图形(景物、照片等)
- 描述图形(数学方法描述的图形)
(3)构成图形的要素
- 几何要素:刻画对象的轮廓、形状等
- 非几何要素:刻画对象的颜色、纹理等
(4)表示图形的方法
- 点阵表示:是用具有颜色信息的点阵来表示图形
- 参数表示:图形的形状参数与属性参数来表示图形
- 例如:半径为3红色的圆
(5)广义的计算机图形包括图像和图形
- 图像:以点阵图形式呈现,它更强调整体形式,记录点及它的灰度或色彩。例如照片、扫描图片和由计算机产生的真实感和非真实感图形等。
- 放大失真
- 图形:以矢量图形式呈现,计算机中由景物的几何模型与物理属性表示的图形。能体现几何个体,记录体元的形状参数与属性参数。
- 放大不失真
(6)计算机图形学
计算机图形学是研究怎样利用计算机来生成、处理和显示图形的原理、方法和技术的一门学科。
(7)计算机图形学的两个核心问题
- 建模:如何在计算机中构造一个客观世界:几何建模
- 绘制:如何将计算机中的虚拟世界展现出来:几何的视觉实现
(8)一些和计算机图形学相关的学科关系
计算机图形学:试图从非图像形式的数据描述来生成图像。
- 从数据到图像
计算机视觉:模拟生物外显或宏观视觉功能。
- 从图像到数据
数字图像处理:对图像进行各种加工以改善图像的视觉效果。
- 从图像到图像
2、计算机图形学的发展
(1)显示器的三个发展阶段:
画线显示器(矢量显示器/随机扫描显示器)->存储管式显示器->刷新式光栅扫描显示器
(2)计算机图形学之父:伊凡·苏泽兰(Ivan.E.Sutherland)
3、计算机图形学的应用
- 计算机辅助设计与制造(CAD/CAM)
- 科学计算可视化
- 真实感图形实时绘制与自然景物仿真
- 地理信息系统(GIS)
- 虚拟现实(Virtual Reality)
- 计算机动画
等等
4、计算机图形系统
计算机图形系统的定义:计算机图形系统用来生成、处理和显示图形,是计算机硬件、图形输入输出设备、计算机系统软件和图形软件的集合。
基本任务:研究如何利用计算机来生成、处理和显示图形。
例如:
- 如何用硬件来实现图形处理功能
- 如何设计好的图形软件
- 图形处理所需的数学处理方法和算法
- 如何解决实际应用中的图形处理问题
图形应用软件(核心):解决某种应用问题的图形软件
图形支撑软件:由一组公用的图形子程序组成的。它扩展了系统中原有高级语言和操作系统的图形处理功能。
图形应用数据结构:一组图形数据文件,其中存放着欲生成的图形对象的全部描述信息。
应用数据结构->图形支撑软件->图形应用软件
二、计算机图形系统硬件基础
1、图形输入设备
- 鼠标和键盘
- 光笔
- 触摸屏
- 操纵杆
- 跟踪球和空间球
- 数据手套
- 数字化仪
- 图像扫描仪
- 声频、视频输入系统
- 等等
2、图形显示设备
CRT:阴极射线显像管
(1)阴极射线管的基本原理
- 电子枪:是产生一个沿管轴方向(Z轴)前进的细电子束轰击荧光屏。
- 荧光屏:荧光屏是用荧光粉涂敷在玻璃底壁上制成的,常用沉积法涂敷荧光粉。
- 荧光粉的余辉特性:电子束轰击荧光粉时,荧光粉的分子受激而发光,当电子束的轰击停止后,荧光粉的光亮并非立即消失,而是按指数规律衰减。
- 彩色阴极射线管
- 荫罩式彩色显像管
- 穿透式彩色显像管
(2)CRT图形显示器分类
- 随机扫描的图形显示器(随机扫描显示器)
- 缺点:是为画线应用设计的,不能显示逼真场景、价格贵、驱动系统也较复杂。
- 存储管式的图形显示器
- 光栅扫描的图形显示器
- 只有画水平、垂直或正方形的对角线时,才能用点或像素画出一条真正的直线,其他情况下的直线均呈阶梯状,这种现象称为走样或锯齿。
(3)平板显示器
- 非发射显示器(光学效应,将光转换为图形图案)
- 液晶显示器(LCD)
- 液晶的电光效应:当通电和不通电时液晶分子处于两种不同的排列,一种排列光线容易通过,另外一种排列阻止光线通过。
- 视角太小,亮度和对比度不够大。
- 可视角是指站在始于屏幕法线的某个角度的位置时仍可清晰看见屏幕图像所构成的最大角度,对显示器来说,可视角越大越好。
- 液晶显示器(LCD)
- 发射显示器(电能转化为光能)
- 等离子显示器 (Plasma Panel)
- 薄片光电显示器 (Thin-Film Electroluminescent Display)
- 发光二极管显示器 (Liquid-Emitting Diode, LED)
- 未来显示器
- OLED: 有机发光二极管(Organic Light-Emitting Diode, OLED )
- 全息投影显示
3、图形显示子系统
用计算机做图形处理常常涉及大量的计算和数据处理,为了减轻主机CPU的负担,具有图形处理能力的计算机都配置显卡。
显卡主要作用是:根据CPU提供的指令和有关数据将程序运行过程和结果进行相应的处理,并转换成显示器能够接受的文字和图形显示信号,通过屏幕显示出来。
GPU英文全称Graphic Processing Unit, 是显卡的心脏。与CPU类似,只是GPU是专门为执行复杂的数学和几何计算而设计的。
- CUDA(Compute Unified Device Architecture,统一计算设备架构),显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。
- CUDA是一个基于NVIDIA GPU的并行计算的架构。
- OpenCL (Open Computing Language,开放计算语言) 是一个为异构平台编写程序的框架,此异构平台可由GPU、CPU或其他类型的处理器组成。
- OpenCL实际上是针对异构系统进行并行编程的一个全新的API。
4、其它概念
(1)分辨率
光点:是指电子束打在显示器的荧光屏上,显示器能够显示的最小的发光点。
像素点:是指图形显示在屏幕上时候,按当前的图形显示分辨率所能提供的最小元素点。
- 屏幕分辨率:也称为光栅分辨率、物理分辨率,它决定了显示系统最大可能的分辨率,任何显示控制器所提供的分辨率也不能超过这个物理分辨率。
- 屏幕分辨率 = 水平方向上的光点数 × 垂直方向上的光点数
- 显示分辨率:是计算机显示控制器所能够提供的显示模式分辨率,实际应用中简称为显示模式。
- 存储分辨率:是指帧缓冲区的大小,一般用缓冲区的字节数表示。
- 存储分辨率不仅与显示分辨率有关,还与像素点的色彩有关
- 帧缓存大小的计算:x方向的像素点数 × y方向的像素点数×(log2n)/8
- 其中:n为色数或灰度等级数
区别与联系:
①屏幕分辨率决定了所能显示的最高分辨率;
②显示分辨率和存储分辨率对所能显示的图形分辨率有控制作用。
③存储分辨率=显示分辨率x(log2n)/8其中:n为颜色数或灰度等级数
(2)像素与帧缓存
屏幕上一个像素点对应帧缓存中的一组信息。
对应方式有:组合像素法、颜色位面法
组合像素法:一个图形像素点的全部信息被编码成一个数据字节,按照一定方式存储到帧缓存中,编码字节的长度与点的属性(如颜色、灰度等)有关。
颜色位面法:帧缓存被分成若干独立的存储区域,每一个区域称为一个位面(Bit Plane),每个位面控制一种颜色或者灰度,每一个图形像素点在每个位面中占一位,通过几个位面中的同一位组合成一个像素。
改进:使用颜色查找表,颜色查找表也称调色板,由高速的随机存储器组成,用来储存表达像素色彩的代码。此时帧缓冲存储器中每一像素对应单元的代码不再代表该像素的色彩值,而是查色表的地址索引。
(3)显示长宽比
显示长宽比:水平点数与垂直点数之比。要求在屏幕两个方向上相同像素点数产生同样长度的线段,以使图形不至发生畸变。
例如:当显示长宽比为4:3时,显示分辨率常为:640×480, 800×600, 1024×768 等。
(4)屏幕坐标系
(5)OpenGL
OpenGL主要包括三个函数库,它们是核心库、实用函数库和编程辅助库。
- 核心库:包含了OpenGL最基本的命令函数,以“gl”为前缀用来建立各种各样的几何模型、进行坐标变换、产生光照效果、进行纹理映射、产生雾化效果等所有的二维和三维图形操作。
- 实用函数库:是比核心库更高一层的函数库,以“glu”为前缀。包括纹理映射、坐标变换、多边形分化、绘制一些如椭球、圆柱、茶壶等简单多边形实体。
- 编程辅助库:提供了一些基本的窗口管理函数、事件处理函数和简单的事件函数,以”aux”作为前缀。目前AUX编程辅助库已经很大程度上被GLUT库取代了。