OpenSceneGraph 快速入门指导 对跨平台开源 场景图形API的 初步介绍 [美]Paul Martz著 王锐钱学雷译
OpenSceneGraph 快速入门指导 对跨平台开源 场景图形 API 的 初步介绍 [美] Paul Martz 著 王 锐 钱学雷 译
本书谨献给 每一个场景图形开发技术的初学者
本书谨献给 每一个场景图形开发技术的初学者
目录 目录 译者序.… 前言 vii 致谢 xi 1场景图形与OpenSceneGraph概述… l.1 OpenSceneGraph的历史 …… 1.2OSG的安装 3 1.2.1硬件需求 …… 4 1.2.2 Apple Mac OS X 1.2.3 Fedora Linux 1.2.4 Microsoft Windows 1.2.5检查OSG的安装 6 l.3运行osgviewer ,。。。。+,+。,。。+。4,。,。。。。 1.3.1获取帮助 ……………………………………… 8 1.3.2显示模式 9 1.3.3环境变量 10 1.3.4统计信息显示 1.3.5记录动画 12 1.4编辑OSG程序 13 1.5场景图形初步 15 1.5.1场景图形特性 17
i 目录 目录 译者序………………………………………………………………….. v 前言 ………………………………………………………………….. vii 致谢 ………………………………………………………………….. xi 1 场景图形与 OpenSceneGraph 概述 …………………………… 1 1.1 OpenSceneGraph 的历史 ……………………………………….. 1 1.2 OSG 的安装 …………………………………………………….. 3 1.2.1 硬件需求 ……………………………………………… 4 1.2.2 Apple Mac OS X ……………………………………. 5 1.2.3 Fedora Linux …………………………………………. 5 1.2.4 Microsoft Windows …………………………………... 5 1.2.5 检查 OSG 的安装 …………………………………….. 6 1.3 运行 osgviewer …………………………………………………. 7 1.3.1 获取帮助 ……………………………………………... 8 1.3.2 显示模式 ……………………………………………... 9 1.3.3 环境变量 …………………………………………….. 10 1.3.4 统计信息显示 ……………………………………….. 11 1.3.5 记录动画 …………………………………………….. 12 1.4 编辑 OSG 程序 ………………………………………………... 13 1.5 场景图形初步 …………………………………………………. 15 1.5.1 场景图形特性 ……………………………………….. 17
OpenSceneGraph快速入门指导 1.5.2场景图形渲染方式 ………………………… 19 1.6 OpenSceneGraph概览..... 20 1.6.1设计和体系 21 1.6.2命名习惯 21 1.6.3组件 22 2建立一个场景图形 36 2.1内存管理 。。。。,。。。 。。。 36 2.l.1 Referenced类 39 2.l.2 ref ptr◇模板类 。。 39 2.1.3内存管理示例 40 2.2叶节点(Geode)和几何信息 43 2.2.1 Geometry类概述 48 2.3组节点(Group) 52 2.3.1子接口 53 2.3.2父接口 ……… 55 2.3.3变换节点(Tranform) 56 2.3.4细节层次节点(LOD) 60 2.3.5开关节点(Switch) 63 2.4渲染状态(Rendering State) 64 2.4.1渲染属性(Attribute)和渲染模式(Mode) 66 2.4.2状态继承 68
OpenSceneGraph 快速入门指导 ii 1.5.2 场景图形渲染方式 ………………………………….. 19 1.6 OpenSceneGraph 概览 ………………………………………... 20 1.6.1 设计和体系 …………………………………………. 21 1.6.2 命名习惯 …………………………………………….. 21 1.6.3 组件 ………………………………………………….. 22 2 建立一个场景图形 ……………………………………………... 36 2.1 内存管理 ………………………………………………………... 36 2.1.1 Referenced 类 ……………………………………….... 39 2.1.2 ref_ptr<>模板类 ……………………………………… 39 2.1.3 内存管理示例 ………………………………………… 40 2.2 叶节点(Geode)和几何信息 ………………………………… 43 2.2.1 Geometry 类概述 ……………………………………... 48 2.3 组节点(Group) ………………………………………………. 52 2.3.1 子接口 ………………………………………………… 53 2.3.2 父接口 ………………………………………………… 55 2.3.3 变换节点(Tranform) ………………………………. 56 2.3.4 细节层次节点(LOD) ……………………………… 60 2.3.5 开关节点(Switch) …………………………………. 63 2.4 渲染状态(Rendering State) ………………………………… 64 2.4.1 渲染属性(Attribute)和渲染模式(Mode) …… 66 2.4.2 状态继承 …………………………………………… 68
目录 2.4.3渲染状态设置示例 70 2.4.4纹理映射 76 2.4.5光照 80 2.5文件I/0 87 2.5.1接口 88 2.5.2插件的搜索和注册 90 2.6 NodeKit与osgText 91 2.6.1 osgText组件 92 2.6.2使用osgText 92 2.6.3文字示例代码 97 2.6.4.0sg文件格式 …………………………… 98 3在用户程序中使用OpenSceneGraph 104 3.1渲染 ……… 104 3.l.1 Viewer类 106 3.1.2 Simple Viewer Composite Viewer ………… 109 3.2动态更改 110 3.2.1数据变度 111 3.2.2▣调 ……… 112 3.2.3 NodeVisitor类 118 3.2.4用户选择 ……… 121
iii 目录 2.4.3 渲染状态设置示例 …………………………….…...... 70 2.4.4 纹理映射 ………………………………………..……. 76 2.4.5 光照 …………………………………………..…… 80 2.5 文件 I/O ……………………………………………………… 87 2.5.1 接口 …………………………………………… 88 2.5.2 插件的搜索和注册 …………………………… 90 2.6 NodeKit 与 osgText ………………………………………… 91 2.6.1 osgText 组件 ……………………………………… 92 2.6.2 使用 osgText ……………………………………… 92 2.6.3 文字示例代码 ………………………………….… 97 2.6.4 .osg 文件格式 ……………………………………… 98 3 在用户程序中使用 OpenSceneGraph …………………… 104 3.1 渲染 …………………………………………………………… 104 3.1.1 Viewer 类 ………………………………………..… 106 3.1.2 SimpleViewer 和 CompositeViewer …………….… 109 3.2 动态更改 …………………………………………………… 110 3.2.1 数据变度 ………………………………………….… 111 3.2.2 回调 …………………………………………….…… 112 3.2.3 NodeVisitor 类 …………………………………… 118 3.2.4 用户选择 ………………………………………….… 121