2010-09-20 71 views
0

我的公司已決定,我們需要一個「通用」演示基礎設施,用於我們的技術演示,因爲我可以使用JOGL或OpenGL編寫此代碼並創建自己的框架,我不想重新創建車輪。但是那裏有很多3D gfx引擎,還有很多OpenGL包裝器!通用3D演示軟件的建議框架

基本上,我們希望使用3D圖形渲染一些地形並在其上放置簡單的模型。 他們的要求是它看起來很棒,並且是跨平臺的。

基本上,我可以自由決定範圍和範式,但我想: - 能夠加載3D模型並以全屏或窗口模式渲染它們。 - 能夠控制攝像機在整個場景中「飛行」。 - 能夠在所有內容上顯示/隱藏廣告牌消息,即固定在屏幕上並始終面向相機的2D文本和圖像。 - 能夠改變場景部分的簡單事物,例如使對象顯現/消失,改變高亮顏色(如紅色塗料)等。 - 我可以選擇編寫或使用現有的腳本語言來注入事件處理和預編程的動畫。

示例用例: - 我們公司的某人準備了一些帶有建築物的地形三維模型,基本上生成了一個描述場景及其對象的類似XML的文件。然後他繼續使用我的程序在地形上飛行,並記錄下幾個相關位置「感興趣」。 - 然後,他將某些位置綁定到鍵盤按鍵和/或現有的GUI按鈕。 - 他添加了一些浮動文字。 - 他使用我的程序演示了一個演示,加載他的3D模型文件和腳本文件,並且可以從觀衆的一個選中的相機姿態開始「飛行」到下一個,當他到達並離開時,浮動文本淡入淡出相機的位置......當他點擊一個按鈕時,地形上的某些建築物突出顯示爲紅色......等等。

  • 我有一些OpenGL和JOGL以及XNA Game Studio體驗。
  • 我寧願使用Java,因此它可以儘可能地與平臺無關。

我該怎麼辦?

回答

1

我建議你看看OpenSceneGraph或Ogre。兩者都是跨平臺(C++),功能豐富的圖形引擎。此外,它們是商業上友好的許可證,並且是非常成熟和主動維護的引擎。

我知道開箱即用,OpenSceneGraph支持使用一行或兩行代碼加載幾種模型格式,並且有幾個OSG庫在管理和渲染地形方面已經做得很好。

否則,您將花95%的時間編寫利基引擎,而不是開發可視化功能。

+0

這是一個很好的答案。我最終看到了Xith和jMonkeyEngine,都是圍繞OpenGL的基於Java場景圖的引擎。我想我會用Xith。 – Warlax 2010-09-22 21:10:56

0

這不是Java,但除此之外,您所描述的聽起來非常接近開源Virtual Terrain Project。你可能會更好地使用那些增加的額外設施,而不是從更基本的場景圖層開始。

+0

是的,這是矯枉過正。我有一個增加了元數據的3D點雲。雖然有趣的發現! – Warlax 2010-09-22 21:10:05

0

我建議你使用Ardor3D或JMonkeyEngine 3. Ardor3D對JOGL有很好的支持,它支持Collada格式,terrains,heightmaps,它被NASA和GIS應用使用,它不是一個利基引擎。Ardor3D甚至可以在Android上運行,它是最爲跨平臺的3D引擎之一。

我勸你看看這個演示顯示Ardor3D一個程序地形: http://www.youtube.com/watch?v=bkXFkxrYtLY