三维图形程序设计PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
… glVertex2i(i, j); glVertex2f(x, y); glVertex3f(x, y, z); glVertex3fv(point);
详见 gl.h中定义
2020/12/11
20
有的函数参数类型后缀前带有数字2、3、4。2代表二维,3代表 三维,4代表alpha值(以后介绍)。
GLUT: OpenGL Utility Toolkit
2020/12/11
6
OpenGL 是什么?
从程序员的角度
指定要绘制的对象
图形应用程序的3要素 描述这些对象的属性
定义观察这些对象的方式
交互程序需要提供输入功能 初始化函数和终止函数
2020/12/11
7
OpenGL 是什么?
OpenGL状态机
最后,OpenGL也定义GLvoid类型,如果用C语言编写,可以用 它替代void类型。
2020/12/11
21
OpenGL中部分常数及其含义
字符
(gl.h define ……) 含义
GL_POINTS GL_LINES GL_AMBIENT GL_POSITION GL_FLAT GL_SMOOTH
输入对象
状态机
输出图像
应用程序 函数调用 OpenGL 像素
1 指定输入;2 改变状态
2020/12/11
8
OpenGL 是什么?
OpenGL是图形渲染管线
2020/12/11
9
OpenGL 有什么?
图元函数 属性函数 视窗函数 控制函数
指定输入 改变状态
2020/12/11
10
OpenGL组件
函数名的前缀为 gl 这部分函数用于常规的、核心的图形处理。由 于许多函数可接收不同数据类型的参数,因此可派 生。
2020/12/11
13
(2) OpenGL实用库
函数名的前缀为 glu 这部分函数通过调用核心库的函数,为开发者 提供相对简单的用法,实现一些较复杂的操作,如: 坐标变换、纹理映射、绘制椭球、茶壶等简单多边 形。
2020/12/11
16
(5) Windows专用库
函数名的前缀为 wgl 主要用于连接OpenGL和Windows,以弥补 OpenGL在文本方面的不足。 Windows专用库只用于Windows环境中。
2020/12/11
17
(6) Win32 API函数库
函数名无专用前缀 这部分函数主要用于处理像素存储格式和双帧 缓存。这些函数将替换Windows GDI中原有的同 样的函数。
•
应用程序编程接口
它包括了近700个函数,开发者可以用这些函数来建立三维模型和进行 三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明 了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和 1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。
GL: Graphics Library, 图形库
动物骨骼的可视化重建
立体云图
2020/12/11
4
虚拟现实
• 运用计算机所产生的高度模拟现实环境的、 具有交互性的高级用户界面。
三维军事战事训练
2020/12/11
5
• OpenGL
• OpenGL是一个图形应用程序编程接口。
•
API:
Application Programmer’s Interface,
Windows API函数库只用于Windows环境中。2020/12/1118OpenGL中的数据类型
2020/12/11
19
OpenGL函数的多种形式
glVertex{234}{sifd}(TYPE coords, …) glVertex{234}{sifd}v(TYPE *coords)
GLint i, j; GLfloat x, y, z, point[3];
2020/12/11
11
OpenGL库函数命名规则
OpenGL库函数
2020/12/11
(1) OpenGL核心库 (2) OpenGL实用库 (3) OpenGL辅助库 (4) OpenGL实用工具库 (5) Windows专用库 (6) Win32 API函数库
12
(1) OpenGL核心库
有些OpenGL函数最后带一个字母v,表示函数参数可用一个指 针指向一个向量(或数组)来替代一系列单个参数值。下面两种格式 都表示设置当前颜色为红色,二者等价。
glColor3f(1.0,0.0,0.0); float color_array[]={1.0,0.0,0.0}; glColor3fv(color_array); 除了以上基本命名方式外,还有一种带“*”星号的表示方法, 例如glColor*(),它表示可以用函数的各种方式来设置当前颜色。同 理,glVertex*v()表示用一个指针指向所有类型的向量来定义一系列 顶点坐标值。
核心库和实用库在所有的OpenGL版本中均有 实现。
2020/12/11
14
(3) OpenGL辅助库
函数名的前缀为 aux 这部分函数提供窗口管理、输入输出以及绘制 一些简单三维物体。 辅助库只能在windows平台上运行
2020/12/11
15
(4) OpenGL实用工具库
函数名的前缀为 glut 这部分函数主要提供基于窗口的工具,如:多 窗口绘制、空消息和定时器,以及一些较复杂的函 数。 由于glut中的窗口管理函数不依赖运行环境, 因此可在所有系统平台上运行。
三维图形程序设计
2020/12/11
1
Chap1 基础知识
2020/12/11
2
计算机图形学领域近年来三大活跃的发展方向
1. 科学计算可视化 2. 计算机动画 3. 虚拟现实
技术核心:三维图形
2020/12/11
3
科学计算可视化
• 运用计算机图形学的原理与方法,将科学与工程 计算所产生的大量的数据转换为图形、图像,以 直观的形式表现出来。
绘制单个顶点集 绘制多组独立的双顶点线段 设置RGBA模式下的环境光 设置光源位置 设置平面明暗处理模式 设置光滑明暗处理模式
三大部分:
(1) 函数说明文件 gl.h glu.h glut.h glaux.h
(2) 静态链接库文件 glu32.lib glut32.lib glaux.lib opengl32.lib
(3) 动态链接库文件 opengl32.dll glu32.dll glut32.dll glaux.dll
详见 gl.h中定义
2020/12/11
20
有的函数参数类型后缀前带有数字2、3、4。2代表二维,3代表 三维,4代表alpha值(以后介绍)。
GLUT: OpenGL Utility Toolkit
2020/12/11
6
OpenGL 是什么?
从程序员的角度
指定要绘制的对象
图形应用程序的3要素 描述这些对象的属性
定义观察这些对象的方式
交互程序需要提供输入功能 初始化函数和终止函数
2020/12/11
7
OpenGL 是什么?
OpenGL状态机
最后,OpenGL也定义GLvoid类型,如果用C语言编写,可以用 它替代void类型。
2020/12/11
21
OpenGL中部分常数及其含义
字符
(gl.h define ……) 含义
GL_POINTS GL_LINES GL_AMBIENT GL_POSITION GL_FLAT GL_SMOOTH
输入对象
状态机
输出图像
应用程序 函数调用 OpenGL 像素
1 指定输入;2 改变状态
2020/12/11
8
OpenGL 是什么?
OpenGL是图形渲染管线
2020/12/11
9
OpenGL 有什么?
图元函数 属性函数 视窗函数 控制函数
指定输入 改变状态
2020/12/11
10
OpenGL组件
函数名的前缀为 gl 这部分函数用于常规的、核心的图形处理。由 于许多函数可接收不同数据类型的参数,因此可派 生。
2020/12/11
13
(2) OpenGL实用库
函数名的前缀为 glu 这部分函数通过调用核心库的函数,为开发者 提供相对简单的用法,实现一些较复杂的操作,如: 坐标变换、纹理映射、绘制椭球、茶壶等简单多边 形。
2020/12/11
16
(5) Windows专用库
函数名的前缀为 wgl 主要用于连接OpenGL和Windows,以弥补 OpenGL在文本方面的不足。 Windows专用库只用于Windows环境中。
2020/12/11
17
(6) Win32 API函数库
函数名无专用前缀 这部分函数主要用于处理像素存储格式和双帧 缓存。这些函数将替换Windows GDI中原有的同 样的函数。
•
应用程序编程接口
它包括了近700个函数,开发者可以用这些函数来建立三维模型和进行 三维实时交互。与其他图形程序设计接口不同,OpenGL提供了十分清晰明 了的图形函数,因此初学的程序设计员也能利用OpenGL的图形处理能力和 1670万种色彩的调色板很快地设计出三维图形以及三维交互软件。
GL: Graphics Library, 图形库
动物骨骼的可视化重建
立体云图
2020/12/11
4
虚拟现实
• 运用计算机所产生的高度模拟现实环境的、 具有交互性的高级用户界面。
三维军事战事训练
2020/12/11
5
• OpenGL
• OpenGL是一个图形应用程序编程接口。
•
API:
Application Programmer’s Interface,
Windows API函数库只用于Windows环境中。2020/12/1118OpenGL中的数据类型
2020/12/11
19
OpenGL函数的多种形式
glVertex{234}{sifd}(TYPE coords, …) glVertex{234}{sifd}v(TYPE *coords)
GLint i, j; GLfloat x, y, z, point[3];
2020/12/11
11
OpenGL库函数命名规则
OpenGL库函数
2020/12/11
(1) OpenGL核心库 (2) OpenGL实用库 (3) OpenGL辅助库 (4) OpenGL实用工具库 (5) Windows专用库 (6) Win32 API函数库
12
(1) OpenGL核心库
有些OpenGL函数最后带一个字母v,表示函数参数可用一个指 针指向一个向量(或数组)来替代一系列单个参数值。下面两种格式 都表示设置当前颜色为红色,二者等价。
glColor3f(1.0,0.0,0.0); float color_array[]={1.0,0.0,0.0}; glColor3fv(color_array); 除了以上基本命名方式外,还有一种带“*”星号的表示方法, 例如glColor*(),它表示可以用函数的各种方式来设置当前颜色。同 理,glVertex*v()表示用一个指针指向所有类型的向量来定义一系列 顶点坐标值。
核心库和实用库在所有的OpenGL版本中均有 实现。
2020/12/11
14
(3) OpenGL辅助库
函数名的前缀为 aux 这部分函数提供窗口管理、输入输出以及绘制 一些简单三维物体。 辅助库只能在windows平台上运行
2020/12/11
15
(4) OpenGL实用工具库
函数名的前缀为 glut 这部分函数主要提供基于窗口的工具,如:多 窗口绘制、空消息和定时器,以及一些较复杂的函 数。 由于glut中的窗口管理函数不依赖运行环境, 因此可在所有系统平台上运行。
三维图形程序设计
2020/12/11
1
Chap1 基础知识
2020/12/11
2
计算机图形学领域近年来三大活跃的发展方向
1. 科学计算可视化 2. 计算机动画 3. 虚拟现实
技术核心:三维图形
2020/12/11
3
科学计算可视化
• 运用计算机图形学的原理与方法,将科学与工程 计算所产生的大量的数据转换为图形、图像,以 直观的形式表现出来。
绘制单个顶点集 绘制多组独立的双顶点线段 设置RGBA模式下的环境光 设置光源位置 设置平面明暗处理模式 设置光滑明暗处理模式
三大部分:
(1) 函数说明文件 gl.h glu.h glut.h glaux.h
(2) 静态链接库文件 glu32.lib glut32.lib glaux.lib opengl32.lib
(3) 动态链接库文件 opengl32.dll glu32.dll glut32.dll glaux.dll