Home > Education and Learning > Facciamoci un sistema solare in casa (SecondLife o OpenSim), esempio di un progetto “Astronomico”

Facciamoci un sistema solare in casa (SecondLife o OpenSim), esempio di un progetto “Astronomico”

Volevo presentarvi questa settimana un esempio di come aiutarvi a costruire o far costruire in caso di una ipotetica lezione ad allievi un intero sistema solare, comprensivo di Sole, Terra, Luna, pianeti e fascia degli asteroidi.

Ingredienti necessari: texture cilindriche con le immagini in proiezione di Mercatore dei pianeti, capacità di assegnare texture, cambiare i parametri e le dimensioni e capacità di linkare (unire) insieme oggetti (ctrl-L). Capacità di inserire un elementare script di rotazione.

I Pianeti e il Sole

Realizzare un pianeta è facile, basta fare una sfera (oggetto elementare di SL)  e metterci sopra la texture del pianeta.

Per chi ancora non lo sapesse basta cliccare per terra (in una zona in cui posso costruire, una sandbox va benissimo), con il tasto destro del mouse e poi selezionare dal menu “Create” o “Crea” e compare un cubo. Dalla finestra di proprietà che si apre occorre poi cambiare dalla linguetta “Object” o “Oggetto” il tipo del cubo in “Sfera”. Ecco a voi la sfera che rappresenta il pianeta.

Un momento, ma poi dove la trovo una texture adatta? Occorre procurarsi una texture che rappresenta la proiezione “cilindrica” o di mercatore del pianeta che volete costruire (cfr: http://it.wikipedia.org/wiki/Proiezione_cilindrica_centrografica_modificata_di_Mercatore).  Facciamo un esempio vogliamo la texture di Venere, cerchiamo con google “venus cylindrical map” perchè in internet è più facile cercare le cose in inglese e vediamo che troviamo facilmente questo genere di texture:

Da questo sito http://laps.noaa.gov/albers/sos/sos.html potete trovare texture cilindriche di praticamente tutti i pianeti. Quando scaricate l’immagine dovete solo ricordarvi che SL non consente di fare l’upload di immagini più grosse di 2048×2048, quindi se ne trovate di più grandi dovete fare il rescaling usando un software di resize come ad esempio Paint distribuito con Windows 7 Home che consente di fare facilmente dei resize (oppure anche gimp).

Quando poi scaricate la texture sul sito basta che la applichiate sulla sfera prima prodotta, eventualmente ruotandola di 90° ed impostando (importante per dare il senso della “rugosità” il  “bumpiness” e altri parametri.

Se invece volete farvi un pianeta personalizzato potete utilizzare questo generatore di texture di pianeti cilindriche:

http://orbithangar.com/searchid.php?ID=2542 che vi consente di costruire pianeti inventati.

Per gli anelli di saturno io ho preso da questo sito http://www.celestiamotherlode.net/catalog/saturn.php#4100 questa immagine: 

E l’ho applicata ad un cilindro schiacciato e bucato ottenendo l’effetto voluto:

Ho dovuto però modificare le impostazioni di come viene applicata la texture modificando l’applicazione della texture (planare) e il fattore di ripetizione orizzontale e verticale fino ad ottenere l’effetto voluto.

A questo punto abbiamo i pianeti dobbiamo metterli in movimento. Useremo un elementare script di rotazione:

Lo script di rotazione è il seguente:

default
{
state_entry()
{
llTargetOmega(<0,0,1>,PI/10,1.0);
}
}

E come vedete abbiamo tutti gli strumenti per fare un sistema solare…

AGGIORNAMENTO:

Mi hanno fatto notare nei commenti che questo sistema solare non è molto aderente perchè mancano le orbite ellittiche e il movimento del pianeta attorno al proprio asse (oltre sicuramente a molte altre cose, fra cui anche la parte relativa alla fascia degli asteroidi).

Per le orbite ellittiche è un po’ complicato e la tecnica di scripting utilizzata esulerebbe dalla lunghezza breve di questo articolo, ma per la rotazione attorno ad un asse si può utilizzare il semplice script seguente che pare dare buoni risultati:

default
{
state_entry()
{
llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, 1.0);
}
}

Le dimensioni relative dei pianeti, la loro distanza e il periodo di rotazione possono essere facilmente rintracciati su internet ad esempio da qui http://it.wikipedia.org/wiki/Sistema_solare.

Buon Lavoro,

Salahzar

  1. 23 giugno 2012 alle 18:40

    hmm non manca però qualcosa? per esempio il movimento su se stesso del pianeta e l’orbita che non è perfettamente tonda ma più ad ellisse. Come risolvere in questo caso?

    • Salahzar Stenvaag
      23 giugno 2012 alle 18:54

      Se vogliamo fare un vero modellino del sistema solare professionale occorre investire molto più tempo e fare script un po’ più complessi. La rotazione ellittica non è “naturale” in SL e quindi deve essere impostata con uno script specifico. Per ottenere quello che suggerisci bisognerebbe sfruttare a fondo le capacità della funzione llSetKeyframedMotion che consente di far fare ad ogni oggetto dei percorsi e delle rotazioni fluide. Questa funzione non funzionerebbe però (tranne che su avination) sulle opensim e scriverla o computarla risulterebbe un po’ complessa ed esulerebbe dal tono dell’articolo che voleva presentare un modo “semplice” e naturale per fare qualcosa ad effetto (pur nella sua semplificazione).

    • Salahzar Stenvaag
      23 giugno 2012 alle 18:59

      Rispetto alle premesse dell’articolo però dovevi farmi notare che manca come fare gli asteroidi 🙂 Su quello ho anche sorvolato sempre per rendere l’articolo semplice, ma si può approfondire…

    • Salahzar Stenvaag
      23 giugno 2012 alle 19:13

      A ben pensarci però la rotazione del pianeta si dovrebbe ottenere con un semplicissimo script di rotazione texture (!) provato funziona:
      default
      {
      state_entry()
      {
      llSetTextureAnim(ANIM_ON | SMOOTH | LOOP , ALL_SIDES, 1, 1, 1.0, 1.0, 1.0);
      }
      }
      lo inserisco anche nel corpo dell’articolo. Grazie ancora per l’osservazione

  1. No trackbacks yet.

Lascia un commento