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