第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 buff
1