Astronomía Digital

  • Número 3.

  • Astronomía Digital.
  • Bienvenidos.
  • GSiew.
  • Guía para autores.
  • Ssystem: Explorando el Sistema Solar

    Raúl Alonso | Oviedo, España

    Ssystem es un simulador interactivo del sistema solar utilizando OpenGL. Con él podrás visitar planetas y satélites mientras observas las estrellas más brillantes y todo ello con varios tipos de cámaras y una calidad gráfica más que aceptable.


    Introducción.

    Supongo que ya estamos cansados de leer los típicos artículos de las revistas comentando este o aquel programa, y generalmente diciendo lo buenos que son y las fantásticas cosas que son capaces de hacer o las que harán en próximas versiones. Así que creo que resultará más interesante si cuento la historia del programa, como surgió la idea, las dificultades, el futuro y cosas por el estilo. Intentaré no caer en la tentación de hacer publicidad gratuita del mismo.


    Los comienzos.

    La idea surgió cuando vi la película "Contacto" en el cine. Estamos acostumbrados a ver lo buenos que son los efectos generados por ordenador en las películas, pero nunca me había parado a pensar en los resultados que esa tecnología puede tener cuando se aplica a la astronomía. En fin, que después de ver la secuencia inicial de la película pensé que estaría bien hacer una animación de ese tipo, o mejor aún, un programa interactivo con una calidad visual similar. Pero el proyecto propiamente dicho no iba a comenzar hasta que me hice con una tarjeta aceleradora 3D. Con la calidad gráfica que estas tarjetas permiten estaba claro que era posible abordar el proyecto, al menos comenzar.

    La Tierra vista desde el Sol el 22 de diciembre de 1998.

    He de reconocer que soy un gran apasionado de los juegos de ordenador (¿Quién no?), así que obviamente tenía que probar el Quake (supongo que sobran comentarios acerca de dicho juego) con la tarjeta aceleradora. La versión para tarjeta aceleradora hacía uso de la librería OpenGL, y además había leído en algún sitio que el programador solo había necesitado una tarde para modificar el código a fin de utilizar OpenGL. Esto era increíble, el juego tenía una calidad gráfica impresionante, iba muy rápido y además utilizaba una librería que parecía fácil de programar. A todo esto se unía el hecho de que la tarjeta aceleradora funcionaba bajo Linux (algo que no pueden decir todas las tarjetas) y era posible conseguir que la librería Mesa (compatible OpenGL y de libre distribución) hiciese uso de la aceleradora. En resumen, que casi podríamos decir que sin el GLQuake ssystem probablemente no existiría. ¿Quien dice que los juegos no sirven para nada?.

    También consideré en algún momento utilizar Direct3D, pero un vistazo a los ejemplos del SDK de Microsoft (bastante crípticos para los no iniciados) y sobre todo la poca portabilidad (no en vano Direct3D solo es soportado por Windows 95/98 y parcialmente por Windows NT 4.0) me hicieron inclinarme por la opción OpenGL. Y creo que la decisión fue acertada pues hasta el día de hoy ssystem ha funcionado satisfactoriamente en Windows 95/98, Windows NT, Linux, FreeBSD y varias máquinas SGI y SUN, así pues la portabilidad del código es bastante grande y casi me atrevería a decir que ssystem funcionaría en cualquier sistema que tenga un compilador de C.


    Desarrollo.

    Como se puede adivinar el entorno de desarrollo elegido fue el Linux, no solo porque sea un incondicional de dicho sistema operativo (que lo soy), sino principalmente por la robustez del mismo ante los errores que uno comete (lo que no se puede decir de las windows 95/98). Como lenguaje de programación iba a utilizar el "C", no solo porque llevase unos años con él sino más bien porque generalmente produce los ejecutables con mejor rendimiento, además de que el soporte OpenGL está mucho más extendido en este lenguaje que en los demás. Lo "único" que quedaba era comenzar a programar.

    El primer objetivo parecía sencillo, solo una esfera con la textura de la Tierra. Y aunque no a la primera, funcionó. Así que, poco a poco le siguieron más planetas, el Sol y una simulación gravitatoria. La verdad es que hasta yo mismo estaba sorprendido de lo fácil que estaba resultando, por lo tanto había que fijar objetivos algo más ambiciosos.

    La Luna vista desde la Tierra el 22 de diciembre de 1998.

    Como astrónomo aficionado que soy (aunque he de reconocer que más bien teórico) utilizo de vez en cuando un programa de efemérides. Si bien estos son de gran utilidad práctica, siempre los he considerado un poco pobres en el aspecto visual (al menos los que yo conozco). Entonces pensé que estaría bien hacer que ssystem pudiese ser utilizado para ver el sistema solar desde cualquier punto del mismo y en cualquier fecha, y que además la calidad gráfica fuese tal que uno pudiese ver en el ordenador algo parecido a lo que realmente vería si estuviese realmente allí. No cabía duda de la gran magnitud del proyecto y de que probablemente llevaría meses o de que incluso nunca llegaría a acabarse del todo, pero tampoco había prisa. Poco a poco pude ir añadiendo estrellas reales (basadas en el catálogo de Yale), un algoritmo para el cálculo de las posiciones de los planetas en una fecha dada (no muy preciso pero no estaba mal para empezar), algunos satélites, texturas más realistas, mayor calidad gráfica, mejor rendimiento, soporte para joystick y ratón, varios tipos de cámaras y alguna que otra cosa más.

    Por supuesto aún quedan muchas cosas por hacer, entre ellas eclipses, cometas, asteroides, un buen interfaz de usuario, gravedad, mas estrellas, objetos del espacio profundo y, en general, cualquier idea que se me vaya ocurriendo o que sea sugerida por los usuarios.


    Distribución.

    Ssystem se distribuye bajo licencia GPL. Es decir, es gratuito y además se incluye el código fuente completo del mismo (en lenguaje C). Una copia del mismo, en versiones para Linux/Unix y Windows 95/98, puede obtenerse desde la página oficial del programa (ver Enlaces). Lamentablemente y por falta de tiempo solo hay versión en inglés, aunque sí se incluye documentación en castellano.

    Si lo que quieres es compilarlo tu mismo (no queda otro remedio en la versión para Linux/Unix) necesitaras tener antes instaladas en tu sistema las librerías OpenGL, glut y jpeg. Hay varias versiones de ellas pero yo creo que la mejor opción es compilar Mesa 3.0 (la distribución completa Lib+Demos incluye glut así que matamos dos pájaros de un tiro, además es muy fácil de compilar). En cuanto a la librería JPEG es más que probable que tu sistema ya la incluya (sobre todo si es un Linux), pero si no es así, obtener y compilar la librería de libre distribución del IJG no va a resultar muy difícil. En la página de ssystem hay enlaces a todos estas librerías.

    Si prefieres la versión para Windows 95/98 y además no estas interesado en compilar el programa, es muy probable que no necesites nada más que descargar el programa. Sin embargo, dependiendo de la versión de windows de que dispongas, quizas tengas que instalar las DLLs OpenGL (lo sabrás si el programa al ejecutarlo dice que falta OPENGL32.DLL). En ese caso nada tan fácil como instalar los salvapantallas adicionales desde tu CD de windows (si es windows 95 OSR2 o 98) o descargar las DLLs de Microsoft. Como siempre hay un enlace para este menester en la página de ssystem, además si dispones de una tarjeta aceleradora 3D de 3Dfx dispones también de unas DLLs que te permitirán hacer pleno uso de tu hardware.

    Lamentablemente ssystem necesita una aceleradora 3D para obtener un rendimiento aceptable. Aún así, si dispones de un ordenador medianamente potente es posible ejecutar ssystem sin tarjeta 3D. No esperes maravillas en este ultimo caso.

    Ssystem es un proyecto abierto. Con ello quiero decir que si alguien cree que puede ayudar en una u otra medida a mejorar el programa, no solo es bienvenido sino que agradecería enormemente su colaboración.


    Conclusión.

    No queda mucho que decir, como en la mayoría de los casos una imagen vale más que mil palabras, así que si echas un vistazo a las pantallas de ejemplo de las figuras 1, 2 y 3 podrás hacerte una idea del estado actual del proyecto. Pero la mejor manera de comprobarlo es descargar el programa una de estas noches, poner algo de música, apagar las luces de la habitación y lanzarse a explorar el sistema solar.


    Enlaces.


    Raúl Alonso
    amil@las.es
    Oviedo (España)

    Astronomia Digital es una iniciativa de AstroRED y la Agrupación Astronómica de Gran Canaria (AAGC). Se permite la reproducción total o parcial de los contenidos de la revista para uso personal y no lucrativo. Para el envío de artículos o cartas de opinión debe ponerse en contacto con la redacción mediante correo electrónico en digital@astrored.org o por carta a: Astronomía Digital, Agrupación Astronómica de Gran Canaria, Apartado de correos 4240, 35080 Las Palmas de Gran Canaria (ESPAÑA).