2012-03-17 12 views
14

Celestia es una magnífica aplicación para la visualización en 3D en tiempo real del espacio, con un modelo detallado del sistema solar, más de 100.000 estrellas, más de 10.000 galaxias y un mecanismo de extensión para agregar más objetos.¿Cómo construir Celestia para Android?

Se puede ejecutar en Windows, Mac OS, Linux, FreeBSD, ¿entonces hay puertos Android de la misma? ¿o cómo construir o portarlo a Android?

+0

nice question He creado una etiqueta para celestia y he editado la questio, tal vez reciba algo más de atención, si no tu puedes ofrecer una recompensa – aaronman

+1

Creo que esto es más una pregunta acerca de cómo puede manejarlo tu dispositivo Android? Para la simulación básica del sistema solar, está bien, pero cuando comienzas a agregar asteroides, cometas y estrellas, de repente necesitas una parte relativamente grande de memoria que no todos los dispositivos Android pueden manejar. El otro punto es la velocidad, cuanto menos objetos, más rápido se ejecuta ... sí, puedes actualizar las posiciones con velocidad lenta, pero cuando deseas volver a calcular repentinamente toda la escena lleva tiempo. Al agregar gráficos en 3D, se multiplica todo esto. Entonces, la pregunta es qué dispositivo ejecutaría con qué calidad de simulación/renderizado incluso antes de comenzar a portar ... – Spektre

+1

Si tiene una computadora de escritorio como poder, entonces seguro que se ejecutaría y podría tratar de portar. Tome [código fuente] (http://sourceforge.net/projects/celestia/files/Celestia-source/) y vuelva a escribir todas las cosas dependientes de OS/Platform en su entorno. Esa es una gran cantidad de trabajo que hacer con un código fuente desconocido. Especialmente si no sabes qué y cómo ... Mira aquí [simulación realística del sistema solar n-body] (http://stackoverflow.com/a/28020934/2521214) cómo funcionan normalmente tales programas – Spektre

Respuesta

1

Basándose en los comentarios de Spektre y con un rápido vistazo a la, que había necesidad de:

  1. Obtener el código (ya sea desde SVN o una Git fork)
  2. Convertir el sistema automake acumulación to NDK
  3. reemplace todo el código dependiente de Linux con Android NDK (por ejemplo, opengl) o, mejor aún, agregue una nueva plataforma
  4. Cree una nueva interfaz de usuario. Probablemente usted puede conseguir un cierto uso de Qt, ya que works on android

Algunas cosas a tener en cuenta:

  • código base es de unos 200 mil líneas, C/C++
  • Hay algunas dependencias opcionales (por ejemplo, lua) y algunas dependencias obligatorias (?) (por ejemplo, OpenGL libs)
  • Tendría que mirar con cuidado a varios módulos. "celengine" por ejemplo contiene la mayor parte del código OpenGL.

En mi humilde opinión, esto es algo difícil de hacer (yo mismo hice bastantes puertos entre sistemas operativos en los últimos años, aunque con bases de código más pequeñas). Mi enfoque sería más bien construir algo nuevo (lib, app) usando los datos disponibles, y agregar funcionalidades y componentes NDK a tiempo.

Cuestiones relacionadas