OSG为咱们提供了不少有用的例子,那么如何正确运行这些例子呢?我将个人一些经验写出来,但愿对你们有所帮助。函数
命令行参数如何找?###
main函数做为一个程序的入口不少命令行的参数的在这里处理。OSG的例子里不少都是须要提供参数的,不然就须要调用默认的文件。注意若是你直接运行OSG的例子有可能只是一闪而过,正常的,不要惊慌,只须要分析一下到底须要什么命令行参数就能够正确的运行起来。 以osgviewer这个程序来说,咱们看看相关的处理函数:spa
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"); //参数 ....(省略一些)
这里就能够看书这个程序是干什么的,具体的使用方法是什么,以及一些参数的用法。.net
肯定了该传什么参数之后,一来能够在“命令行”里面直接输入指令(若是你比较熟悉的话)另外一个方法就是在工程的“属性页“中,选择“调试”,“命令参数”中添加须要的指令。这样就可让大多数例子运行起来了。插件
肯定你的环境变量是正确的
有些时候即使你设置了命令行参数,可是仍是出现找不到一些文件的状况。注意OSG的例子须要一些文件来执行,你能够在这里找到这些例子须要的文件。命令行
下载好后解压好放置好,例如我这里我放在E:osgOpenSceneGraph-Data,那么我还须要设置环境变量(如何设置请BAIDU)。添加一个名为OSG_FILE_PATH,值为E:osgOpenSceneGraph-Data的环境变量,这样大多数例子不须要你提供额外的文件就能够工做。 另外若是仍是报告一些warning,则多是相应的插件没有找到,请在PATH环境变量中正确设置你的OSG插件的位置。3d
若是仍是不工做?###
若是上述都正确了,仍是不工做,怎么办呢?确认你的显卡可以正确的支持例子,有些高级的例子须要更新的显卡的支持。例如Examples osggeometryshaders就须要DX10系列的显卡才能正确工做。通常来讲若是出错控制台都会输出相应的信息的。有些显卡可能不支持必定的扩展,也是能够根据控制台输出知道的。 确认以上三点之后大部分例子仍是可以运行成功的,固然若是你运气实在很差,请跟踪一下源代码,找到病因,那么你会对OSG更加了解的。调试
本文同步分享在 博客“贺思聪”(other)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。code