gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15944
  • QQ554730525
  • 铜币25336枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:30929回复:112

OpenSceneGraph三维渲染引擎设计与实践【PDF下载】

楼主#
更多 发布于:2011-08-29 12:57
<p><font face="Verdana"></font> </p>
<p>PDF下载地址:</p>
<p>
本部分内容设定了隐藏,需要回复后才能看到
</p>
<p><font face="Verdana"></font> </p>
<p> </p>
<p>文件大小:22.23MB</p>
<p>文件类型:PDF</p>
<p> </p>
<p>书籍介绍:</p>
<p>+++++++++++++++++++++++</p>
<h2>前言</h2>
<div class="mc">
<div style="height: auto; overflow: hidden;" class="con">  OpenSceneGraph(OSG)场景图形系统是一个基于工业标准OpenGL的软件接口,它让程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。本书是一本基于OSG 2.8版本的编程入门指南书籍,也通用于OSG 2.x系列及以后版本的开发。<br/>  从OSG正式发布以来,OSG可以阅读的文档资料只有源代码。值得庆幸的是,OSG的源代码中提供了一些相关的程序示例,通过它们,用户可以学习如何使用OSG编程实现虚拟系统软件的功能。分析示例程序很艰辛,并非一朝一夕的事情。笔者通过对OSG大量示例程序和源代码的分析及丰富的实际应用经验,逐渐对OSG的开发流程及核心有了一定的了解。随着OSG的不断发展,越来越多的人开始关注、学习OSG和应用OSG开发,但由于OSG本身文档资料缺乏,作为初学者,很难在短时间内通过分析示例程序和源代码得到提高。笔者长期置身于OSG开发,作为OsgChina(http://www. OsgChina.org)中国官方网站管理员,同时也是OSG国内各大论坛OSG版面的版主,在与开发者交流的过程中,发现初学者普遍存在入门难、应用开发难等问题,于是写了《OpenSceneGraph三维渲染引擎编程指南》一书。<br/>  本书首先介绍了OSG的历史和开源组织、如何获取和正确安装OSG以及一些简单示例程序的运行;然后深入探讨了一些OSG的数学基础、内部管理机制和实用技术,主要包括坐标系统、内存管理、场景树结构、图形节点的概念和分类、OSG的状态属性和模式控制、纹理映射、光照和材质、I/O接口、场景渲染控制、更新回调、文字、动画阴影及粒子系统添加等功能的具体介绍;最后探讨了关于OSG地形与地理信息的应用,主要包括VirtualPlanetBuilder和OSGGIS的使用方法,还提出了关于大规模地形渲染的解决方案。<br/>  通过本书,读者不但可以学习到OSG在虚拟现实开发中最重要、最实用的知识和技能,还可学习到一些开源软件使用的基本技法。在学习完本书后,读者将会对OSG有一个深入全面的了解,同时也将具备开发一个基于OSG的虚拟现实系统的能力。<br/>  本书参阅了国内外大量的最新图形开发和虚拟现实实用技术的资料,所讲解的内容都是基于图形开发的最新方法和技术。书中提供了大量丰富、新颖、实用的原创示例程序,并经过严格的测试,可以完全应用到实际工程或者系统开发中。由于作者能力有限,书中难免存在错误和不足之处,恳请广大读者批评指正。同时,欢迎到OsgChina中国官方讨论区(http://bbs.OsgChina.org)发帖提问,笔者会尽量在第一时间回复相关的问题。<br/>  本书能够顺利完成并出版,得到了这些人大量的帮助:<br/>  感谢编辑,他对本书倾注了大量的心血,给了我巨大的帮助和指导。<br/>  感谢我的师兄刘更代和徐明亮,没有他们,难以想象这本书什么时候才能完成并出版。<br/>  感谢我的师兄杨石兴和曹明亮,他们引导我进入OSG的开发领域。<br/>  感谢我的爸爸、妈妈和姐姐,他们给了我生活自主的空间,让我能够尽情地飞翔在自己的天空。<br/>  感谢我的女友雄英,她每天都给我很多鼓励和帮助。 </div></div>
<p> </p>
<p> </p>
<p> 《OpenSceneGraph三维渲染引擎编程指南》是一本全面深入介绍OpenSceneGraph(OSG)基础及核心API函数的入门教程。OpenSceneGraph(OSG)是一个基于工业标准OpenGL跨平台的三维开源场景图形系统应用程序开发接口(API)。作为一个高性能的图形开发引擎,它在3D程序开发中扮演着重要的角色。<br/>  《OpenSceneGraph三维渲染引擎编程指南》按照OSG的设计结构体系,逐一深入讨论OSG的各个功能模块。首先介绍了OSG的历史和开源组织,以及配置开发环境;然后深入探讨OSG的核心库、NodeKits工具库、OSG插件库、互操作库及扩展库等,重点分析了如何将OSG集成到用户应用开发程序的核心功能及各种应用技术,主要包括场景组织和管理、场景数据优化、交互操作及数据实时动态更新等技术;最后探讨了关于OSG地形与地理信息的应用。<br/>  《OpenSceneGraph三维渲染引擎编程指南》要求读者有比较好的C++基础知识和一些3D数学基础知识,适合所有对OpenGL和OSG编程感兴趣的读者。</p>
<p> </p>
<h2>目录 </h2>
<div class="mc">
<div style="height: auto; overflow: hidden;" class="con">第1章 OpenSceneGraph概述 1<br/>1.1 OpenSceneGraph简介 2<br/>1.1.1 什么是OpenSceneGraph 2<br/>1.1.2 OpenSceneGraph的历史和发展 2<br/>1.1.3 OSG中国 3<br/>1.1.4 OSG组成模块 3<br/>1.2 开发的预备知识 5<br/>1.3 OSG的安装及编译 6<br/>1.3.1 OSG的获取及安装 6<br/>1.3.2 编译OSG 7<br/>1.3.3 OSG邮件列表 13<br/>1.4 OSG基础 14<br/>1.4.1 开发环境设置 14<br/>1.4.2 OSG中的HelloWorld工程 14<br/>1.4.3 OSG实用工具——场景浏览器osgViewer 17<br/>1.4.4 OSG实用工具——版本信息查看器osgVersion 21<br/>1.4.5 OSG实用工具——场景图形压缩归档工具osgArchive 21<br/>1.4.6 OSG实用工具——数据转换工具osgConv 23<br/><br/>第2章 OpenSceneGraph数学基础 27<br/>2.1 坐标系统 28<br/>2.2 坐标系变换 29<br/>2.2.1 世界坐标系-物体坐标系变换 30<br/>2.2.2 物体坐标系-世界坐标系变换 30<br/>2.2.3 世界坐标系-屏幕坐标系变换 32<br/>2.3 向量、矩阵及四元数 34<br/>2.3.1 向量 34<br/>2.3.2 矩阵 35<br/>2.3.3 四元数 36<br/>2.3.4 矩阵与四元数之间的转换 37<br/><br/>第3章 场景的组织及渲染 41<br/>3.1 OSG场景树 42<br/>3.1.1 OSG场景树节点 42<br/>3.1.2 OSG中的父节点与子节点 42<br/>3.2 Geode 43<br/>3.2.1 Billboard节点 43<br/>3.2.2 布告板示例 44<br/>3.3 Group 48<br/>3.3.1 位置变换节点 48<br/>3.3.2 位置变换节点示例 49<br/>3.3.3 矩阵变换节点 50<br/>3.3.4 矩阵变换节点示例 51<br/>3.3.5 自动对齐节点 53<br/>3.3.6 自动对齐节点示例 53<br/>3.3.7 开关节点 56<br/>3.3.8 开关节点示例 57<br/>3.3.9 细节层次节点 58<br/>3.3.10 细节层次节点示例 59<br/>3.3.11 分页细节层次节点 61<br/>3.3.12 分页细节层次节点示例 61<br/>3.3.13 替代节点 63<br/>3.3.14 替代节点示例 64<br/>3.3.15 遮挡裁剪节点 66<br/>3.3.16 遮挡裁剪节点示例 67<br/>3.3.17 坐标系节点 70<br/>3.3.18 坐标系节点示例 71<br/>3.4 场景中节点的拷贝——osg::CopyOp类 73<br/>3.4.1 自定义场景拷贝示例(一) 73<br/>3.4.2 自定义场景拷贝示例(二) 79<br/><br/>第4章 OSG中几何体的绘制 83<br/>4.1 场景基本绘图类 84<br/>4.2 基本几何体的绘制 86<br/>4.2.1 几何体类 86<br/>4.2.2 基本几何体绘制示例 87<br/>4.2.3 索引绑定几何体绘制示例 90<br/>4.3 使用OSG中预定义的几何体 93<br/>4.3.1 osg::Shape类 93<br/>4.3.2 osg::ShapeDrawable类 94<br/>4.3.3 网格化类 94<br/>4.3.4 预定义几何体示例 95<br/>4.4 多边形分格化 97<br/>4.5 几何体操作 101<br/>4.5.1 简化几何体 102<br/>4.5.2 简化几何体示例 102<br/>4.5.3 Delaunay三角网绘制 104<br/>4.5.4 Delaunay三角网绘制示例 105<br/>4.5.5 三角带绘制 107<br/>4.5.6 三角带绘制示例 108<br/>4.5.7 生成顶点法向量 111<br/>4.5.8 生成顶点法向量示例 112<br/><br/>第5章 渲染状态、纹理与光照 115<br/>5.1 渲染状态 116<br/>5.1.1 osg::StateSet类 116<br/>5.1.2 渲染属性和渲染模式 117<br/>5.1.3 状态继承 118<br/>5.1.4 渲染状态示例 119<br/>5.2 纹理映射 121<br/>5.2.1 二维纹理映射 123<br/>5.2.2 二维纹理映射示例 126<br/>5.2.3 多重纹理映射 129<br/>5.2.4 多重纹理映射示例 129<br/>5.2.5 Mipmap纹理映射 131<br/>5.2.6 Mipmap纹理映射示例 132<br/>5.2.7 TextureRectangle纹理映射 138<br/>5.2.8 TextureRectangle纹理映射示例 139<br/>5.2.9 自动生成纹理坐标 142<br/>5.2.10 自动生成纹理坐标示例 142<br/>5.2.11 计算纹理坐标 144<br/>5.2.12 计算纹理坐标示例 145<br/>5.2.13 立方图纹理 149<br/>5.2.14 立方图纹理示例 150<br/>5.2.15 渲染到纹理 155<br/>5.2.16 渲染到纹理示例 155<br/>5.2.17 一维纹理 162<br/>5.2.18 一维纹理示例 162<br/>5.2.19 三维纹理映射 164<br/>5.2.20 三维纹理映射示例 166<br/>5.3 光照 171<br/>5.3.1 osg::Light类 171<br/>5.3.2 osg::LightSource类 172<br/>5.3.3 场景中使用光源 173<br/>5.3.4 简单光源示例 174<br/>5.3.5 聚光灯示例 176<br/>5.4 材质 182<br/>5.4.1 材质类 182<br/>5.4.2 材质类示例 184<br/><br/>第6章 文件的读写 187<br/>6.1 OSG支持的文件格式 188<br/>6.1.1 三维模型文件格式 188<br/>6.1.2 图片及视频文件格式 189<br/>6.1.3 打包及网络传输格式 189<br/>6.1.4 字体文件格式 190<br/>6.1.5 伪插件文件格式 190<br/>6.1.6 .osg文件和.ive文件 190<br/>6.2 文件读取的流程 191<br/>6.2.1 osgDB库 191<br/>6.2.2 文件的读取与保存 191<br/>6.2.3 文件读写示例 192<br/>6.2.4 文件读写进度 194<br/>6.2.5 文件读取进度示例 195<br/>6.3 插件的工作机制 198<br/>6.3.1 插件的搜索和注册 198<br/>6.3.2 osgArchive读写流程 199<br/>6.3.3 自定义文件插件 200<br/>6.3.4 自定义文件格式读写插件示例 202<br/>6.4 读写中文文件名及中文路径问题 206<br/>6.5 osgEXP导出文件 209<br/><br/>第7章 场景图形的工作机制 213<br/>7.1 内存管理 214<br/>7.1.1 Referenced类 214<br/>7.1.2 ref_ptr<>模板类 214<br/>7.1.3 智能指针 215<br/>7.2 访问器机制 215<br/>7.2.1 访问器设计模式 215<br/>7.2.2 osg::NodeVisitor类 216<br/>7.2.3 顶点访问器示例 217<br/>7.2.4 纹理访问器示例 220<br/>7.2.5 节点访问器示例 223<br/>7.3 回调机制 227<br/>7.3.1 osg::NodeCallback类 227<br/>7.3.2 节点回调示例 228<br/>7.3.3 事件回调示例 230<br/>7.3.4 文件读取回调示例 232<br/>7.4 数据变量 235<br/><br/>第8章 场景图形管理 237<br/>8.1 视图与相机 238<br/>8.1.1 osg::Camera类 238<br/>8.1.2 裁剪平面示例(一) 243<br/>8.1.3 裁剪平面示例(二) 244<br/>8.1.4 单视图与相机 246<br/>8.1.5 宽屏变形示例 247<br/>8.1.6 单视图多相机渲染示例 249<br/>8.1.7 多视图与相机 252<br/>8.1.8 多视图相机渲染示例 253<br/>8.1.9 多视图多窗口渲染示例 257<br/>8.2 场景交互与场景漫游 259<br/>8.2.1 osgGA库 259<br/>8.2.2 键盘事件消息处理 261<br/>8.2.3 抓图示例 262<br/>8.2.4 场景漫游 265<br/>8.2.5 自定义操作器场景漫游示例 266<br/>8.2.6 路径漫游 275<br/>8.2.7 路径漫游示例 276<br/>8.3 交运算与对象选取 277<br/>8.3.1 交运算 278<br/>8.3.2 显示位置及拾取示例 280<br/>8.3.3 对象选取示例 285<br/><br/>第9章 OSG文字 289<br/>9.1 osgText 290<br/>9.1.1 osgText::Text类 290<br/>9.1.2 osgText::Font类 293<br/>9.1.3 显示汉字示例 294<br/>9.1.4 各种文字效果(边框、阴影及颜色倾斜)示例 296<br/>9.1.5 HUD显示汉字示例 300<br/>9.1.6 渐变文字 303<br/>9.1.7 渐变文字示例 304<br/>9.2 osgText3D 306<br/>9.2.1 osgText::Text3D类 307<br/>9.2.2 3D汉字显示示例 307<br/><br/>第10章 OSG动画与声音 311<br/>10.1 路径动画 312<br/>10.1.1 osg::AnimationPath类 312<br/>10.1.2 osg::AnimationPathCallback类 314<br/>10.1.3 路径动画控制及显示示例 314<br/>10.1.4 路径的导出示例 318<br/>10.1.5 路径的导入示例 321<br/>10.2 帧动画 323<br/>10.2.1 osg::Sequence类 324<br/>10.2.2 帧动画显示与控制示例 325<br/>10.3 骨骼动画osgCal 329<br/>10.3.1 Cal3D简介及Cal3D导出 329<br/>10.3.2 编译osgCal 330<br/>10.3.3 骨骼动画osgCal示例 331<br/>10.4 三维立体声音osgAL 336<br/>10.4.1 OpenAL简介 336<br/>10.4.2 osgAL编译 337<br/>10.4.3 osgAL声音播放示例 338<br/>10.4.4 osgAL声音动态加载及播放示例 343<br/><br/>第11章 OSG粒子系统与阴影 351<br/>11.1 粒子系统 352<br/>11.1.1 粒子系统的主要模块 352<br/>11.1.2 粒子系统的模拟过程 354<br/>11.1.3 雾效模拟示例 354<br/>11.1.4 雪效模拟示例 357<br/>11.1.5 雨效模拟示例 359<br/>11.1.6 爆炸模拟示例 360<br/>11.1.7 自定义粒子系统示例(一) 362<br/>11.1.8 自定义粒子系统示例(二) 365<br/>11.1.9 粒子系统的读取与保存 369<br/>11.2 OSG阴影 372<br/>11.2.1 osgShadow库 372<br/>11.2.2 阴影示例 374<br/><br/>第12章 osgFX扩展库及osgSim扩展库 381<br/>12.1 osgFX扩展库 382<br/>12.1.1 异性光照特效 382<br/>12.1.2 异性光照特效示例 383<br/>12.1.3 凹凸贴图特效 384<br/>12.1.4 凹凸贴图特效示例 386<br/>12.1.5 卡通渲染特效 387<br/>12.1.6 卡通渲染特效示例 388<br/>12.1.7 刻线特效 390<br/>12.1.8 刻线特效示例 390<br/>12.1.9 立方图镜面高光特效 392<br/>12.1.10 立方图镜面高光特效示例 393<br/>12.2 osgSim扩展库 394<br/>12.2.1 DOFTransform类 394<br/>12.2.2 osgSim::Impostor类 397<br/>12.2.3 osgSim::ImpostorSprite类 398<br/>12.2.4 osgSim::MultiSwitch类 399<br/>12.2.5 osgSim::OverlayNode类 400<br/>12.2.6 osgSim::VisibilityGroup类 402<br/><br/>第13章 OSG地形与地理信息 403<br/>13.1 VirtualPlanetBuilder 404<br/>13.1.1 VirtualPlanetBuilder简介 404<br/>13.1.2 编译与参数说明 407<br/>13.1.3 使用实例及说明 411<br/>13.2 海量地形生成解决方案 412<br/>13.3 osgGIS 414<br/>13.3.1 osgGIS简介 414<br/>13.3.2 osgGIS编译 414<br/>13.4 osgGIS实用工具 415<br/>13.4.1 osggis_build 415<br/>13.4.2 osggis_mapper 416<br/>13.4.3 osggis_makelayer 416<br/>13.4.4 osggis_simple 418<br/>13.4.5 osggis_viewer 419<br/>13.5 GIS坐标系 419<br/>13.5.1 GIS中坐标系的定义 419<br/>13.5.2 地理坐标系与投影坐标系 420<br/>参考文献 423 </div></div>
<p> <br/></p>

[此贴子已经被作者于2011-08-31 22:05:39编辑过]
喜欢0 评分0
sulin
路人甲
路人甲
  • 注册日期2003-07-28
  • 发帖数158
  • QQ
  • 铜币501枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2011-08-30 23:21
<p>不能下载,文件不存在啊</p>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15944
  • QQ554730525
  • 铜币25336枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2011-08-31 22:06
 楼上,已经修复地址
举报 回复(0) 喜欢(0)     评分
xujiayi
路人甲
路人甲
  • 注册日期2011-11-17
  • 发帖数1
  • QQ
  • 铜币102枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2011-11-17 21:35
好东西啊
赶快下在学习下。
举报 回复(0) 喜欢(0)     评分
ytsmmm88
路人甲
路人甲
  • 注册日期2011-12-08
  • 发帖数3
  • QQ
  • 铜币109枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2011-12-08 13:27
赶快下在学习下。
举报 回复(0) 喜欢(0)     评分
tedasd
路人甲
路人甲
  • 注册日期2012-02-29
  • 发帖数2
  • QQ
  • 铜币106枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2012-03-27 22:48
<p>学习哈</p>
<p> </p>
举报 回复(0) 喜欢(0)     评分
bbg5199
路人甲
路人甲
  • 注册日期2009-04-29
  • 发帖数14
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2012-04-09 18:55
楼主分享光荣 谢谢了
举报 回复(0) 喜欢(0)     评分
xinye1031
路人甲
路人甲
  • 注册日期2005-03-31
  • 发帖数8
  • QQ
  • 铜币127枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2012-05-14 11:07
<p>谢谢楼主分享,</p>
举报 回复(0) 喜欢(0)     评分
pos_ufo
路人甲
路人甲
  • 注册日期2012-11-24
  • 发帖数1
  • QQ
  • 铜币102枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2012-11-24 12:42
学习学习下
举报 回复(0) 喜欢(0)     评分
459697990
路人甲
路人甲
  • 注册日期2012-12-21
  • 发帖数12
  • QQ
  • 铜币135枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2012-12-21 16:17
<p>楼主,本人刚本3S,这个对我有帮助么,公司要求独立开发GIS,而且很急</p>
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部