计算机图形学笔记

来源:互联网 发布:360安全认证软件 编辑:程序博客网 时间:2024/05/18 01:44
计算机图形学笔记
第2章 图形系统概述
2.1 视频显示设备
阴极射线管(cathode-ray tube,CRT)
2.1.1 刷新式CRT
刷新式CRT(refresh CRT):使用较多的维持荧光粉亮度的办法是快速控制电子束反复重画图像。
刷新频率(refresh rate):在屏幕上重复画图的频率成为刷新频率。
2.1.2 光栅扫描显示器
光栅扫描显示器(raster-scan display):使用CRT的普通图形监视器式基于电视技术的光栅扫描显示器。
扫描行(scan line):在光栅扫描系统中,电子束横向扫描屏幕,一次一行,从顶到底依次进行。每一行成为扫描行。
刷新缓存(refresh buffer)或帧缓存(frame buffer):当电子束横向沿每一行移动时,电子束的强度不断变化,从而建立亮点组成的一个图案。图形定义保存在称为刷新缓存或帧缓存的存储器中。
帧(frame):这里的帧是指整个屏幕范围。
像素(pixel或pel,是picture element的缩写):每个可以有电子束点亮的屏幕点称为一个像素。
颜色缓存(color buffer):由于刷新缓存用来存储屏幕颜色值,因此它也称为颜色缓存。
纵横比(aspect ratio):系统能显示的像素列数除以行数的结果。(有时术语纵横比用来表示扫描行数除以像素的结果)。纵横比还可用在屏幕上显示水平和垂直方向相同长度线段所需的点数之比来描述。
缓存深度(depth)或位平面(bit plane)数:每像素的位数有时也称为缓存深度或位平面数。
位图(bitmap):每像素一位的帧缓存通常称为位图。
像素图(pixmap):每像素多位的帧缓存称为像素图。
水平回扫(horizontal retrace):在每条扫描线末端,电子束返回屏幕的左边,然后又开始显示下一条扫描线。刷新每条扫描线后,电子束返回到屏幕左端,这称为电子束的水平回扫。
垂直回扫(vertical retrace):在每帧(以一秒的1/80到1/60显示)的终止处,电子束返回(垂直回扫)到屏幕的左上角,开始下一帧。
2.1.3 随机扫描显示器
随机扫描显示器(random-scan display):电子束只在屏幕上显示图形的部分移动。电子束逐条地跟踪图形的组成线条,从而生成线条图。因此,随机扫描显示器也称为向量显示器(vector display)、笔划显示器(stroke-writing)或笔记显示器(calligraphic display)。
刷新显示文件(refresh display file):随机扫描系统的刷新平率依赖于显示的线数。这是图形的定义是存放在称为刷新显示文件存储区的一组画线命令。刷新显示文件称为显示列表(display list)、刷新显示文件(refresh display file)、向量文件(vector file)或显示程序(displau program)。
2.1.4 彩色CRT监视器
电子束穿透法(beam-penetration):显示彩色图形的一种防复发式在屏幕上涂多层不同的荧光粉。发射颜色由电子束在荧光层中的穿透深度决定,这种方法称为电子束穿透法。
荫罩法(shadow-mask):常用于光栅扫描系统(包括彩色电视机),因为它能产生的彩色范围比电子束穿透法大得多。这种方法基于我们熟悉的有红、绿、蓝三原色来组合颜色的原理,称为RGB颜色模型(RGB color model)。
合成式监视器(composite monitor):合成式监视器是用于广播电路旁路的电视适配设备。这些显示设备任然要求组合图形信息,但无需载波信号。
RGB监视器(RGB monitor):人们将图形系统的彩色CRT设计成RGB监视器。这些监视器采用荫罩法且不经过任何中间处理,直接从计算机系统取得每支电子枪(红、绿和蓝)的强度等级。
全彩色系统(full-color system)或真彩色系统(true-color system):在高质量的光栅图形系统的帧缓存中,每个像素对应24位,每支电子枪允许256级电压设置,因而每个像素有近1700万种颜色可供选择。每个像素具有24个存储位的RGB彩色系统通常称为全彩色系统或真彩色系统。
2.1.5 平板显示器
平板显示器(flat-panel display):平板显示器代表一类相比CRT能减小体积、减轻重量并节省功耗的视频设备。
平板显示器分为两类:发射显示器(emissive display)和非发射显示器(nonemissive display)。
等离子体显示板(plasma panel)也称气体放电显示器(gas-discharge display).
薄膜光电显示器(thin-film electroluminescent display)具有与等离子体显示板类似的结构。
第三类发射设备是发光二极管(light-emitting diode,LED).
液晶显示器(liquid-crystal display,LCD)通常用于小型系统,如膝上型计算机及计算器。
无源矩阵(passive-matrix)LCD
激活矩阵(active-matrix)显示器
2.1.6 三维观察设备
2.1.7 立体感和虚拟现实系统
虚拟现实(virtual-reality)
2.2 光栅扫描系统
交互式光栅图形系统通常使用几个处理部件。除了中央处理器(CPU)以外,还使用一个视频控制器(video controller)或显示控制器(display controller)来控制显示设备的操作。
2.2.1 视频控制器
2.2.2 光栅扫描显示处理器
显示处理器(display processor)有时也指图形控制器(graphics controller)或显示协处理器(display coprocessor)
扫描转换(scan conversion):显示处理器的主要任务是将应用程序给出的图形定义数字化为一组像素强度值,并存放在帧缓存中。这个数字化过程称为扫描转换。
为了减少光栅系统中对存储量的需求,是用来将帧缓存组织成链表且对强度信息进行编码的方法:行程长度编码(run-length encoding)、单元编码(cell encoding)
2.3 图形工作站和观察系统
2.4 输入设备
2.4.1 键盘、按钮盒和旋钮
2.4.2 鼠标设备
2.4.3 跟踪球和空间球
2.4.4 操纵杆
2.4.5 数据手套
2.4.6 数字化仪
2.4.7 图像扫描仪
2.4.8 触摸板
2.4.9 光笔
2.4.10 语音系统
2.5 硬拷贝设备
2.6 图形网络
2.7 因特网上的图形
2.8 图形软件
2.8.1 坐标表示
建模坐标系(modeling coordinate)有时也称为局部坐标系(local coordinate)或主坐标系(master coordinate)
世界坐标系(world coordinate)
观察流水线(view piprline):在描述好场景的所有部分之后,要将改场景的世界坐标描述经各种处理变换到一个或多个输出设备参照系来显示。这个过程称为观察流水线。
观察坐标系(view coordinate):世界坐标系位置首先转换到与我们要对场景进行观察所对应的观察坐标系,该转换依据假想照相机的位置和方向进行。
规范化坐标系(normalized coordinate),其坐标范围从-1到1或从0到1
设备坐标系(device coordinate):显示设备的坐标系或(device coordinate)对视频监视器而言的屏幕坐标系(screen coordinate)
2.8.2 图形功能
图形输出图元(graphics output primitive):图形的基本构造块称为图形输出图元。它们包括字符串和几何成分,如点、直线、曲线、填充区域(通常为多边形)以及由彩色阵列定义的形状.
属性(attribute):属性是输出图元的特性。也就是说,属性描述一个特定图元是怎样显示出来的。它包括颜色的设定、线性或文本类型以及区域填充图案等。
我们可以通过几何变换(geometric tansformation)来改变场景中一个对象的大小、位置或方向。
某些图形包给出一组函数实现建模变换(modeling transformation),将建模坐标系中给出的对象描述成场景。
观察变换(viewing transformation)用来制定将要显示的视图、使用的投影类型以及在输出显示区域出现的范围。
输入函数(input function)用于控制和处理来自这些交互设备的数据流。
图形软件包常常包含许多事务性任务,如将显示屏清成指定颜色和初始化参数。我们可以将这类处理事务性任务的功能归入控制操作(control operation)类。
2.8.3 软件标准
GKS
PHIGS
GL(Graphics Library)函数集
OpenGL
2.8.4 其他图形软件包
Open Inventor软件包
虚拟现实建模语言(Virtual-Reality Modeling Language,VRML)
Java 2D
Java 3D
Renderman Interface
Mathematica、Matlab、Maple
2.9 OpenGL简介
2.9.1 基本OpenGL语法
函数库中函数名以gl开头
如:glBegin, glClear, glCopyPixels, glPolygonMode
常量以大写字母GL开头,常量名中各单词均大写,单词之间用下划线分隔
GL_2D, GL_RGB, GL_CCW, GL_POLYGON, GL_AMBIENT_AND_DIFFUSE
内置的数据类型
GLbyte, GLshort, GLint, GLfloat, GL double, GLboolean
2.9.2 相关库
    除OpenGL基本(核心)库之外,还有一些用于处理专门操作的附加库。OpenGL实用函数(OpenGL Utility,GLU)提供了一些例程,可以设置观察和投影矩阵,利用线条和多边形近似法来描述复杂对象,实用线性近似法显示二次曲线和样条曲线,处理表面绘制操作,以及完成其他的复杂任务。每一个OpenGL实现中都包括GLU库,所有GLU函数名均用前缀glu开头。还有一个称为Open Inventor的基于OpenGL的面相对象工具包,它为交互式三维应用提供函数和预定义的对象形状。该工具包采用C++编程。
    为了是用OpenGL建立一个图形,必须首先在视频屏幕上设置显示窗口。它是一个屏幕上的简单矩形,图形将在其中显示。我们不能知己使用基本的OpenGL函数来创建显示窗口,因为该库中只有与设备无关的函数,且窗口管理操作依赖于所用的计算机。但是,有多个支持各种计算机上的OpenGL函数的窗口系统库。OpenGL的X窗口系统扩充(OpenGL Extension to the X Window System, GLX)提供了一组以glX为前缀的函数。Apple系统可使用Apple GL(AGL)接口进行窗口管理操作,该库的函数名以agl为前缀。对于Microsoft的Windows系统,WGL函数提供了窗口系统到OpenGL的接口,这些函数以wgl为前缀。Presentation Manager to OpenGL(PGL)是一个用于IBM OS/2的接口,它使用pgl作为库函数的前缀。OpenGL实用函数工具包(OpenGL Utility Toolkit, GLTU)提供了与仁义屏幕窗口系统进行交互的函数库。GLUT库函数以glut为前缀,该库中也包含了描述与绘制二次和样条曲线及曲面的方法。
    由于GLUT是一个与其他依赖于设备的窗口系统之间的接口,我们可以利用GLUT使得程序成为与设备无关的。关于GLUT最新版本的信息和源程序下载过程请参见Web页面:
    http://reality.sgi.com/opengl/glut3/glut3.html
注:上面的网址貌似无法访问了
GLUT官网页面,window下最新的是3.7
    http://www.opengl.org/resources/libraries/glut/
找到Other GLUT Information/Downloads下的Pre-compiled Win32 for Intel GLUT 3.7 DLLs for Windows 95 & NT
下载地址
http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip


因为Windows只支持OpenGL1.1版本,如果想要使用高版本的函数库,需要再导入glew扩展函数库
glew官网
http://glew.sourceforge.net/
目前最新版是1.11.0支持到OpenGL 4.5
[08-11-14] GLEW 1.11.0 adds support for OpenGL 4.5, new extensions
直接下载地址
http://superb-dca2.dl.sourceforge.net/project/glew/glew/1.11.0/glew-1.11.0-win32.zip

glee也是OpenGL的扩展库,功能上和glew类似
但是从搜索的结果来看,这个函数库从2009年以后就没有更新了
glee在sourceforge也进行了代码托管,最近一次更新时2013-05-02
http://sourceforge.net/projects/glee/
需要用svn或者git下载,下载下来是一样的
svn命令
svn checkout svn://svn.code.sf.net/p/glee/svn/ glee-svn
git命令
git clone git://git.code.sf.net/p/glee/glee glee-glee

官网
http://elf-stone.com/glee.php


下载地址
http://elf-stone.com/downloads.php
下载页面打开之后是这样的,应该是托管的MySQL崩溃了
Warning: mysql_connect(): Can't connect to MySQL server on 'mysql.netweaver.net' (4) in /home/elfst/public_html/downloads.php on line 48Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /home/elfst/public_html/downloads.php on line 50Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/elfst/public_html/downloads.php on line 52Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/elfst/public_html/downloads.php on line 54Sorry, no records were found! 
貌似现在能直接下载的就是5.4的这个版本了,用迅雷新建任务就能下载
https://hd-chimera.googlecode.com/files/GLee5_4.zip

OpenGL官网对这两个插件的介绍
http://www.opengl.org/sdk/libs/GLEW/
http://www.opengl.org/sdk/libs/GLee/

为了方便大家下载,这里给个地址吧

http://download.csdn.net/detail/gsls200808/7963463









0 0
原创粉丝点击