2012-03-17 30 views
14

Celestia是一款實時三維空間可視化應用程序,包含太陽系的詳細模型,超過100,000顆恆星,超過10,000個星系以及用於添加更多物體的擴展機制。如何構建Celestia到Android?

它可以在windows,mac os,linux,freeBSD上運行,那麼有沒有Android的其他端口呢?或如何建立或移植到Android?

+0

很好的問題,我創建了一個勒斯蒂亞標記和編輯的questio,也許它會得到一些更多的關注,如果不是你可以提供一個賞金 – aaronman 2013-07-25 01:43:41

+1

我覺得這是可以左右你的Android設備處理這問題嗎?對於基本的太陽系模擬是可以的,但是當你開始添加小行星,彗星,恆星時,你突然需要相當大一部分內存,並不是所有的Android設備都能處理。另一點是速度越快,物體運行速度越快......是的,您可以用慢速更新位置,但是當您想突然重新計算需要時間的整個場景時,添加3D圖形會使所有這些都增加。所以,問題是什麼設備,它會在模擬的東西質量如果您有桌面般的力量的話,當然它會運行,你可以嘗試端口運行/渲染之前甚至開始端口... – Spektre 2015-04-27 13:36:50

+1

。採取[源代碼](http://sourceforge.net/projects/celestia/files/Celestia-source/)並重寫所有OS /平臺相關的東西到你的環境。對於未知的源代碼,這是一項巨大的工作。特別是如果你不知道是什麼,以及它如何做?看這裏[現實正體太陽能系統仿真(http://stackoverflow.com/a/28020934/2521214)程序怎麼這麼通常工作 – Spektre 2015-04-27 13:49:48

回答

1

大廈Spektre的意見,並與一個快速瀏覽一下,你需要:

  1. 獲取代碼(無論是從SVNGit fork
  2. 轉換automake的構建系統to NDK
  3. 用android NDK(例如opengl)替換所有依賴於linux的代碼,或者更好的是,添加一個新平臺
  4. 構建一個新的UI。也許你可以得到一些使用了Qt的,因爲它works on android

有些事情要考慮:

  • 代碼底座約20萬線,C/C++
  • 有一些可選的依賴(例如lua)和一些強制性(?)依賴項(例如OpenGL庫)
  • 您需要仔細查看各種模塊。 「celengine」例如包含大部分的OpenGL代碼。

恕我直言,這是一件很難做的事情(儘管代碼基數較小,但在過去幾年中,我在操作系統之間做了很多操作)。我的方法寧願使用可用的數據構建新的東西(lib,app),並及時添加功能和NDK組件。