OpenGL开发工程师班 |
课.程.目.标 |
OpenGL目前已被广泛地用于可视化技术、实体造型、CAD/CAM、模拟仿真等诸多领域内,它是一套独立于操作系统和硬件环境的三维图形库,有着强大的图形功能和良好的跨平台移植能力,已成为事实上的图形标准。本课程对OpenGL的使用方法和三维图形编程技巧进行了详细的讲解。
|
班.级.规.模.及.环.境 |
为了保证培训效果,增加互动环节,我们坚持小班授课,每期报名人数限5人,多余人员安排到下一期进行。 |
开课时间和上课地点 |
上课地点:【上海】:同济大学(沪西)/新城金郡商务楼(11号线白银路站) 【深圳分部】:深圳大学成教院/ 电影大厦(地铁一号线大剧院站)【北京分部】:福鑫大楼/北京中山 【武汉分部】:佳源大厦(高新二路) 【南京分部】:金港大厦(和燕路) 【成都分部】:领馆区1号(中和大道)
最近开课时间(连续班/周末班/晚班):OpenGL开班时间:即将开课,详情请咨询客服。(请抓紧报名) |
实验设备和授课方式 |
☆课时: 共6天,36学时
☆外地学员:代理安排食宿(需提前预定)
☆合格学员免费颁发相关资格证书,提升您的职业资质
作为最早专注于嵌入式培训的专业机构,曙海嵌入式提供的证书得到本行业的广泛认
可,学员的能力得到大家的认同。
☆合格学员免费推荐工作
★实验设备请点击这儿查看★ |
.最.新.优.惠. |
☆在读学生凭学生证,可优惠500元。
|
.质.量.保.障. |
1、培训过程中,如有部分内容理解不透或消化不好,可免费在以后培训班中重听;
2、课程完成后,授课老师留给学员手机和Email,保障培训效果,免费提供半年的技术支持。
3、培训合格学员可享受免费推荐就业机会。 |
.课.程.大.纲.
|
OpenGL开发工程师班
第1部分 OpenGL简介
1.1 什么是OpenGL
1.2 一段简单的OpenGL代码
1.3 OpenGL函数的语法
1.4 OpenGL是一个状态机
1.5 OpenGL渲染管线
1.5.1 显示列表
1.5.2 求值器
1.5.3 基于顶点的操作
1.5.4 图元装配
1.5.5 像素操作
1.5.6 纹理装配
1.5.7 光栅化
1.5.8 片断操作
1.6 与OpenGL相关的函数库
1.6.1 包含文件
1.6.2 OpenGL实用工具库(GLUT)
1.7 动画
1.7.1 暂停刷新
1.7.2 动画=重绘+交换
1.8 OpenGL及其废弃机制
1.8.1 OpenGL渲染环境
1.8.2 访问OpenGL函数
第2部分 状态管理和绘制几何物体
2.1 绘图工具箱
2.1.1 清除窗口
2.1.2 指定颜色
2.1.3 强制完成绘图操作
2.1.4 坐标系统工具箱
2.2 描述点、直线和多边形
2.2.1 什么是点、直线和多边形
2.2.2 指定顶点
2.2.3 OpenGL几何图元
2.3 基本状态管理
2.4 显示点、直线和多边形
2.4.1 点的细节
2.4.2 直线的细节
2.4.3 多边形的细节
2.5 法线向量
2.6 顶点数组
2.6.1 步骤1:启用数组
2.6.2 步骤2:指定数组的数据
2.6.3 步骤3:解引用和渲染
2.6.4 重启图元
2.6.5 实例化绘制
2.6.6 混合数组
2.7 缓冲区对象
2.7.1 创建缓冲区对象
2.7.2 激活缓冲区对象
2.7.3 用数据分配和初始化缓冲区对象
2.7.4 更新缓冲区对象的数据值
2.7.5 在缓冲区对象之间复制数据
2.7.6 清除缓冲区对象
2.7.7 使用缓冲区对象存储顶点数组数据
2.8 顶点数组对象
2.9 属性组
2.10 创建多边形表面模型的一些提示
第3部分 视图
3.1 简介:用照相机打比方
3.1.1 一个简单的例子:绘制立方体
3.1.2 通用的变换函数
3.2 视图和模型变换
3.2.1 对变换进行思考
3.2.2 模型变换
3.2.3 视图变换
3.3 投影变换
3.3.1 透视投影
3.3.2 正投影
3.3.3 视景体裁剪
3.4 视口变换
3.4.1 定义视口
3.4.2 变换深度坐标
3.5 和变换相关的故障排除
3.6 操纵矩阵堆栈
3.6.1 模型视图矩阵堆栈
3.6.2 投影矩阵堆栈
3.7 其他裁剪平面
3.8 一些组合变换的例子
3.8.1 创建太阳系模型
3.8.2 创建机器人手臂
3.9 逆变换和模拟变换
第4部分 颜色
4.1 颜色感知
4.2 计算机颜色
4.3 RGBA和颜色索引模式
4.3.1 RGBA显示模式
4.3.2 颜色索引模式
4.3.3 在RGBA和颜色索引模式中进行选择
4.3.4 切换显示模式
4.4 指定颜色和着色模型
4.4.1 在RGBA模式下指定颜色
4.4.2 在颜色索引模式下指定颜色
4.4.3 指定着色模型
第5部分 光照
5.1 隐藏表面消除工具箱
5.2 现实世界和OpenGL光照
5.2.1 环境光、散射光、镜面光和发射光
5.2.2 材料颜色
5.2.3 光和材料的RGB值
5.3 一个简单的例子:渲染光照球体
5.4 创建光源
5.4.1 颜色
5.4.2 位置和衰减
5.4.3 聚光灯
5.4.4 多光源
5.4.5 控制光源的位置和方向
5.5 选择光照模型
5.5.1 全局环境光
5.5.2 局部的观察点或无限远的观察点
5.5.3 双面光照
5.5.4 镜面辅助颜色
5.5.5 启用光照
5.6 定义材料属性
5.6.1 散射和环境反射
5.6.2 镜面反射
5.6.3 发射光颜色
5.6.4 更改材料属性
5.6.5 颜色材料模式
5.7 和光照有关的数学知识
5.7.1 材料的发射光
5.7.2 经过缩放的全局环境光
5.7.3 光源的贡献
5.7.4 完整的光照计算公式
5.7.5 镜面辅助颜色
5.8 颜色索引模式下的光照
第6部分 混合、抗锯齿、雾和多边形偏移
6.1 混合
6.1.1 源因子和目标因子
6.1.2 启用混合
6.1.3 使用混合方程式组合像素
6.1.4 混合的样例用法
6.1.5 一个混合的例子
6.1.6 使用深度缓冲区进行三维混合
6.2 抗锯齿
6.2.1 对点和直线进行抗锯齿处理
6.2.2 使用多重采样对几何图元进行抗锯齿处理
6.2.3 对多边形进行抗锯齿处理
6.3 雾
6.3.1 使用雾
6.3.2 雾方程式
6.4 点参数
6.5 多边形偏移
第7部分 显示列表
7.1 为什么使用显示列表
7.2 一个使用显示列表的例子
7.3 显示列表的设计哲学
7.4 创建和执行显示列表
7.4.1 命名和创建显示列表
7.4.2 存储在显示列表里的是什么
7.4.3 执行显示列表
7.4.4 层次式显示列表
7.4.5 管理显示列表索引
7.5 执行多个显示列表
7.6 用显示列表管理状态变量
第8部分 绘制像素、位图、字体和图像
8.1 位图和字体
8.1.1 当前光栅位置
8.1.2 绘制位图
8.1.3 选择位图的颜色
8.1.4 字体和显示列表
8.1.5 定义和使用一种完整的字体
8.2 图像
8.3 图像管线
8.3.1 像素包装和解包
8.3.2 控制像素存储模式
8.3.3 像素传输操作
8.3.4 像素映射
8.3.5 放大、缩小或翻转图像
8.4 读取和绘制像素矩形
8.5 使用缓冲区对象存取像素矩形数据
8.5.1 使用缓冲区对象传输像素数据
8.5.2 使用缓冲区对象提取像素数据
8.6 提高像素绘图速度的技巧
8.7 图像处理子集
8.7.1 颜色表
8.7.2 卷积
8.7.3 颜色矩阵
8.7.4 柱状图
8.7.5 最小最大值
第9部分 纹理贴图
9.1 概述和示例
9.1.1 纹理贴图的步骤
9.1.2 一个示例程序
9.2 指定纹理
9.2.1 纹理代理
9.2.2 替换纹理图像的全部或一部分
9.2.3 一维纹理
9.2.4 三维纹理
9.2.5 纹理数组
9.2.6 压缩纹理图像
9.2.7 使用纹理边框
9.2.8 mipmap:多重细节层
9.3 过滤
9.4 纹理对象
9.4.1 命名纹理对象
9.4.2 创建和使用纹理对象
9.4.3 清除纹理对象
9.4.4 常驻纹理工作集
9.5 纹理函数
9.6 分配纹理坐标
9.6.1 计算正确的纹理坐标
9.6.2 重复和截取纹理
9.7 纹理坐标自动生成
9.7.1 创建轮廓线
9.7.2 球体纹理
9.7.3 立方图纹理
9.8 多重纹理
9.9 纹理组合器函数
9.10 在纹理之后应用辅助颜色
9.10.1 在禁用光照时使用辅助颜色
9.10.2 启用光照后的辅助镜面颜色
9.11 点块纹理
9.12 纹理矩阵堆栈
9.13 深度纹理
9.13.1 创建阴影图
9.13.2 生成纹理坐标并进行渲染
第10部分 帧缓冲
10.1 缓冲区及其用途
10.1.1 颜色缓冲区
10.1.2 清除缓冲区
10.1.3 选择用于读取和写入的颜色缓冲区
10.1.4 缓冲区的屏蔽
10.2 片断测试和操作
10.2.1 裁剪测试
10.2.2 alpha测试
10.2.3 模板测试
10.2.4 深度测试
10.2.5 遮挡查询
10.2.6 条件渲染
10.2.7 混合、抖动和逻辑操作
10.3 累积缓冲区
10.3.1 运动模糊
10.3.2 景深
10.3.3 柔和阴影
10.3.4 微移 331
10.4 帧缓冲区对象
10.4.1 渲染缓冲区
10.4.2 复制像素矩形
第11部分 分格化和二次方程表面
11.1 多边形分格化
11.1.1 创建分格化对象
11.1.2 分格化回调函数
11.1.3 分格化属性
11.1.4 多边形定义
11.1.5 删除分格化对象
11.1.6 提高分格化性能的建议
11.1.7 描述GLU错误
11.1.8 向后兼容性
11.2 二次方程表面:渲染球体、圆柱体和圆盘
11.2.1 管理二次方程对象
11.2.2 控制二次方程对象的属性
11.2.3 二次方程图元
第12部分 求值器和NURBS
12.1 前提条件
12.2 求值器
12.2.1 一维求值器
12.2.2 二维求值器
12.2.3 使用求值器进行纹理处理
12.3 GLU的NURBS接口
12.3.1 一个简单的NURBS例子
12.3.2 管理NURBS对象
12.3.3 创建NURBS曲线或表面
12.3.4 修剪NURBS表面
第13部分 选择和反馈
13.1 选择
13.1.1 基本步骤
13.1.2 创建名字栈
13.1.3 点击记录
13.1.4 一个选择例子
13.1.5 挑选
13.1.6 编写使用选择的程序的一些建议
13.2 反馈
13.2.1 反馈数组
13.2.2 在反馈模式下使用标记
13.2.3 一个反馈例子
第14部分 OpenGL高级技巧
14.1 错误处理
14.2 OpenGL版本
14.2.1 工具函数库版本
14.2.2 窗口系统扩展版本
14.3 标准的扩展
14.4 实现半透明效果
14.5 轻松实现淡出效果
14.6 使用后缓冲区进行物体选择
14.7 低开销的图像转换
14.8 显示层次
14.9 抗锯齿字符
14.10 绘制圆点
14.11 图像插值
14.12 制作贴花
14.13 使用模板缓冲区绘制填充的凹多边形
14.14 寻找冲突区域
14.15 阴影
14.16 隐藏直线消除
14.16.1 使用多边形偏移实现隐藏直线消除
14.16.2 使用模板缓冲区实现隐藏直线消除
14.17 纹理贴图的应用
14.18 绘制深度缓冲的图像
14.19 Dirichlet域
14.20 使用模板缓冲区实现生存游戏
14.21 glDrawPixels()和glCopyPixels()的其他应用
第15部分 OpenGL着色语言
15.1 OpenGL图形管线和可编程着色器
15.1.1 顶点处理
15.1.2 片断处理
15.2 使用GLSL着色器
15.2.1 着色器示例
15.2.2 OpenGL/GLSL接口
15.3 OpenGL着色语言
15.4 使用GLSL创建着色器
15.4.1 程序起点
15.4.2 声明变量
15.4.3 聚合类型
15.5 uniform块
15.5.1 在着色器中指定uniform变量
15.5.2 访问在uniform块中声明的uniform变量
15.5.3 计算不变性
15.5.4 语句
15.5.5 函数
15.5.6 在GLSL程序中使用OpenGL 状态值
15.6 在着色器中访问纹理图像
15.7 着色器预处理器
15.7.1 预处理器指令
15.7.2 宏定义
15.7.3 预处理器条件
15.7.4 编译器控制
15.8 扩展处理
15.9 顶点着色器的细节
15.10 变换反馈
15.11 片断着色器
|
|