OpenScene Graph程序设计 www.osgChina.ong 第一章:绪论 免费的,吸引了很多的眼球。同时官方出书是为了有更多的人使用OSG,应该多多免费才是。 高级搜索 搜索帮胞1G0 包含以下全部的字词 OpenSceneGraph 10项结果,G00ge搜索 包含以下的完整字句 包含至少一个下列字词 不包括以下字词 搜索网页语言是 任何语言 搜索网页位置于: 任意区城 仅?显示使用以下文件格式的结果 住何格式 返回在下列时间段内首次查看的网页 任何格式 Adobe Acrobat PDF (.pdf) 查询字词位于 Adobe Postscript (ps) Autodesk DWF (dwf) 仅授索以下网站或网堪 Google地球KM(kml) Google地球KMZ(km2 搜索结果应 Microsoft Excel (xis) Microsoft Powerpoint (ppt) RTF格式 Shockwave Flash (.swf) 图1.1 Google中的高级搜索 另外就剩下中文的书籍了。在这里我不得不悲伤起来,Arrayl的书并没有完成,他大概己经写了很多了,最 终我得到了不好的消息称他的书不想再写下去了,大概是别的更重要的事情耽误了。本来我也想写一本书 的在此前,后来被Arrayl的激情打消了,所以真是个坏消息。 中文的书籍中最出名的应该数《Step Into Open SceneGraph.》了,那是我在去年四月份写的,当时还没有太 多的人使用0SG,可惜的是当时的稳定版本是1.20,有点儿老了,而且我并没有及时更新到2.20。那本书卖 的很好,谢谢大家的关心与支持。那本书的电子版与代码也在这本随书的光盘当中。里面的内容很少,写 的也不好,这本书也起不到亡羊补牢的作用,只能为OSG初学者提供绵薄之力。 再者就是各大网站上面的文章了,其实有很多问题是网站上面解决不了的,这样我们就需要更多的努力自 己去解决问题,然后把经验分享给大家。这需要在校学生的努力。然而在国内技术共享这个层次做的很不 好。 1.2.20SG的网站 OSG的官方网站就是著名的www.openscenegraph..org,我们在早期查阅资料就全靠它了。在三年前感觉它 就是本圣经,什么都有,东西很多,那时候还没有改版,左边一叠文件夹,右边是窗口,感觉就很多东西, 好像在去年的时候改的版,更好看了,用的Trac。 中文官网就是www.osg China.org了,这是国内爱好者共同努力的结果,有着不少人的艰辛。记得为了实现 我大年三十发布的诺言,忙了好几个夜,初一都是四点回的家,当时是在网吧里做这些工作的,由于环境 配置很复杂,所以不敢轻易下机,一搞就是十几小时。里面附了一个论坛bbs.osgChina.org,很遗憾的说由 于我没有什么管理经验,选的服务器质量也不行,给大家访问其实带来了很多的不便,在以后我会尽快换 掉服务器的,放心吧。 13
OpenSceneGraph 程序设计 www.osgChina.org 第一章:绪论 13 免费的,吸引了很多的眼球。同时官方出书是为了有更多的人使用OSG,应该多多免费才是。 图1.1 Google中的高级搜索 另外就剩下中文的书籍了。在这里我不得不悲伤起来,Array的书并没有完成,他大概已经写了很多了,最 终我得到了不好的消息称他的书不想再写下去了,大概是别的更重要的事情耽误了。本来我也想写一本书 的在此前,后来被Array的激情打消了,所以真是个坏消息。 中文的书籍中最出名的应该数《Step Into OpenSceneGraph》了,那是我在去年四月份写的,当时还没有太 多的人使用OSG,可惜的是当时的稳定版本是1.20,有点儿老了,而且我并没有及时更新到2.20。那本书卖 的很好,谢谢大家的关心与支持。那本书的电子版与代码也在这本随书的光盘当中。里面的内容很少,写 的也不好,这本书也起不到亡羊补牢的作用,只能为OSG初学者提供绵薄之力。 再者就是各大网站上面的文章了,其实有很多问题是网站上面解决不了的,这样我们就需要更多的努力自 己去解决问题,然后把经验分享给大家。这需要在校学生的努力。然而在国内技术共享这个层次做的很不 好。 1.2.2 OSG 的网站 OSG 的官方网站就是著名的 www.openscenegraph.org,我们在早期查阅资料就全靠它了。在三年前感觉它 就是本圣经,什么都有,东西很多,那时候还没有改版,左边一叠文件夹,右边是窗口,感觉就很多东西, 好像在去年的时候改的版,更好看了,用的 Trac。 中文官网就是 www.osgChina.org 了,这是国内爱好者共同努力的结果,有着不少人的艰辛。记得为了实现 我大年三十发布的诺言,忙了好几个夜,初一都是四点回的家,当时是在网吧里做这些工作的,由于环境 配置很复杂,所以不敢轻易下机,一搞就是十几小时。里面附了一个论坛 bbs.osgChina.org,很遗憾的说由 于我没有什么管理经验,选的服务器质量也不行,给大家访问其实带来了很多的不便,在以后我会尽快换 掉服务器的,放心吧
OpenSceneGraph程序设计 www.osgChina.ong 第一章:绪论 关于OSG的论坛有很多,其中最好的有两个,一个是FLMN先生的VRDEV[www..vrdev.net),VRDEV在早先是 OSG中文资料的唯一来源,我帮助FLMN一直管理至今。另一个是VRCHINA[www.vrchina.net),VRCHINA的名 字很大,内容也很多,OSG只是其中一块,但是在FLYSKY的管理之下,蒸蒸日上,发展也很好。 1.2.30SG的教程 OSG官方网站上本身有教程的介绍链接,里面有很多关于OSG的教程,大部分都是可以直接运行的,可以 在这里查看[http:/www.ope nscenegraph.org/projects/,osg/wiki/Support/Tutorials]。 其实最好的教程是OSG自带的例子,在资料文件中会有OSG的相关的例子,里面大多数的例子都很有实用 价值,我们学习OSG都是从它而来,而且例子的难度有大有小,方面极广,坦而言之,如果里面的例子都 看通了,对OSG的理解会上升很多个层次。在bbs.osgChina.org上有Hesicong为部分例子做的注释。 在这里要介绍一下海军教程,海军教程也是最早的OsG教程之一,现在己经更新到了2.20版本且被Array 译了出来。可以到bbs.osgChina.org上查看译的版本以及下载相关的源码。在这里要特别说一下,由于海军 教程是从老版本过渡而来,故在代码风格上使用的都是老版本的风格,有可能新版本当中有更多的简化, 但是这种简化并未在其中表现出来。 在早期还有一个教程,就是FLMN的flmnwere,在随书光盘的FLMN的学习光盘当中应该可以找到,现在应 该己经下载不到这个光盘了,绝版本了。FLMN很忙,估计下一版本的光盘很久后才会面世。 1.2.4邮件列表 OSG邮件列表是一个非常重要的地方,最新的知识以及相关的新闻和问题都可以在上面发问,可惜的是只 有英文的。在官网邮件列表版块中[http:/www.ope nscenegraph.org/projects/osg/wiki/MailingLists],可以查看 邮件列表的订阅方法。 现在google group中也会每天更新邮件列表,而且看起来更方便了,会把问题汇总,回答与问题相连的以帖 子的形式把邮件播报出来,里面的内容与邮件列表是相同的,而且看起来更加方便。可以到这里来查看google Group中的OSG邮件列表:http:/groups.google.com/group/.osg-users?Ink=srg,如果你己经订阅了邮件列表的 话,也可以通过google group来查看与发送问题。 在注册邮件列表的时候,官方会发送一个问候邮件,其中包含了激活的过程,所以必须要收到邮件后激活 才可以正常使用邮件列表。 在国内目前大多数的邮箱都是可以直接发送英文且没有乱码的,所以用国内的邮箱就可以了,我一直用的 是163的邮箱,从来没有出过错误。如果有的邮件只有GB编码的,就换个牌子吧。 有一段时间几位OSG方面的高手也在商议建立邮件列表的事情,但是因为缺少资金来源而做罢,对国内的 情形我也感觉到非常遗憾,保密措施非常严格,有些时候比发誓还难过,发誓最多垛下一个手指头或天打 雷辟,而现实中根本不给你这样的机会。 14
OpenSceneGraph 程序设计 www.osgChina.org 第一章:绪论 14 关于 OSG 的论坛有很多,其中最好的有两个,一个是 FLMN 先生的 VRDEV[www.vrdev.net],VRDEV 在早先是 OSG 中文资料的唯一来源,我帮助 FLMN 一直管理至今。另一个是 VRCHINA[www.vrchina.net],VRCHINA 的名 字很大,内容也很多,OSG 只是其中一块,但是在 FLYSKY 的管理之下,蒸蒸日上,发展也很好。 1.2.3 OSG 的教程 OSG 官方网站上本身有教程的介绍链接,里面有很多关于 OSG 的教程,大部分都是可以直接运行的,可以 在这里查看[http://www.openscenegraph.org/projects/osg/wiki/Support/Tutorials]。 其实最好的教程是 OSG 自带的例子,在资料文件中会有 OSG 的相关的例子,里面大多数的例子都很有实用 价值,我们学习 OSG 都是从它而来,而且例子的难度有大有小,方面极广,坦而言之,如果里面的例子都 看通了,对 OSG 的理解会上升很多个层次。在 bbs.osgChina.org 上有 Hesicong 为部分例子做的注释。 在这里要介绍一下海军教程,海军教程也是最早的 OSG 教程之一,现在已经更新到了 2.20 版本且被 Array 译了出来。可以到 bbs.osgChina.org 上查看译的版本以及下载相关的源码。在这里要特别说一下,由于海军 教程是从老版本过渡而来,故在代码风格上使用的都是老版本的风格,有可能新版本当中有更多的简化, 但是这种简化并未在其中表现出来。 在早期还有一个教程,就是 FLMN 的 flmnwere,在随书光盘的 FLMN 的学习光盘当中应该可以找到,现在应 该已经下载不到这个光盘了,绝版本了。FLMN 很忙,估计下一版本的光盘很久后才会面世。 1.2.4 邮件列表 OSG 邮件列表是一个非常重要的地方,最新的知识以及相关的新闻和问题都可以在上面发问,可惜的是只 有英文的。在官网邮件列表版块中[http://www.openscenegraph.org/projects/osg/wiki/MailingLists],可以查看 邮件列表的订阅方法。 现在 google group 中也会每天更新邮件列表,而且看起来更方便了,会把问题汇总,回答与问题相连的以帖 子的形式把邮件播报出来,里面的内容与邮件列表是相同的,而且看起来更加方便。可以到这里来查看 google Group 中的 OSG 邮件列表:http://groups.google.com/group/osg-users?lnk=srg,如果你已经订阅了邮件列表的 话,也可以通过 google group 来查看与发送问题。 在注册邮件列表的时候,官方会发送一个问候邮件,其中包含了激活的过程,所以必须要收到邮件后激活 才可以正常使用邮件列表。 在国内目前大多数的邮箱都是可以直接发送英文且没有乱码的,所以用国内的邮箱就可以了,我一直用的 是 163 的邮箱,从来没有出过错误。如果有的邮件只有 GB 编码的,就换个牌子吧。 有一段时间几位 OSG 方面的高手也在商议建立邮件列表的事情,但是因为缺少资金来源而做罢,对国内的 情形我也感觉到非常遗憾,保密措施非常严格,有些时候比发誓还难过,发誓最多垛下一个手指头或天打 雷辟,而现实中根本不给你这样的机会
OpenScene Graph程序设计 www.osgChina.ong 第一章:绪论 1.2.5必备的知识 有句古话叫:弹琴靠练,下棋靠天赋。好像是还珠格格里的夏紫薇说的。我女友的古筝弹的非常好,说弹 古筝练虽重要,但是天赋也是很重要的。我的一个室友棋下的很棒,说下棋下得好是下得多。因此我得出 结论这个说法多少有点不妥。然而洗衣服靠练,看三维四维图靠天赋应该错不了。洗衣服这个东西可以通 过重复劳动或者持续劳动获得窍门,然而三维四维图我看了半辈子了一张也没看出来。因此有艺术感的东 西都是要靠天赋的,有窍门的都是靠练的。编程中,天赋是第一位的,但绝不可忽视练习。 C+的基础知识是必备的,其中名字空间尤其重要,以及派生与继承,这些都是C+中非常容易理解的小问 题。在OSG中因为名字空间众多弄得初学者以为是什么新语法。关于设计模式什么的,就次之了。因为我 们是以库的眼光来看OSG的。 OPENGL的基础知识要有一些,哪怕一点点也好,最少看见类似Texture要有一种亲切的感觉。否猛然进入 OSG可能要吃一些亏。感觉有些莫明其妙。OSG最初是运行在iux上面的,因此只可能是完全基于OPENGL 写的,所以OPENGL的知识还是要有一些的。 这里不得不提一个大家都非常反感的问题了,就是用什么界面库合适。这个问题引发了无数的争吵,有些 都翻脸了。我只能说必须要掌握一种界面库,比如MC,QT,Wx什么的。是必备的,至于到什么程序,那 是与osG无关的事情。 在开始的时候3DV和我合作办过培训,培训的内容就是OSG。很多人都去了,反应很好。在一位先生的 博客里提到了这次培训。写的内容大概就是培训时我们的宣传广告,里面包含了一些培训的课程内容与费 用。但是下面的留言感觉就可不怎么好了,一位网友说:“就这样的培训还要5000.有点水平的程序员看看 源代码和例子就很快能上手了。没有水平的程序员也玩不了这个,培训也没有多大用处。”为了表示真实 性,我得把URL记录下来:http:/hi.baidu..com/ghd214/blog/tem/3a662facb7f6c1da9d3112 f.html,培训的 费用昂贵与否我无法权衡,我不是主办方,不了解到底需要多少成本。但是其码这句里有些思想是对的, 就是有点水平的程序员看看源代码和例子很快能上手了。所以我觉得搜集资料,对自己信心足一些,看 看源代码和例子,应该很容易就上手了。 1.30SG的编译与安装 1.3.10SG安装包 在早些年的时候,OSG的官方网站始终提供最新稳定版本的安装包,在最近一些版本当中虽也提供,但是国 内用户始终无法从他们提供的链接中下载到。于是从很久前开始国内的爱好者遇到稳定版本时自己都会制 作安装包。从随书光盘当中可以找到几乎所有重要版本的安装包。 在OSG2.20及其以前,国内爱好者使用的包大都是由FLMN制作完成,同时它也是VRDEV的站长。OSG2.20的 以后版本都是由我和朋友FlySkyf制作完成,我们平时都在维护osgChina,可以按照下面的方法下载到oSG的 各版本安装包,以后的版本大都是基于Visual Stdio20o5的,更新的VS或是基于Borland C+或是别的一些编 译器的都还没有提供,但是后面会介绍编译与链接的方法。可以进入主页:mail.qq.com。输入用户名:ieysx。 密码:123456。点击进入文件中转站就可以进行下载与上传一些资料。界面如图1.2所示
OpenSceneGraph 程序设计 www.osgChina.org 第一章:绪论 15 1.2.5 必备的知识 有句古话叫:弹琴靠练,下棋靠天赋。好像是还珠格格里的夏紫薇说的。我女友的古筝弹的非常好,说弹 古筝练虽重要,但是天赋也是很重要的。我的一个室友棋下的很棒,说下棋下得好是下得多。因此我得出 结论这个说法多少有点不妥。然而洗衣服靠练,看三维四维图靠天赋应该错不了。洗衣服这个东西可以通 过重复劳动或者持续劳动获得窍门,然而三维四维图我看了半辈子了一张也没看出来。因此有艺术感的东 西都是要靠天赋的,有窍门的都是靠练的。编程中,天赋是第一位的,但绝不可忽视练习。 C++的基础知识是必备的,其中名字空间尤其重要,以及派生与继承,这些都是 C++中非常容易理解的小问 题。在 OSG 中因为名字空间众多弄得初学者以为是什么新语法。关于设计模式什么的,就次之了。因为我 们是以库的眼光来看 OSG 的。 OPENGL 的基础知识要有一些,哪怕一点点也好,最少看见类似 Texture 要有一种亲切的感觉。否猛然进入 OSG 可能要吃一些亏。感觉有些莫明其妙。OSG 最初是运行在 Linux 上面的,因此只可能是完全基于 OPENGL 写的,所以 OPENGL 的知识还是要有一些的。 这里不得不提一个大家都非常反感的问题了,就是用什么界面库合适。这个问题引发了无数的争吵,有些 都翻脸了。我只能说必须要掌握一种界面库,比如 MFC,QT,Wx 什么的。是必备的,至于到什么程序,那 是与 OSG 无关的事情。 在开始的时候 3DVRI 和我合作办过培训,培训的内容就是 OSG。很多人都去了,反应很好。在一位先生的 博客里提到了这次培训。写的内容大概就是培训时我们的宣传广告,里面包含了一些培训的课程内容与费 用。但是下面的留言感觉就可不怎么好了,一位网友说:“就这样的培训还要 5000. 有点水平的程序员看看 源代码和例子就很快能上手了。 没有水平的程序员也玩不了这个,培训也没有多大用处。”为了表示真实 性,我得把 URL 记录下来:http://hi.baidu.com/ghd_214/blog/item/3a662ffacb7f6c1da9d3112f.html,培训的 费用昂贵与否我无法权衡,我不是主办方,不了解到底需要多少成本。但是其码这句里有些思想是对的, 就是有点水平的程序员看看源代码和例子很快能上手了。 所以我觉得搜集资料,对自己信心足一些,看 看源代码和例子,应该很容易就上手了。 1.3 OSG 的编译与安装 1.3.1 OSG 安装包 在早些年的时候,OSG的官方网站始终提供最新稳定版本的安装包,在最近一些版本当中虽也提供,但是国 内用户始终无法从他们提供的链接中下载到。于是从很久前开始国内的爱好者遇到稳定版本时自己都会制 作安装包。从随书光盘当中可以找到几乎所有重要版本的安装包。 在OSG2.20及其以前,国内爱好者使用的包大都是由FLMN制作完成,同时它也是VRDEV的站长。OSG2.20的 以后版本都是由我和朋友FlySky制作完成,我们平时都在维护osgChina,可以按照下面的方法下载到OSG的 各版本安装包,以后的版本大都是基于Visual Stdio 2005的,更新的VS或是基于Borland C++或是别的一些编 译器的都还没有提供,但是后面会介绍编译与链接的方法。可以进入主页:mail.qq.com。输入用户名:ieysx。 密码:123456。点击进入文件中转站就可以进行下载与上传一些资料。界面如图1.2所示
OpenSceneGraph程序设计 www.osgChina.ong 第一章:绪论 ☐文件名 大小 进度 有效时间!已下载操作 □告别OSG留念:FreeSouth用暴风影音… 244.73MB 完成 6天2小时 18次下载续期→发送 □0SG1.1vc71.exe 29.00MB 完成 6天2小时 2次下载续期→发送 □0SG2.0vc80.exe 43.48MB 完成 6天2小时 5次下载续期→发送 □0SG1.1vc80.exe 30.52MB 完成 6天2小时 3次下载续期→发送 ☐OsG1.9.1vc80.exe 41.99MB 完成 6天2小时 14次下载续期→发送 回 OSG1.0 vc71.exe 35.25MB 完成 6天2小时 2次下载续期→发送 ☐0SG1.2vc71.exe 29.27MB 完成 6天2小时 5次下载续期→发送 ☐0sG2.2.0vc80.exe 32.64MB 完成 4天1小时18次下载续期→发送 ☐0SG1.2vc80.exe 30.68MB 完成 6天1小时 4次下载续期◆发送 ☐OSGQSG.pdt 2.23MB 完成 6天1小时 4次下截续期→发送 OpenSceneGraph2.4.exe 38.45MB 完成 6天1小时 28次下载续期→发送 ▣0sq2.3.4vs2005.exe 277.38MB 完成 4天1小时 20次下载续期◆发送 图1.2下载0SG安装包的界面 OSG的安装包一般都会至少在环境变量中添加两个值。一个是path,它会指向你安装目录的bin文件夹,另外 一个就是OSG_FILE_PATH它会指向你安装目录的data文件夹。有些人对path路径竞然没有一点儿的概念,对 此感觉到很迷惑。在安装过后点击我的电脑右键]>属性>高级>环境变量后,可以看到如图13所示环境变 量: 变量 值 NUTSUFFIX OS Windows_NT OSG FILE PATH C:\Program Files\osgChina\OSG2. 编援系统变量 变量名): Path 变量值): am Files\osgChina\OSG2.2.0_ve80\bin: 确定 取消 图1.3安装OSG后的环境变量 在这里要解释一下环境变量的作用,环境变量是提供一个标识,该标识下对应一个或一些路径,一些应用 程序会识别该标识来到其所指的路径下去找所需要的应用程序或者文件等等。最常见的比如,在开始菜单 中点击运行,输入cmd或者regedit等等,它会打开命令提示符或者注册表编辑器,这时你在cmd中输入 path,会列出一些目录,你肯定可以在这些目录下找到cmd和regedit的E可执行文件。具体是在windows 的system32下,这就是说系统会识别path标识,当应用程需要一些资料时会自动到该目录下去寻找。 OSG FILE_PATH也是一种标识,指向OSG的模型目录,只不过这个标识只有OSG的应用程序可以识别,别 16
OpenSceneGraph 程序设计 www.osgChina.org 第一章:绪论 16 图 1.2 下载OSG安装包的界面 OSG的安装包一般都会至少在环境变量中添加两个值。一个是path,它会指向你安装目录的bin文件夹,另外 一个就是OSG_FILE_PATH它会指向你安装目录的data文件夹。有些人对path路径竟然没有一点儿的概念,对 此感觉到很迷惑。在安装过后点击我的电脑[右键]->属性->高级->环境变量后,可以看到如图1.3所示环境变 量: 图 1.3 安装 OSG 后的环境变量 在这里要解释一下环境变量的作用,环境变量是提供一个标识,该标识下对应一个或一些路径,一些应用 程序会识别该标识来到其所指的路径下去找所需要的应用程序或者文件等等。最常见的比如,在开始菜单 中点击运行,输入 cmd 或者 regedit 等等,它会打开命令提示符或者注册表编辑器,这时你在 cmd 中输入 path,会列出一些目录,你肯定可以在这些目录下找到 cmd 和 regedit 的 EXE 可执行文件。具体是在 windows 的 system32 下,这就是说系统会识别 path 标识,当应用程需要一些资料时会自动到该目录下去寻找。 OSG_FILE_PATH 也是一种标识,指向 OSG 的模型目录,只不过这个标识只有 OSG 的应用程序可以识别,别
OpenScene Graph程序设计 www.osgChina.ong 第一章:绪论 的程序一般用不到它而己。你也可以定义一些类似OSGHOME,SDLROOT等等环境变量,在一些路径当中通 过使用SOSGHOME或者SSDLROOT等等来使用它。 因此安装包会为你设置好两个环境变量值,如果你的模型非常多,是分开存放的,你可以在OSG FILE_PATH 中添加多个路径并用[分号]隔开。 在安装完OsG的安装包后,你可以通过执行安装包下的"运行例子.bat[runexample.bat"来查看一下安装是否 正确,一般在运行程序的过程中点击S键查看帧速看字体是否正常,以及查看执行的CMD窗口看是否出现 未找到插件的警告等等。这样OSG就已经被安装到NINDOWS平台上面了。 如果是LNUX平台,一般需要自己编译,当然官方也会有与OSG相关的源,不过版本往往根不上,国内基 于INUX做OSG开发的并不多,再说一个笑话,虽然人们在无数次的诅咒Visual Stdio和它的MFC库,但是 人们依然在使用它,一边疯狂的骂一边使劲的用。 您可以到bbs.osgChina.org上查看最新安装包的情况。您也可以到www.openscenegraph.org上查看最新的发 布情况,但是最快的消息来自SVN,所以如果您想特别与时俱进就不得不时刻关注SVN的最近更新。 1.3.2编译0SG 有很多人不会编译OSG,可能是由于不是太了解开源引擎的特点,基于INUX的引擎往往都延续了开源精 神,像OSG,QT等等这些库往往都需要自己编译后才可以使用。当然也会有安装包,而且这些安装包会从 最大程序上满足人们的要求,但是事情往往是发生在小程度上,在这里试举一二:首先安装包的制作过程 是制作安装包的人在自己的机器的编完成后,然后打包成包装在您的机器上,这样如果两台机器配置不同, 当然这造成的影响很小,但是比如显示卡不相同,这时就无法判断在你的机器上是否也能很好的运行它的 安装包。其次使用安装包并不能完成一些功能,比如你想使用QuickTime的最新插件,这样安装包可就帮不 了你了,这就需要自己编译。三来,自己编译用起来感觉是不同的,我建议就算使用安装包也要自己会编 译才行。 在这里我简单介绍一下最小编译过程。首先必须下载需要的所有资源。 最重要的资源当然是OSG的源文件,最新的源文件往往可以从www.openscenegraph.org上下载到,一般的 发布消息都会被当作头条放在主页上,历史的版本也会保留在history的版面当中,可以通过查看下载 [http:/www.openscenegraph.org/projects/,osg/wiki/Downloads]版面来下载历史版本的源文件。在这里我并建 议新手使用SVN,因为抽取文件是个漫长的过程,可能是由于网速的原因,所以有些文件可能并未被抽取 到而发生一些莫明其妙的错误。 其二是最小的第三方依赖,这些关乎OSG的正常运行过程,所以是必须下载的,里面包含有tif,jpeg,libungif, libpng,freetype,等等非常重要的库。可以从OsG官方网站的下载第三方库的专用版面里下载到 [http:/www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies],这里需要提醒的是,里面的版 本可能很老,在最新版本中用到的最新库肯定是需要最新的插件的,所以如果某个插件不合要求,就必须 到该插件的官网或者某些地方找新版本了。下载后解压一下,最好把源文件与它都放在同一个目录当中, 不能乱。 其三虽然是可有可无的,但是为了最好的运行官方的示例,还是要带上的,就是官方的数据文件,在平时 17
OpenSceneGraph 程序设计 www.osgChina.org 第一章:绪论 17 的程序一般用不到它而已。你也可以定义一些类似 OSGHOME, SDLROOT 等等环境变量,在一些路径当中通 过使用$OSGHOME 或者$SDLROOT 等等来使用它。 因此安装包会为你设置好两个环境变量值,如果你的模型非常多,是分开存放的,你可以在 OSG_FILE_PATH 中添加多个路径并用;[分号]隔开。 在安装完 OSG 的安装包后,你可以通过执行安装包下的”运行例子.bat[runexample.bat]”来查看一下安装是否 正确,一般在运行程序的过程中点击 S 键查看帧速看字体是否正常,以及查看执行的 CMD 窗口看是否出现 未找到插件的警告等等。这样 OSG 就已经被安装到 WINDOWS 平台上面了。 如果是 LINUX 平台,一般需要自己编译,当然官方也会有与 OSG 相关的源,不过版本往往根不上,国内基 于 LINUX 做 OSG 开发的并不多,再说一个笑话,虽然人们在无数次的诅咒 Visual Stdio 和它的 MFC 库,但是 人们依然在使用它,一边疯狂的骂一边使劲的用。 您可以到 bbs.osgChina.org 上查看最新安装包的情况。您也可以到 www.openscenegraph.org 上查看最新的发 布情况,但是最快的消息来自 SVN,所以如果您想特别与时俱进就不得不时刻关注 SVN 的最近更新。 1.3.2 编译 OSG 有很多人不会编译 OSG,可能是由于不是太了解开源引擎的特点,基于 LINUX 的引擎往往都延续了开源精 神,像 OSG,QT 等等这些库往往都需要自己编译后才可以使用。当然也会有安装包,而且这些安装包会从 最大程序上满足人们的要求,但是事情往往是发生在小程度上,在这里试举一二:首先安装包的制作过程 是制作安装包的人在自己的机器的编完成后,然后打包成包装在您的机器上,这样如果两台机器配置不同, 当然这造成的影响很小,但是比如显示卡不相同,这时就无法判断在你的机器上是否也能很好的运行它的 安装包。其次使用安装包并不能完成一些功能,比如你想使用 QuickTime 的最新插件,这样安装包可就帮不 了你了,这就需要自己编译。三来,自己编译用起来感觉是不同的,我建议就算使用安装包也要自己会编 译才行。 在这里我简单介绍一下最小编译过程。首先必须下载需要的所有资源。 最重要的资源当然是 OSG 的源文件,最新的源文件往往可以从 www.openscenegraph.org 上下载到,一般的 发布消息都会被当作头条放在主页上,历史的版本也会保留在 history 的版面当中,可以通过查看下载 [http://www.openscenegraph.org/projects/osg/wiki/Downloads]版面来下载历史版本的源文件。在这里我并建 议新手使用 SVN,因为抽取文件是个漫长的过程,可能是由于网速的原因,所以有些文件可能并未被抽取 到而发生一些莫明其妙的错误。 其二是最小的第三方依赖,这些关乎 OSG 的正常运行过程,所以是必须下载的,里面包含有 tiff, jpeg, libungif, libpng, freetype, 等等非常重要的库。可以从 OSG 官方网站的下载第三方库的专用版面里下载到 [http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies],这里需要提醒的是,里面的版 本可能很老,在最新版本中用到的最新库肯定是需要最新的插件的,所以如果某个插件不合要求,就必须 到该插件的官网或者某些地方找新版本了。下载后解压一下,最好把源文件与它都放在同一个目录当中, 不能乱。 其三虽然是可有可无的,但是为了最好的运行官方的示例,还是要带上的,就是官方的数据文件,在平时