|
Ssystem: Explorant el Sistema SolarRaúl Alonso | Oviedo, EspañaSsystem é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.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.
DesenvolupamentCom 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.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. |