第二章 计算机图形系统及图形硬件 计算机图形系统 图形输入设备 图形显示设备 显示子系统 图形硬拷贝设备 OpenGL图形软件包 * 1999年7月07/16/96 第二章 计算机图形系统及图形硬件 计算机图形系统 图形输入设备 图形显示设备 显示子系统 图形硬拷贝设备 OpenGL图形软件包 *
2.1 计算机图形系统 计算机图形系统的功能 计算机图形系统的结构
计算机图形系统的功能 图2.1 计算机图形系统的功能
计算机图形系统的结构 图2.2 计算机图形系统的结构
2.2 图形输入设备 键盘(keyboard) 键盘能用来进行屏幕坐标的输入、菜单选择、图形功能选择,以及输入那些如辅助图形显示的图片标记等非图形数据。
图形输入设备 鼠标器(mouse) 当推动鼠标器在平面上移动时,鼠标将记录移动的方向和距离,这个方向和距离被传送给计算机,转换成对应的光标的位移。
图形输入设备 光笔(light pen) 图2.3 光笔的结构
图形输入设备 触摸屏(touch screen) 当用手指或者小杆触摸屏幕时,触点位置便以光学的(红外线式触摸屏)、电子的(电阻式触摸屏和电容式触摸屏)或声音的(声音探测式)方式记录下来。
图形输入设备 操纵杆(joystick) 操纵杆是由一根小的垂直杠杆组成的可摇动装置,该杠杆装配在一个其四周可移动的底座上用来控制屏幕光标。
图形输入设备 跟踪球(Trackball)和空间球(Spaceball) 图2.4 跟踪球 图2.5 空间球
图形输入设备 数据手套(Data Glove) 是一种戴在手上的传感器,可以用来抓住“虚拟对象”,它由一系列检测手和手指运动的传感器构成,用来提供关于手的位置和方向的信息。
图形输入设备 数字化仪(Digitizer) 用于在二维或三维的图形对象上扫描,以输入一系列二维或三维的坐标值。这些坐标值代表的坐标点,在系统中将以直线段或曲线段连接,以逼近图形对象的描绘曲线或表面形状。
图形输入设备 图像扫描仪(Scaner) 图像扫描仪可直接把图纸、图表、照片、广告画等输入到计算机中,在将它们传过一个光学扫描机构时,灰度或彩色等级被记录下来,并按图像方式进行存储。
图形输入设备 声频输入系统 视频输入系统
2.3 图形显示设备 阴极射线管 彩色阴极射线管 CRT图形显示器 平板显示器 三维观察设备
阴极射线管(CRT) CRT(Cathode Ray Tube)是一种真空器件,它利用电磁场产生高速的、经过聚焦的电子束,偏转到屏幕的不同位置轰击屏幕表面的荧光材料而产生可见图形。 CRT从结构上分为:电子枪、偏转系统、荧光屏。
阴极射线管(CRT) 电子枪 偏转系统 荧光屏 图2.6 CRT的结构
阴极射线管(CRT) 电子枪:产生一个沿管轴(Z轴)方向前进的高速的细电子束轰击荧光屏。 具有足够的电流强度。 电流的大小和有无必须是可控的。 具有很高的速度。 在荧光屏上应能聚焦很小的光亮,以保证显示器有足够的分辨率。
阴极射线管(CRT) 图2.7 CRT电子枪的结构
阴极射线管(CRT) 偏转系统 为了在荧光屏上显示图形及字符,必须用电子束偏转扫描来实现。 图2.8 磁偏转
阴极射线管(CRT) 枕形失真 当偏转线圈的匝数一定时,偏转电流I与偏转角的正弦成正比。只有在偏转角很小时,偏转角与偏转电流之间才成直线性关系。 由于荧光屏四角距中心最远,偏转角较大,同样的偏转电流增量所造成的偏转距离增量最大。
阴极射线管(CRT) 枕形失真的校正 将产生偏转磁场的锯齿形电流预先产生一些失真; 将偏转磁场做成略有不均匀性,接近管轴中央处略强,周围略弱。 图2.9 枕形失真与桶形失真
阴极射线管(CRT) 图2.10 电偏转
阴极射线管(CRT) 荧光屏(Phosphor Screen) 荧光屏是用荧光粉涂敷在玻璃底壁上制成的,常用沉积法涂敷荧光粉。玻璃底壁要求无气泡,表面光学抛光。 荧光粉的性能要求是:发光颜色满足标准白色、发光效率高、余辉时间合适以及寿命长等。
彩色阴极射线管——荫罩式 三基色原则 主要结构:三色荧光屏、三支电子枪、荫罩板 图2.11 三色荧光屏
彩色阴极射线管——荫罩式 图2.12 三支电子枪
彩色阴极射线管——荫罩式 图2.13 荫罩
为了避免混色,荧光点的面积比电子束截面要大些。 只有15%左右的电子到达屏幕。 荫罩吸收大量电子,容易发热变形。 图2.14 原理图 为了避免混色,荧光点的面积比电子束截面要大些。 只有15%左右的电子到达屏幕。 荫罩吸收大量电子,容易发热变形。 管子的亮度低,要提高管子的亮度,则需提高第二阳极的高压。
彩色阴极射线管——荫罩式 图2.15 黑底荫罩管
CRT图形显示器 随机扫描的图形显示器 直视存储管图形显示器 光栅扫描的图形显示器
随机扫描的图形显示器 向量(vector)显示器、笔划(Stroke writing)显示器。 随机扫描(random-scan)的图形显示器中电子束的定位和偏转具有随机性,即电子束的扫描轨迹随显示内容而变化,只在需要的地方扫描,而不必全屏扫描。
随机扫描的图形显示器 图2.16 随机扫描图形显示器的工作原理
随机扫描的图形显示器 无冗余扫描、速度快、图像清晰、比光栅系统更高的分辨率、生成光滑线条; 不能显示逼真场景、和电视标准不一致、驱动系统也较复杂。
直视存储管图形显示器 直视存储管DVST(direct-view storage tube)从表面上看直视存储管的特性极象一个有长余辉的荧光屏,一条线一旦画在屏幕上,在一小时之内都将是可见的。
直视存储管图形显示器 工作原理 图2.17 直视存储管图形显示器的工作原理
直视存储管图形显示器 无需刷新; 很复杂的图形都可以在极高的分辨率下无闪烁地显示; 成本较低; 不能显示彩色; 不能局部修改; 擦除和重画过程可能持续较长时间。
光栅扫描图形显示器 水平扫描(显示) 水平回扫(消隐) 垂直回扫(消隐) 图2.18 光栅扫描原理
工作原理:光栅扫描是控制电子束按某种光栅形状进行的顺序扫描,而字符、图像是靠Z轴信号控制辉亮来形成的。 图2.19 光栅扫描图形显示器的工作原理
光栅扫描图形显示器 刷新缓冲存储器(refresh buffer)或称帧缓冲存储器(frame buffer)。 像素(pixel或pel,是picture element的简写)。 像素信息从应用程序转换并放入帧缓冲区的过程称之为扫描转换过程。
平板显示器(flat-panel display) 低电压、轻小型、数字化显示器件。 平板显示器(flat-panel display)的分类: 非发射显示器(none-emissive display) 发射显示器(emissive display)
平板显示器(flat-panel display) 液晶显示器 等离子体显示板(Plasma Panel) 薄片光电显示器(Thin-Film Electroluminescent Display) 发光二极管(Liquid-Emitting Diode, LED)
液晶显示器——原理 液晶分子的排列在微弱的外部电场、磁场或者应力、温度变化等作用下非常容易改变。当液晶分子的某种排列状态在电场作用下变为另一种状态时,液晶的光学性质随之改变,这种产生光被电场调制的现象称为液晶的电光效应。
液晶显示器——原理 液晶显示的机理是通过能阻塞或传递光的液晶材料,传递来自周围的或内部光源的偏振光。 图2.20 液晶显示原理
液晶显示器——类型 NW(Normal White)型的LCD:在液晶面板不施加电压时,我们所看到的面板是透光的画面,也就是亮的画面。 NB(Normal Black)型的LCD:当对液晶面板不施加电压时,面板无法透光。
液晶显示器——彩色 液晶显示器利用在一侧的玻璃基板上加上一个彩色滤光片(CF,Color Filter)实现彩色。 * 1999年7月07/16/96 液晶显示器——彩色 液晶显示器利用在一侧的玻璃基板上加上一个彩色滤光片(CF,Color Filter)实现彩色。 彩色滤光片上均匀分布着红、绿、蓝色小点,每个小点有各自不同的灰度,相邻的一组RGB小点构成一个基本的彩色显示单元,即一个像素。 *
液晶显示器——彩色 图2.21 彩色滤光片排列方式
液晶显示器——分类 扭曲向列型(TN,Twisted Nematic) 超扭曲向列型(STN,Super TN) 双层超扭曲向列型(DSTN,Dual Scan TN) 薄膜晶体管型(TFT,Thin Film Transistor)
等离子体显示板 图2.22 等离子体显示板的基本结构
薄片光电显示器 图2.23 薄片光电显示器的基本结构
发光二极管(LED) 发光二极管采用二极管激发发光来显示图像。二极管以矩阵排列形成显示器的像素位置。图形的定义存储在刷新缓冲器中。信息从刷新缓冲器读出,并转换为电压施于二极管,在显示器上产生发光图案。
三维观察设备 从变焦距的柔性震动镜面反射CRT图像 图2.24 采用震动镜面的三维显示系统
三维观察设备 显示具立体感的视图 利用不同的刷新周期交替地显示两视图; 将屏幕分半; 使用头盔式结构。
2.4 显示子系统 光栅扫描图形显示子系统的结构 绘制流水线 相关概念
光栅扫描图形显示子系统的结构 图2.25 简单的光栅图形显示子系统
光栅扫描图形显示子系统的结构 图2.26 常用的光栅图形显示子系统
光栅扫描图形显示子系统的结构 图2.27 发展的光栅图形显示子系统
光栅扫描图形显示子系统的结构 帧缓冲存储器:用来存储像素颜色(灰度)值的存储器。 双缓存:一个缓存用来刷新的同时,另一个写入数据信息,尔后这两个缓存可互换角色。这种方式称为双缓存,它可以使得显示的动画流畅而没有滑动感。
光栅扫描图形显示子系统的结构 显示控制器(Display Controller),又称视频控制器(Video Controller),主要功能是依据设定的显示工作方式,自主地、反复不断地读取帧缓存中的图像点阵(包括图形、字符文本)数据,将它们转换成R、G、B三色信号并配以同步信号送至显示器,即可刷新屏幕。
光栅扫描图形显示子系统的结构 显示处理器(Display Processor),又称图形控制器(Graphics Controller)或显示协处理器(Display Coprocessor),它把CPU从图形显示处理的事务中解脱出来,其主要任务是扫描转换待显示的图形以及某些附加的操作等。
绘制流水线 图形子系统的图形绘制功能常常采用流水线(Pipeline)结构绘制,或者称为管线绘制。 绘制流水线的基本结构从概念上包括三个阶段 应用程序阶段 几何阶段 光栅阶段
绘制流水线 图2.28 绘制流水线的结构
相关概念 分辨率 像素与帧缓存 颜色查找表 显示长宽比 屏幕坐标系
相关概念——分辨率 光点一般是指电子束打在显示器的荧光屏上,显示器能够显示的最小的发光点。 像素点是指图形显示在屏幕上时候,按当前的图形显示分辨率所能提供的最小元素点。
相关概念——分辨率 屏幕分辨率,也称为光栅分辨率,它决定了显示系统最大可能的分辨率,任何显示控制器所提供的分辨率也不能超过这个物理分辨率。 通常用水平方向上的光点数与垂直方向上的光点数的乘积来表示。
相关概念——分辨率 显示分辨率是计算机显示控制器所能够提供的显示模式分辨率,实际应用中简称为显示模式。 对于文本显示方式,显示分辨率用水平和垂直方向上所能显示的字符总数的乘积表示。 对于图形显示方式,则用水平和垂直方向上所能显示的象素点总数的乘积表示。 显示分辨率不同,它所对应的象素点大小也不同。
相关概念——分辨率 图形的存储分辨率是指帧缓冲区的大小,一般用缓冲区的字节数表示。 存储分辨率不仅与显示分辨率有关,还与像素点的色彩有关。 帧缓存大小的计算: x方向的像素点数×y方向的像素点数×log2n/8(BYTE) 其中:n为颜色数或灰度等级数
相关概念——分辨率 屏幕分辨率决定了所能显示的最高分辨率。 显示分辨率和存储分辨率对所能显示的图形分辨率有控制作用。 显示器中的分辨率 带宽 = A*水平像素点数*垂直像素点数*刷新频率 A常取1.344
相关概念——像素与帧缓存 屏幕上一个象素点就对应帧缓存中的一组信息。 组合像素法(Packed Pixel Method) 颜色位面法(Color Plane Method)
相关概念——像素与帧缓存 在组合像素法中,一个图形象素点的全部信息被编码成一个数据字节,按照一定方式存储到帧缓存中,编码字节的长度与点的属性(如颜色、灰度等)有关。 图2.29 组合象素法
相关概念——像素与帧缓存 在颜色位面法中,帧缓存被分成若干独立的存储区域,每一个区域称为一个位面(Bit Plane),每个位面控制一种颜色或者灰度,每一个图形象素点在每个位面中占一位,通过几个位面中的同一位组合成一个象素。 图2.30 颜色位面法
图2.31 具有24位面彩色帧缓存的显示器
相关概念——颜色查找表 颜色查找表也称调色板,是由高速的随机存储器组成,用来储存表达象素色彩的代码。此时帧缓冲存储器中每一象素对应单元的代码不再代表该象素的色彩值,而是作为查色表的地址索引。
图2.32 具有24位面彩色帧缓存和10位颜色查找表的显示器
相关概念——显示长宽比 显示长宽比,即水平点数与垂直点数之比。要求在屏幕两个方向上相同像素点数产生同样长度的线段,以使图形不至发生畸变。
相关概念——屏幕坐标系 图2.33 不同显示器的坐标
2.5 图形硬拷贝设备 打印机 绘图仪
打印机 打印机是画点设备。 击式打印机主要指针式打印机,它隔着色带将某种点阵图案压在纸上。 非撞击式打印机包括激光打印机、喷墨打印机、热转印打印机、染料热升华打印机和静电打印机等。
绘图仪 笔式绘图仪(Pen Plotter)是画线设备。 笔式绘图仪可分为平板式绘图仪(Flatbed Plotter)和滚筒式绘图仪(Drum Plotter)
2.6 OpenGL图形软件包 OpenGL的主要功能 OpenGL的绘制流程 OpenGL的基本语法 OpenGL的程序实例
OpenGL图形软件包 OpenGL是SGI(Silicon Graphics Inc.)公司对IRIS GL进行改进,扩展可移植性,形成的一个跨平台开放式图形编程接口。 目前,OpenGL标准由1992年成立的独立财团OpenGL Architecture Review Board(ARB)以投票方式产生,并制成规范文档公布。
OpenGL的主要功能 模型绘制 模型观察 颜色模式 光照应用 图像效果增强 位图和图像处理
OpenGL的主要功能 纹理映射 实时动画 交互技术
OpenGL的绘制流程——工作方式 一个完整的窗口系统的OpenGL图形处理系统的结构为:最底层为图形硬件,第二层为操作系统,第三层为窗口系统,第四层为OpenGL,最上面的层为应用软件。 图2.34 OpenGL图形处理系统在计算机系统中的层次结构
OpenGL的绘制流程——流水线 OpenGL命令将被放在一个命令缓冲区中,这样命令缓冲区中包含了大量的命令、顶点数据和纹理数据。当缓冲区被清空时,缓冲区中的命令和数据都将传递给流水线的下一个阶段。 图2.35 一条简化的OpenGL绘制流水线
OpenGL的基本语法——相关库 OpenGL核心库:gl OpenGL实用程序库: glu OpenGL编程辅助库:aux OpenGL实用程序工具包(OpenGL utility toolkit,GLUT):glut Windows专用库:wgl
OpenGL的基本语法——命名规则 OpenGL函数都遵循一个命名约定,即采用以下格式: <库前缀><根命令><可选的参数个数><可选的参数类型> 例如函数glColor3f(…),gl表示这个函数来自库gl.h,color表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。
GLuint,GLenum,GLbitfield OpenGL的基本语法——数据类型 表2.1 OpenGL的数据结构 OpenGL数据类型 内部表示法 定义为C类型 C字面值后缀 GLbyte 8位整数 signed char B GLshort 16位整数 short S GLint,GLsizei 32位整数 long L GLfloat,GLclampf 32位浮点数 float F GLdouble,GLclampd 64位浮点数 double D GLubyte,GLboolean 8位无符号整数 unsigned char Ub 16位无符号整数 unsigned short Us GLuint,GLenum,GLbitfield 32位无符号整数 unsigned long Ui
OpenGL程序实例——头文件包含 利用OpenGL实现图形绘制,首先要引入OpenGL核心库以及其他需要使用的库的头文件。 GLUT保证了gl.h和glu.h被正确包含。 #include <gl/glut.h> #include <windows.h>
OpenGL程序实例——窗口管理 初始化( glutInit ) 创建窗口( glutCreateWindow) 设定窗口的显示模式( glutInitDisplayMode) 指定窗口的位置和大小( glutInitWindowPosition和glutInitWindowSize ) 指定窗口的显示内容函数( glutDisplayFunc) 运行框架( glutMainLoop)
OpenGL程序实例——绘制图形 指定窗口背景色( glClearColor) 颜色管理,使用RGB颜色模型。一种颜色用红、绿、蓝三种颜色成分混合而成,每种颜色成分使用0.0到1.0之间的任意有效浮点数来表示颜色值。
OpenGL程序实例——绘制图形 表2.2 OpenGL的一些常用混合色 混合色 红色成分(R) 绿色成分(G) 蓝色成分(B) 黑 0.0 1.0 绿 黄 蓝 紫 青 深灰 0.25 浅灰 0.75 棕 0.60 0.40 0.12 南瓜橙 0.98 0.625 粉红 0.04 0.70 紫红 白
OpenGL程序实例——绘制图形 刷新窗口的缓冲区( glClear) 设定投影参数 绘制图形 glMatrixMode(GL_PROJECTION); gluOrtho2D(0.0,200.0,0.0,150.0); 绘制图形 glRectf(50.0f, 100.0f, 150.0f, 50.0f);