Astronomia Digital

  • Número 3.
  • Astronomia Digital.
  • Benvinguts.
  • GSiew.
  • Guia per a autors.
  • Ssystem: Explorant el Sistema Solar

    Raúl Alonso | Oviedo, España

    Ssystem és un simulador interactiu del sistema solar utilitzant OpenGL. Amb  ell podràs visitar planetes i satèl·lits a la vegada que observes les estrelles més brillants i tot això amb diversos tipus de càmares i una qualitat gràfica més que acceptable.

     

    Introducció.

    Suposem que ja estem cansats de llegir els típics articles de les revistes comentant aquest o aquell programa, i generalment dient com són de bons i quines fantàstiques coses són capaços de fer o les que faran en properes versions. Així que crec que resultarà més interessant si us explico la història del programa, com va sorgir la idea, les dificultats, el futur i coses per un estil. Intentaré no caure en la temptació de fer publicitat gratuïta del mateix.
     
     

    Els començaments.

    La idea va sorgir quan  vaig veure la pel·lícula "Contact" al cinema. Estem acostumats a veure els fantàstics efectes generats per ordinador en las pel·lícules, però mai  m'havia parat a pensar en els resultats que aquesta tecnologia pot tenir quan s'aplica a la astronomia. En fi, que després de veure la seqüència inicial de la pel·lícula vaig pensar que estaria be fer una animació d'aquests tipus, o millor encara, un programa interactiu amb una qualitat visual similar. Però el projecte pròpiament dit no anava a  començar fins  que em vaig fer amb una targeta acceleradora 3D. Amb la qualitat gràfica que aquestes targetes permeten estava clar que era possible abordar el projecte, o al menys començar-lo.



     
     
     
     

    La Terra vista des del Sol el 22 de desembre de 1998.
    He de reconèixer que sóc un gran apassionat del jocs d'ordinador (Qui no?), així que òbviament havia de provar el Quake (suposo que sobren comentaris al voltant d'aquest joc) amb la targeta acceleradora. La versió per a la targeta acceleradora feia ús de la llibreria OpenGL, i a més a més havia llegit en algun lloc que el programador només havia necessitat una tarda per a modificar el codi amb la finalitat d'utilitzar OpenGL. Això era increïble, el joc tenia una qualitat gràfica impressionant, anava molt ràpid i a sobre utilitzava una llibreria que semblava fàcil de programar. A tot això s'afegia el fet que la targeta acceleradora funcionava sota Linux (una cosa que no poden dir totes las targetes) i era possible aconseguir que la llibreria Mesa (compatible OpenGL i de lliure distribució) fes ús de l'acceleradora. En resum, que gairebé podríem dir que sense el GLQuake, Ssystem probablement no existiria. Qui diu que els jocs no serveixen per a res?.

    També vaig considerar en algun moment de fer servir Direct3D, però un cop d'ull als exemples del SDK de Microsoft (bastant críptics per als no iniciats) i sobre tot la poca portabilitat (no en debades Direct3D només és suportat per Windows 95/98 i parcialment per Windows NT 4.0) van fer inclinar-me per l'opció OpenGL. I crec que la decisió fou l'encertada doncs fins el dia d'avui Ssystem ha funcionat satisfactòriament en Windows 95/98, Windows NT, Linux, FreeBSD i vàries màquines SGI i SUN, així doncs la portabilitat del codi és força gran i gairebé m'atreviria a dir que Ssystem funcionaria sota qualsevol sistema que tingués un compilador de C.
     
     

    Desenvolupament

    Com es pot endevinar, l'entorn de desenvolupament triat fou Linux, no només perquè sigui un incondicional d'aquest sistema operatiu (que ho sóc), sinó principalment per la integritat del mateix davant de les errades que hom comet (cosa que no es pot dir de les Windows 95/98). Com a llenguatge de programació anava a utilitzar el "C", no només perquè portava uns anys amb ell, sinó més aviat perquè generalment produeix els executables amb millor rendiment; a més, el suport OpenGL està molt més estès en aquest llenguatge que a la resta. "L'únic" que restava era començar a programar.

    El primer objectiu semblava senzill, només una esfera amb la textura de la Terra. I encara que no a la primera, va funcionar. Així que, poc a poc li seguiren més planetes, el Sol i una simulació gravitatòria. La veritat és que fins jo mateix estava sorprès com de fàcil que estava resultant, per la qual cosa em vaig fixar objectius més ambiciosos.



     
     
     
     

    La Lluna vista des de la Terra el 22 de desembre de 1998.
    Com astrònom afeccionat que sóc (encara que he de reconèixer que més aviat teòric) utilitzo de tant en tant un programa d'efemèrides. Si bé aquests són de gran utilitat pràctica, sempre els he considerat una mica pobres a l'aspecte visual (al menys els que jo conec). Llavors vaig pensar que estaria bé fer que Ssystem pogués ser utilitzat per a veure el sistema solar des de qualsevol punt d'ell mateix i en qualsevol data, i que a més la qualitat gràfica fos tal que hom pogués veure a l'ordinador alguna semblança amb allò que realment veuria si estigués realment allà. No hi havia dubte de la gran magnitud del projecte i que, probablement, portaria mesos o que potser mai no arribaria a enllestir-se del tot, però tampoc hi havia pressa. Poc a poc vaig poder anant afegint estrelles reals (basades en el catàleg de Yale), un algoritme per al càlcul de les posicions dels planetes en una data donada (no molt precís, però no estava malament per començar), alguns satèl·lits, textures més realistes, millor qualitat gràfica, millor rendiment, suport per a joystick i ratolí, diversos tipus de càmares i alguna que altra cosa més.

    Por suposat que encara hi manquen moltes coses, entre elles eclipsis, cometes, asteroides, una bona interfície d'usuari, gravetat, més estrelles, objectes de l'espai profund i, en general, qualsevol idea que se m'ocorri o que sigui suggerida pels usuaris.
     
     

    Distribució.

    Ssystem es distribueix sota llicència GPL. És a dir, és gratuït i a més a més s'inclou el codi font complert del mateix (en llenguatge C). Una còpia del mateix, en versions per a Linux/Unix i Windows 95/98, pot obtenir-se des de la pàgina oficial del programa (veure Enllaços). Lamentablement i per falta de temps només hi ha versió en anglès, encara que sí que s'inclou documentació en castellà.

    Si vols compilar-lo tu mateix (no hi ha altra opció a la versió per a Linux/Unix) necessitaràs tenir abans instal·lades en el teu sistema les llibreries OpenGL, glut i jpeg. Hi ha vàries versions d'elles, però jo crec que la millor opció es compilar Mesa 3.0 (la distribució complerta Lib+Demos inclou glut així que matem dos ocells d'un tret, a més és molt fàcil de compilar). Pel que fa a la llibreria JPEG és més que probable que el teu sistema ja la inclogui (sobre tot si és un Linux), però si no és així, obtenir i compilar la llibreria de lliure distribució del IJG no va  resultar molt difícil. An la pàgina de Ssystem hi ha enllaços per a totes aquestes llibreries.

    Si prefereixes la versió per Windows 95/98 i a més no estàs interessat en compilar el programa, és molt probable que no necessitis res més que descarregar-lo. Tot i això, en funció de la versió de Windows de què disposis, potser hagis d'instal·lar les DLLs OpenGL (ho sabràs si el programa en executar-lo diu que falta OPENGL32.DLL). En aquest cas, res tan fàcil com instal·lar els salva pantalles addicionals des de el teu CD de Windows (si és Windows 95 OSR2 ó 98) o bé descarregar les DLLs de Microsoft. Com sempre hi ha un enllaç per aquesta qüestió a la pàgina de Ssystem, a més a més si disposes d'una targeta acceleradora 3D de 3Dfx disposes també d'unes DLLs que et permetran fer un ús complet del teu hardware.

    Lamentablement Ssystem necessita una acceleradora 3D per obtenir un rendiment acceptable. Tot i amb això, si disposes d'un ordinador raonablement potent és possible executar Ssystem sense la targeta 3D. No esperis meravelles en aquest últim cas.

    Ssystem és un projecte obert. Amb  això vull dir que si algú creu que pot ajudar en una o altra manera a millorar-lo, no només és benvingut sinó que agrairia enormement la seva col·laboració.
     
     

    Conclusió.

    No resta molt a dir. Com a la majoria dels casos una imatge val més que mil paraules, així que si feu un cop d'ull a las pantalles d'exemple de les figures 1, 2 i 3 podreu fer-vos una idea de l'estat actual del projecte. Però la millor manera de comprovar-lo és descarregar-lo una d'aquestes nits, posar quelcom de música, apagar els llums de l'habitació i llançar-se a explorar el sistema solar.
     
     

    Enllaços.

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

    Traducció: Daniel Alomar
    al.claramonte@redestb.es
    Premià de Mar.

    Astronomia Digital és una iniciativa de AstroRED i la Agrupación Astronómica de Gran Canaria (AAGC). Es permet la reproducció total o parcial dels continguts de la revista per a ús personal i no lucratiu. Per a l'enviament d'articles o cartes d'opinió us heu de posar en contacte amb la redacció mitjançant correu electrònic a digital@astrored.org o per carta a: Astronomia Digital, Agrupación Astronómica de Gran Canaria, Apartado de correos 4240, 35080 Las Palmas de Gran Canaria (ESPAÑA).