正确运行OSG的例子

原创
2008/02/22 00:00
阅读数 252

OSG为我们提供了很多有用的例子,那么如何正确运行这些例子呢?我将我的一些经验写出来,希望对大家有所帮助。

命令行参数如何找?###

main函数作为一个程序的入口很多命令行的参数的在这里处理。OSG的例子里很多都是需要提供参数的,否则就需要调用默认的文件。注意如果你直接运行OSG的例子有可能只是一闪而过,正常的,不要惊慌,只需要分析一下到底需要什么命令行参数就可以正确的运行起来。 以osgviewer这个程序来讲,我们看看相关的处理函数:

arguments.getApplicationUsage()->setApplicationName(arguments.getApplicationName());  //设置程序的名称
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the standard OpenSceneGraph example which loads and visualises 3d models."); //简单的描述
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");  //例子的使用方法
arguments.getApplicationUsage()->addCommandLineOption("--image <filename>","Load an image and render it on a quad");   //参数
....(省略一些)

这里就可以看书这个程序是干什么的,具体的使用方法是什么,以及一些参数的用法。

确定了该传什么参数以后,一来可以在“命令行”里面直接输入指令(如果你比较熟悉的话)另一个方法就是在工程的“属性页“中,选择“调试”,“命令参数”中添加需要的指令。这样就可以让大多数例子运行起来了。

确定你的环境变量是正确的

有些时候即便你设置了命令行参数,但是还是出现找不到一些文件的情况。注意OSG的例子需要一些文件来执行,你可以在这里找到这些例子需要的文件。

下载好后解压好放置好,例如我这里我放在E:osgOpenSceneGraph-Data,那么我还需要设置环境变量(如何设置请BAIDU)。添加一个名为OSG_FILE_PATH,值为E:osgOpenSceneGraph-Data的环境变量,这样大多数例子不需要你提供额外的文件就可以工作。 另外如果还是报告一些warning,则可能是相应的插件没有找到,请在PATH环境变量中正确设置你的OSG插件的位置。

如果还是不工作?###

如果上述都正确了,还是不工作,怎么办呢?确认你的显卡能够正确的支持例子,有些高级的例子需要更新的显卡的支持。例如Examples osggeometryshaders就需要DX10系列的显卡才能正确工作。一般来说如果出错控制台都会输出相应的信息的。有些显卡可能不支持一定的扩展,也是可以根据控制台输出知道的。 确认以上三点以后大部分例子还是能够运行成功的,当然如果你运气实在不好,请跟踪一下源代码,找到病因,那么你会对OSG更加了解的。

本文同步分享在 博客“贺思聪”(other)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部