当前位置:首页 > 工业技术
OpenSceneGraph三维渲染引擎设计与实践
OpenSceneGraph三维渲染引擎设计与实践

OpenSceneGraph三维渲染引擎设计与实践PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:王锐,钱学雷编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302212232
  • 页数:367 页
图书介绍:OpenScreneGraph(OSG)是一个基于工业图形标准OpenGL的高层次图形开发API接口,一款开放源代码的具备商业级别渲染能力的实时三维渲染引擎。本书可以作为计算机图形学或虚拟现实专业的高年级本科生和研究生教材使用,也可供三维图形学领域的专门研发人员,尤其是使用OpenScreneGraph进行项目开发和科学研究的人员参考学习。
《OpenSceneGraph三维渲染引擎设计与实践》目录

第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编译环境生成工具CMake 19

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顶点数组、显示列表和VBO 91

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窗口与像素缓存(Pixel Buffer) 179

7.2.3渲染到纹理(Render To Texture) 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范例:使用Windows API构建渲染窗口 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渐进动画(Ease Motion) 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

相关图书
作者其它书籍
返回顶部