计算机图形学--自主学习--Open GL简介
- 格式:pdf
- 大小:1.51 MB
- 文档页数:37
12.6 多媒体知识讲座(内容见讲座文稿)12.7 OpenGL 编程基础12.7.1计算机图形处理软件通用编程软件包:常常是图形库,提供了生成各种图形、实现图形的处理和输入输出操作、控制和处理各种图形设备以及交互过程中的各种事件,如OpenGL。
专用编程软件包:一般由程序员在开发时使用。
专用应用图形软件包是具有图形处理能力的交互式图形软件系统,为非程序员提供的而且往往应用于某个或某些领域,如AutoCAD、3DS MAX等。
专用应用图形软件包使用范围广,使用人员众多。
12.7.2 Windows图形环境介绍与图形软件开发(略)12.7.3 OpenGL介绍1、OpenGL基本概念OpenGL(Open Graphics Library,即开放性图形库) 是以SGI的GL三维图形库为基础制定的一个开放式三维图形标准。
SGI在1992年7月发布了1.0版。
OpenGL规范由ARB(OpenGL Architecture Review Board,OpenGL结构评审委员会)负责管理,目前加入OpenGL ARB的成员有SGI、Microsoft、Intel、IBM、SUN、Compaq、HP等公司,它们均采用了OpenGL图形标准,许多软件厂商以OpenGL为基础开发自己的产品,硬件厂商提供对OpenGL的支持。
由于OpenGL的广泛应用,它已经成为一个工业标准。
2、OpenGL的设备独立性OpenGL独立于硬件设备、窗口系统和操作系统,使得以OpenGL为基础开发的应用程序可以在各种平台间移植。
OpenGL可以运行在当前各种流行操作系统之上,如Windows95/98、Windows NT/2000、Linux、Mac OS、Unix、OS/2等。
特别需要指出的是,由于Microsoft公司在其Windows95或更高版本的操作系统和Visual系列高级语言开发环境中捆绑了OpenGL标准,使得OpenGL在微机中得到了更为普遍的应用。
OpenGL ES Common/Common-Lite 规范OpenGL ES 基本知识OpenGL ES(以后简写为“GL”)仅关心如何在帧缓存(framebuffer)中渲染(渲染后的值将保存到帧缓存中)。
它不支持其他的外围设备与图形硬件关联,例如鼠标和键盘。
编程人员必须通过其他的途径获取用户操作,例如 Khronos Open KODE API。
GL在一定数量的可选模式下绘制原始对象。
每个原始对象可以是一个点,线段或者一个三角形。
每种模式可以独立的改变。
每个设置之间不相互影响(虽然一些模式可能最终影响帧缓存中的最后结果)。
模式被设置,原始对象被定义,其他GL操作通过在函数或者程序中调用。
原始对象是一组被定义好的数据结构,包含一个或者多个顶点。
一个顶点定义了一个点,或一个边的结束点,或者一个三角形的2条边相交的顶点。
数据(包括位置坐标,颜色,规格化,纹理坐标)保存在一个顶点中,每个顶点按照顺序,以相同方式,独立的被处理。
唯一例外的是,如果一组顶点必须在一个指定的矩形区域内被裁减,这个操作将导致,一些顶点可能被修改,一些新顶点可能被创建。
裁减的类型依赖于这组顶点数据代表的描绘类型。
命令永远按照顺序执行,虽然可能命令的实现会有不确定的延时。
比如,一个原始对象在必须在任何子序列影响帧缓存之前绘制。
它也意味着查询和像素读取操作返回的状态时,之前的所有的GL命令执行完毕。
通常,GL 命令必须在其他子序列在造成任何影响之前完成。
在GL中,数据绑定发生在调用的时候。
这意味着命令执行时,使用的数据会被解释。
即使命令要求一个指向数据的指针,这些数据当调用的时候即被解释,任何子序列的对数据的改变都不会产生影响(除非后继的操作中使用了同样的指针)。
GL提供对3D,2D图形的基本操作。
包括特定的矩阵变换,光照方程系数,抗锯齿,像素更新操作。
它不提供复杂几何元素的描述或者建模。
另一种对这种解决方案的描述是GL提供一些途径去描述如何渲染复杂的几何对象,而不直接描述此类复杂的对象。
1
2
OpenGL 的功能OpenGL 的组成5OpenGL 简介4
3
6
OpenGL 实用工具包一个完整的程序
小结
3.1 OpenGL
3.1 OpenGL
3.1 OpenGL
3.1 OpenGL
3.1 OpenGL
1
2
OpenGL 的功能OpenGL 的组成5OpenGL 简介4
3
6
OpenGL 实用工具包一个完整的程序
小结
3.2 OpenGL
3.2 OpenGL
3.2 OpenGL
3.2 OpenGL
3.2 OpenGL
3.2 OpenGL
3.2 OpenGL
1
2
OpenGL 的功能OpenGL 的组成5OpenGL 简介4
3
6
OpenGL 实用工具包一个完整的程序
小结
3.3
核心库函数以
3.3
这一部分函数由核心库函数实现,以
可看作是核心库函数的扩展,提供更高级的图形功能。
如
3.3
核心库函数是设备独立的。
而
指定的长方形区域中
扩展库提供的函数用来扩展窗口系统的功能。
在
(Apple GL
12OpenGL 的功能OpenGL 的组成5OpenGL 简介436OpenGL 实用工具包一个完整的程序
小结
3.4
OpenGL
Toolkits)
图形库实用工具包提供了一组与任意屏幕窗口系统进行交互的函数。
因此是与屏幕窗口系统独立的。
这样简化了应用程序的工作,也方便移植。
GLUT
3.4
但
提供。
具体的安装步骤如下:
/developers/documentation/glut/glutdll s37beta.zip;
3.4
i)
没更改的
递过来的没更改的
等等
3.4
i)
来的没更改的
函数传递过来的没更改的
等等
Mode
这是一个默认的颜色模式
这个显示模式还允许你选择单缓冲区或双缓冲区窗口。
须选的。
特殊缓冲:
用“或“(
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT_ DEPTH);
iii)
例子:犹他茶壶
void glutWireTeapot(Gldouble
始图形,使程序进入无穷循环直到遇到输入或窗口被关闭。
1
2
OpenGL 的功能OpenGL 的组成5OpenGL 简介4
3
6
OpenGL 实用工具包一个完整的程序
小结
3.5
void main(int
{
}
void myinit(void) {
}
glutDisplayFunc( void (*func) (void) ) (Callback functions).
glutDisplayFunc( lineSegment lineSegment
gluOrth2D(x0,x1,y0,y1):
y0,y1)
void lineSegment(void) {
}
从世界坐标到窗口坐标的变换世界坐标窗口(0.0, 200.0, 0.0, 150.0)
3.6
关于
个途径学习它:
A
到;
B
习,如通过修改参数观察绘图变化情况来了解参数的含义。
感谢各位同学观看!。