出版社:清华大学出版社
年代:2009
定价:45.0
OpenScreneGraph(OSG)是一个基于工业图形标准OpenGL的高层次图形开发API接口,一款开放源代码的具备商业级别渲染能力的实时三维渲染引擎。本书可以作为计算机图形学或虚拟现实专业的高年级本科生和研究生教材使用,也可供三维图形学领域的专门研发人员,尤其是使用OpenScreneGraph进行项目开发和科学研究的人员参考学习。
第1章 初识OpenSceneGraph(OSG)1
1.1 场景图形初步2
1.1.1 场景图形的概念2
1.1.2 具体实现:三维渲染引擎2
1.1.3 主流渲染引擎介绍3
1.2 OpenSceneGraph概述4
1.2.1 诞生与发展4
1.2.2 优势与不足5
1.3 OpenSceneGraph的组成结构6
1.3.1 核心结构6
1.3.2 资源获取8
1.3.3 中文社区8
第2章 OSG的安装与调试9
2.1 快速安装和使用10
2.1.1 下载预编译包10
2.1.2 设置环境变量11
2.1.3 建立工程环境13
2.1.4 范例:第一个程序15
2.2 从源代码进行编译16
2.2.1 OSG源代码的获取与更新16
2.2.2 编译环境生成工具CMake19
2.2.3 基本编译选项22
2.2.4 高级编译选项25
2.3 调试输入与输出28
2.3.1 命令行输入28
2.3.2 调试输出29
第3章 开发预备知识31
3.1 基本数学组件32
3.1.1 二维与多维向量32
3.1.2 四元数35
3.1.3 矩阵37
3.1.4 包围体41
3.2 数组对象44
3.2.1 数据数组44
3.2.2 数据索引数组46
3.3 内存管理机制47
3.3.1 智能指针48
3.3.2 参照对象51
3.3.3 范例:智能指针的使用52
第4章 场景的组织结构55
4.1 节点的定义与种类56
4.1.1 场景图形BVH树56
4.1.2 节点的父子关系58
4.1.3 叶节点与组节点59
4.1.4 节点的功能与分类62
4.2 节点的访问65
4.2.1 访问器机制65
4.2.2 节点的遍历函数67
4.2.3 范例:节点属性访问器68
4.2.4 节点的更新与事件回调70
4.2.5 范例:使用回调实现旋转动画71
4.3 重要节点的功能实现74
4.3.1 空间变换节点74
4.3.2 范例:使用空间变换节点79
4.3.3 开关节点81
4.3.4 范例:使用开关节点82
4.3.5 细节层次节点(LOD)83
4.3.6 范例:使用LOD节点85
4.3.7 范例:节点代理86
第5章 绘制几何对象与文字89
5.1 几何元素的储存90
5.1.1 顶点属性90
5.1.2 顶点数组.显示列表和VBO91
5.1.3 构建几何体对象94
5.1.4 范例:简易房屋100
5.2 几何元素的绘制与访问103
5.2.1 几何体的绘制实现函数103
5.2.2 数据的更新显示108
5.2.3 几何体的更新回调109
5.2.4 范例:跃动的线110
5.2.5 信息获取和统计112
5.2.6 范例:使用仿函数遍历几何体113
5.3 位图的显示116
5.3.1 图像与图像的绘制116
5.3.2 范例:在场景中绘制位图119
5.4 文字的显示120
5.4.1 文字的绘制方法120
5.4.2 文字的绘制实现函数123
5.4.3 字符编码格式124
5.4.4 范例:一首古诗127
第6章 设置纹理和渲染属性131
6.1 渲染属性与模式132
6.1.1 OpenGL中的渲染状态设置132
6.1.2 节点的渲染状态集合132
6.1.3 渲染属性概览135
6.2 纹理与纹理属性139
6.2.1 纹理的实现方法139
6.2.2 纹理的分类143
6.2.3 范例:场景中的纹理设置146
6.2.4 范例:纹理的明细层次(Mipmap)149
6.3 属性的实现与访问152
6.3.1 将属性应用到场景152
6.3.2 渲染状态集回调153
6.3.3 范例:雾参数的实时更新153
6.4 OSG与OpenGL着色语言155
6.4.1 OpenGL着色语言155
6.4.2 着色器属性159
6.4.3 一致变量回调162
6.4.4 范例:在场景中使用GLSL着色语言162
第7章 观察我们的世界167
7.1 场景的观察与变换168
7.1.1 OpenGL中的变换168
7.1.2 相机节点171
7.1.3 范例:鸟瞰图相机174
7.2 图形设备接口176
7.2.1 图形设备与相机176
7.2.2 窗口与像素缓存(PixelBuffer)179
7.2.3 渲染到纹理(RenderToTexture)181
7.2.4 范例:将场景渲染到纹理183
7.3 视景器186
7.3.1 视景器的主要工作186
7.3.2 单视景器与多视景器188
7.3.3 范例:投影墙显示191
7.3.4 范例:多视景器系统192
7.3.5 视景器辅助部件194
第8章 人机交互与图形用户接口197
8.1 获取鼠标和键盘消息198
8.1.1 事件适配器198
8.1.2 动作适配器202
8.1.3 事件队列与处理器203
8.1.4 范例:处理键盘事件205
8.2 三维人机交互工具207
8.2.1 漫游器207
8.2.2 拖曳器210
8.2.3 范例:场景拖曳器的实现214
8.3 二维图形用户接口217
8.3.1 窗口设备217
8.3.2 Windows下窗口设备的实现219
8.3.3 范例:使用WindowsAPI构建渲染窗口221
第9章 场景中的动画效果225
9.1 场景动画基本组件226
9.1.1 关键帧226
9.1.2 采样与插值228
9.1.3 动画频道231
9.1.4 动画更新回调236
9.1.5 范例:关键帧路径动画239
9.2 刚体动画242
9.2.1 简单路径动画242
9.2.2 范例:使用路径动画回调244
9.2.3 动画的多频道融合245
9.2.4 范例:基本动画管理器246
9.3 角色与变形动画249
9.3.1 骨骼动画249
9.3.2 范例:骨骼运动252
9.3.3 变形体255
9.3.4 范例:对折硬纸257
9.4 渲染状态与纹理动画259
9.4.1 渐进动画(EaseMotion)259
9.4.2 范例:物体的淡入淡出262
9.4.3 纹理动画264
9.4.4 范例:纹理动画效果266
第10章 文件的读写机制269
10.1 数据文件支持机制270
10.1.1 文件格式概述270
10.1.2 OSG支持的文件格式272
10.1.3 基本文件读写接口277
10.2 文件读写插件279
10.2.1 插件的编写和注册279
10.2.2 插件的职责链机制283
10.2.3 文件读写回调285
10.3 插件设计方法287
10.3.1 范例:简单插件设计287
10.3.2 范例:文件读取进度290
10.4 OSG(即.osg)格式及其扩展292
10.4.1 封装器292
10.4.2 场景扩展库插件295
第11章 场景的动态更新与裁减297
11.1 场景的更新流程298
11.1.1 人机交互事件的更新298
11.1.2 用户请求与系统调度的更新299
11.2 场景的裁减流程300
11.2.1 裁减的意义与常用技术300
11.2.2 裁减访问器303
11.2.3 状态树与状态节点305
11.2.4 状态树的构建309
11.2.5 裁减回调312
11.3 数据的动态调度313
11.3.1 动态调度技术概述313
11.3.2 分页数据库314
11.3.3 范例:分页LOD节点316
11.3.4 分页图像库318
第12章 场景的多线程渲染319
12.1 多线程开发技术概述320
12.1.1 多线程开发的常用概念320
12.1.2 OpenThreads库简介321
12.1.3 范例:线程的创建与控制324
12.1.4 OSG操作线程325
12.2 基本场景渲染流程327
12.2.1 OSG状态机327
12.2.2 构建场景渲染树333
12.2.3 渲染树的优化排序338
12.2.4 范例:广告牌森林339
12.3 多种线程模型的讨论与实现341
12.3.1 渲染器与场景视图341
12.3.2 单线程模型347
12.3.3 多设备裁减/绘制模型348
12.3.4 多设备绘制模型349
12.3.5 多相机绘制模型350
12.3.6 数据变度351
第13章 开源社区与未来353
13.1 基于OSG的开源工程354
13.1.1 地形与地理信息354
13.1.2 特效实现356
13.1.3 扩展节点组件358
13.1.4 数据和场景管理358
13.1.5 其他语言封装360
13.2 开发者资源360
13.2.1 实用网址360
13.2.2 用户群体简介361
13.3 十条箴言363
主要参考资料365
OpenSceneGraph(OSG)是一个基于工业图形标准OpenGL的高层次图形开发API接口,一款开放源代码的、具备商业级别渲染能力的实时三维渲染引擎,在国内外均已得到广泛的应用,并且已经有越来越多的虚拟现实行业开发者加入到OSG开发的行列中来。本书的编写目的是:详细剖析OpenSceneGraph引擎的实现流程,包括其场景图形结构,几何体绘制和渲染状态的封装机制,场景漫游、交互和动画的实现方式,以及最为重要的对于三维渲染引擎的内部裁减、数据动态调度和多线程渲染机制的深入分析。本书对虚拟现实行业的爱好者和从业者、对愿意了解最新图形学相关技术发展,以及有志于开发自主知识产权的三维引擎系统的读者,均会大有助益。本书可以作为计算机图形学或虚拟现实专业的高年级本科生和研究生教材使用,也可供三维图形学领域的专门研发人员,尤其是使用OpenSceneGraph进行项目开发和科学研究的人员参考、学习。
基于工业图形标准OpenGL的高层次三维渲染引擎。
深入讲解OpenSceneGraph渲染引擎的内部实现及其应用。
详细介绍OpenSceneGraph渲染引擎的组织架构及其实现流程。
OpenGL架构评估编委会(ARB)独立撰稿人Pau·Martz先生强力推荐。
拥有丰富的社区资源和强大的网络支持,以方便读者进一步的学习和交流。
全面深入介绍OpenScemGraph基础知识及核心AP函数。
逐一探讨OpensceneGraph中的各个功能模块以及配置开发环境。
提供大量的示例程序演示,源代码分析以及丰富的实际开发经验。
读者将具备开发一歉基于OpenSceneGraph的虚拟现实系统的能力。
拥有丰富的社区资源和强大的网络支持,以方便读者进一步的学习和交流。