计算机图形学实用教程第2章 图形显示设备1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
理数据。当缓冲区被清空时,缓冲区中的命令和
数据都将传递给流水线的下一个阶段。
简化的OpenGL绘制流水线
11
OpenGL的基本语法——命名规则
100多个函数(其中核心函数有115个) OpenGL函数遵循的命名约定:
<库前缀><根命令><可选的参数个数><可选的参数类型>
例如,函数glColor3f(…)
– 其中比较著名的产品包括:动画制作软件Softimage和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软件ARC/INFO等 等。
OpenGL的优越性
独立于窗口系统和操作系统
– 以它为基础开发的应用程序可以十分方便地在各 种平台间移植
和Windows NT)
15
OpenGL程序实例——窗口管理
初始化( glutInit )
创建窗口( glutCreateWindow)
设定窗口显示模式( glutInitDisplayMode)
指定窗口位置和大小( glutInitWindowPosition和 glutInitWindowSize ) 指定窗口的显示内容函数( glutDisplayFunc)
gl表示该函数来自库gl.h color表示该函数用于颜色设定 3f表示该函数采用了三个浮点数参数
12
OpenGL的基本语法——数据类型
OpenGL的数据结构
OpenGL数据类型 GLbyte 内部表示法 8位整数 定义为C类型 signed char C字面值后缀 B
GLshort GLint,GLsizei
9
OpenGL图形处理系统 在计算机系统中的层次结构
一个完整的OpenGL图形处理系统
的结构为
– 最底层为图形硬件 – 第二层为操作系统 – 第三层为窗口系统 – 第四层为OpenGL – 最上层为应用软件
10
OpenGL的绘制流程——流水线
OpenGL命令将被放在一个命令缓冲区中,这样
命令缓冲区中包含了大量的命令、顶点数据和纹
静态链接库文件
– glu32.lib、glut32.lib、glaux.lib和openg132.lib
动态链接库文件
– Glu.dll、glu32.dll、glut.dll、glut32.dll和openg132.dll
14
Openቤተ መጻሕፍቲ ባይዱL开发库——基本组成
OpenGL核心库:gl(115个最基本的命令函数)
图形软件标准的形成
近二十年中,国际标准化组织ISO已经批准和正在讨论的 与计算机图形有关的标准有: 图形核心系统 GKS、三维图形核心系统 GKS-3D、程 序员层次交互式图形系统 PHIGS、计算机图元文件 CGM 、计算机图形接口 CGI、基本图形转换规范 IGES、产品 数据转换规范STEP 事实标准
OpenGL实用程序库: glu(43个函数,可实现复杂 的操作,如纹理映射、坐标变换、网格化等) OpenGL编程辅助库:aux(31个函数) OpenGL实用程序工具包(OpenGL utility toolkit, GLUT):glut(30多个,基于窗口的工具) Windows专用库:wgl(6个函数,用于连接OpenGL
SGI的OpenGL
微软的Direct X, Adobe的Postscript, Direct3D, Java3D 等
开放式的三维图形软件包OpenGL
OpenGL是在SGI等多家世界闻名的计算机公司的倡 导下,以SGI的GL三维图形库为基础制定的一个通 用共享的开放式三维图形标准。 目前,包括Microsoft、SGI、IBM、SUN、HP等大 公司都采用了OpenGL做为三维图形标准,许多软件 厂商也纷纷以OpenGL为基础开发出自己的产品。
与设备无关、与应用无关、具有较高性能
– 程序与设备无关,实现对设备的独立性,便于移植。
– 使现有的计算机和图形设备的功能得到有效利用。 – 提供计算机图形操作所需要的功能,包含有图形的输入、 输出、图形数据的组织和交互功能等,以满足实际应用 的需要。 – 在不同的计算机系统、不同的应用系统、不同的用户之 间进行信息交换,使图形、程序等可以重复使用,以减 少应用系统的开发费用,减少因重复开发带来的浪费。 – 适用于各种程序设计语言。
第2章 交互式计算机图形处理系统
1
计算机图形系统的功能
用户通过图形显示器和图形输入设备进行人机通信
2
交互式计算机图形系统
Computer + 人 = 交互式
要求主机性能更高(强大的浮点运算能力), 速度更快,存储容量更大,外设种类更齐全 图形加速卡,大屏幕显示器
3
计算机图形系统的结构
由图形软件与图形硬件构成
GLfloat,GLclampf GLdouble,GLclampd GLubyte,GLboolean GLshort GLuint,GLenum, GLbitfield
16位整数 32位整数
32位浮点数 64位浮点数 8位无符号整数
short long
float double unsigned char
可与Visual C++紧密接口 使用简便,效率高
OpenGL的主要功能
建模
– 除提供基本的点、线、多边形的绘制函数外,还提供 复杂三维物体(球、锥、多面体、茶壶等)以及复杂 曲线曲面(如Bezier、NURBS等曲线曲面)绘制函数
几何变换和投影变换 着色(颜色模式设置) 光照处理和材质设置 纹理映射 位图显示和图像处理(图像效果增强) 双缓存实时动画 交互技术
图形设备驱动程序 – 用来控制图形硬件设备 – 显示驱动程序、打印驱动程序 图形子程序库 – 图形处理中的最小单元, 完成图形元素的生成、表 示、变换、显示等 – 被各种图形应用软件调用
图形应用软件 图形子程序库 图形设备驱动程序 图形硬件设备
图形应用软件 – 具有友好的人机界面
4
图形软件标准制定的目标
S L
F D Ub Us
16位无符号整数 unsigned short
32位无符号整数
unsigned long
Ui
13
OpenGL程序实例——头文件包含
用OpenGL实现图形绘制,首先要引入OpenGL 核心库及其他需使用的库的头文件 OpenGL的库函数采用C语言风格 函数的说明文件
– gl.h、glu.h、glut.h、glaux.h
数据都将传递给流水线的下一个阶段。
简化的OpenGL绘制流水线
11
OpenGL的基本语法——命名规则
100多个函数(其中核心函数有115个) OpenGL函数遵循的命名约定:
<库前缀><根命令><可选的参数个数><可选的参数类型>
例如,函数glColor3f(…)
– 其中比较著名的产品包括:动画制作软件Softimage和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件ProEngineer、GIS软件ARC/INFO等 等。
OpenGL的优越性
独立于窗口系统和操作系统
– 以它为基础开发的应用程序可以十分方便地在各 种平台间移植
和Windows NT)
15
OpenGL程序实例——窗口管理
初始化( glutInit )
创建窗口( glutCreateWindow)
设定窗口显示模式( glutInitDisplayMode)
指定窗口位置和大小( glutInitWindowPosition和 glutInitWindowSize ) 指定窗口的显示内容函数( glutDisplayFunc)
gl表示该函数来自库gl.h color表示该函数用于颜色设定 3f表示该函数采用了三个浮点数参数
12
OpenGL的基本语法——数据类型
OpenGL的数据结构
OpenGL数据类型 GLbyte 内部表示法 8位整数 定义为C类型 signed char C字面值后缀 B
GLshort GLint,GLsizei
9
OpenGL图形处理系统 在计算机系统中的层次结构
一个完整的OpenGL图形处理系统
的结构为
– 最底层为图形硬件 – 第二层为操作系统 – 第三层为窗口系统 – 第四层为OpenGL – 最上层为应用软件
10
OpenGL的绘制流程——流水线
OpenGL命令将被放在一个命令缓冲区中,这样
命令缓冲区中包含了大量的命令、顶点数据和纹
静态链接库文件
– glu32.lib、glut32.lib、glaux.lib和openg132.lib
动态链接库文件
– Glu.dll、glu32.dll、glut.dll、glut32.dll和openg132.dll
14
Openቤተ መጻሕፍቲ ባይዱL开发库——基本组成
OpenGL核心库:gl(115个最基本的命令函数)
图形软件标准的形成
近二十年中,国际标准化组织ISO已经批准和正在讨论的 与计算机图形有关的标准有: 图形核心系统 GKS、三维图形核心系统 GKS-3D、程 序员层次交互式图形系统 PHIGS、计算机图元文件 CGM 、计算机图形接口 CGI、基本图形转换规范 IGES、产品 数据转换规范STEP 事实标准
OpenGL实用程序库: glu(43个函数,可实现复杂 的操作,如纹理映射、坐标变换、网格化等) OpenGL编程辅助库:aux(31个函数) OpenGL实用程序工具包(OpenGL utility toolkit, GLUT):glut(30多个,基于窗口的工具) Windows专用库:wgl(6个函数,用于连接OpenGL
SGI的OpenGL
微软的Direct X, Adobe的Postscript, Direct3D, Java3D 等
开放式的三维图形软件包OpenGL
OpenGL是在SGI等多家世界闻名的计算机公司的倡 导下,以SGI的GL三维图形库为基础制定的一个通 用共享的开放式三维图形标准。 目前,包括Microsoft、SGI、IBM、SUN、HP等大 公司都采用了OpenGL做为三维图形标准,许多软件 厂商也纷纷以OpenGL为基础开发出自己的产品。
与设备无关、与应用无关、具有较高性能
– 程序与设备无关,实现对设备的独立性,便于移植。
– 使现有的计算机和图形设备的功能得到有效利用。 – 提供计算机图形操作所需要的功能,包含有图形的输入、 输出、图形数据的组织和交互功能等,以满足实际应用 的需要。 – 在不同的计算机系统、不同的应用系统、不同的用户之 间进行信息交换,使图形、程序等可以重复使用,以减 少应用系统的开发费用,减少因重复开发带来的浪费。 – 适用于各种程序设计语言。
第2章 交互式计算机图形处理系统
1
计算机图形系统的功能
用户通过图形显示器和图形输入设备进行人机通信
2
交互式计算机图形系统
Computer + 人 = 交互式
要求主机性能更高(强大的浮点运算能力), 速度更快,存储容量更大,外设种类更齐全 图形加速卡,大屏幕显示器
3
计算机图形系统的结构
由图形软件与图形硬件构成
GLfloat,GLclampf GLdouble,GLclampd GLubyte,GLboolean GLshort GLuint,GLenum, GLbitfield
16位整数 32位整数
32位浮点数 64位浮点数 8位无符号整数
short long
float double unsigned char
可与Visual C++紧密接口 使用简便,效率高
OpenGL的主要功能
建模
– 除提供基本的点、线、多边形的绘制函数外,还提供 复杂三维物体(球、锥、多面体、茶壶等)以及复杂 曲线曲面(如Bezier、NURBS等曲线曲面)绘制函数
几何变换和投影变换 着色(颜色模式设置) 光照处理和材质设置 纹理映射 位图显示和图像处理(图像效果增强) 双缓存实时动画 交互技术
图形设备驱动程序 – 用来控制图形硬件设备 – 显示驱动程序、打印驱动程序 图形子程序库 – 图形处理中的最小单元, 完成图形元素的生成、表 示、变换、显示等 – 被各种图形应用软件调用
图形应用软件 图形子程序库 图形设备驱动程序 图形硬件设备
图形应用软件 – 具有友好的人机界面
4
图形软件标准制定的目标
S L
F D Ub Us
16位无符号整数 unsigned short
32位无符号整数
unsigned long
Ui
13
OpenGL程序实例——头文件包含
用OpenGL实现图形绘制,首先要引入OpenGL 核心库及其他需使用的库的头文件 OpenGL的库函数采用C语言风格 函数的说明文件
– gl.h、glu.h、glut.h、glaux.h