2008-10-06 69 views
6

我知道如何使用JOGL或LWJGL繪製基本對象來連接到OpenGL。我想要的是能夠爲樹木生成某種幾何形狀的東西,類似於SpeedTree的出名。很顯然,我不期望與SpeedTree具有相同的質量。使用Java和OpenGL繪製3D樹的方法有哪些?

我想讓樹看起來不重複。速度不是問題,我不希望一次在屏幕上需要超過100棵樹。

Java中是否提供免費的樹形圖庫?或示例代碼或演示? 我可以移植或學習其他語言的東西嗎?

回答

2

有成千上萬的方法。一個更好的問題會以更加狹窄的方式定義「最佳」。我們是否像繪畫速度一樣談論「最佳」(適合成千上萬棵樹)?最好看最好看?等等

2

2D還是3D?
在2D中,常用的方法是使用L系統。
我也嘗試了面向對象的方法,爲樹幹,分支,樹葉定義對象,所有對象都擴展了一個抽象類並實現了一個基因型接口(以改變樹的種類)。
不確定它是否有效(創建的對象很多,特別是如果我爲樹設置動畫效果),但有趣的做法。

0

如果您使用eclipse/SWT,請嘗試繪製2D。

0

如果您認真考慮樹立好看的快速樹木,那麼可以使用商業C++庫SpeedTree。許多大型遊戲都使用它(例如,GTA,上古卷軸)。

+0

SpeedTree是驚人的,但我計劃一些軟件,將免費和開源的(可能是GPL許可的),所以我需要要麼找到一個免費的解決方案,要麼自己做。 – Liam 2008-10-07 13:29:45

0

OpenSceneGraph和SpeedTree的組合已經爲我工作。

0

我知道有兩個庫可以使用OpenGl和java。

LWJGL(輕量級Java遊戲庫),由於其簡單性和與使用opengl與c/C++相似,因此imo更好。

JOGL如果你想將擺動組件與opengl混合使用,這可能是更好的選擇,我從來沒有使用它,但幾年前,它被稱爲是非常麻煩,我不知道它是否成熟。

至於繪畫樹,有很多方法可以像其他海報說的那樣做,你可能想要更具體。

編輯:我想我誤解了一下這個問題,哦:/你可以加載一棵樹的三維模型並顯示它。

1

這裏有一些資源可能會有所幫助:

  • gamedev thread on the subject - 包含了一些有用的意見/建議
  • ngPlant - 一個開放源碼的程序植物生成工具。它不是用Java編寫的,但是您可能能夠在其算法中找到想法。