2012-03-17 34 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组件。