Sunday, February 17, 2008

Lens Flare


Finalmente un pò di tempo per dedicarmi a Tau Ceti.
Ho ripreso in mano il compilatore dopo quasi 10 giorni di stop, e come detto ho iniziato a lavorare alle lens flares, ovvero quegli effetti di luce che si formano quando una telecamera inquadra una sorgente particolarmente luminosa.
Per quanto possa sembrar strano, le lens flares sono elementi bidimensionali, e pertanto è sufficiente utilizzare gli sprites per simularne gli effetti. Il segreto sta nel riuscire a creare degli effetti luminosi particolarmente di atmosfera, e combinarli assieme.
Il vero grosso problema (anzi se mi aiutate vi ringrazio) è che occorre chiaramente che le immagini 2d dalle quali le lens provengono siano molto trasparenti, in quanto l'effetto che si ha dall'abbagliamento è comunque quello di riuscire a veder dietro alla fonte di luce, magari non bene ma si intravede la sagoma della stella. Tutti i software che ho provato però permettono solo di ottenere sprazzi di luce su sfondi non trasparenti, col risultato che poi sono di fatto inusabili per i miei scopi. In "tecnichese", mi occorre un qualcosa che riesca a creare la lens flare utilizzando il canale alpha, e partendo da uno sfondo completamente trasparente, così posso poi salvarlo in formato png e sovrapporlo alla stella per ottenere l'effetto.
Qui sopra vedete il primo elemento che son riuscito a mettere in Tau Ceti. Non è spettacolare come la foto precedente, ma non è nemmeno finta come la precedente, quel che vedete è assolutamente presente nel gioco.
Quel che ancora manca sono due cose:

  1. l'insieme di raggi e cerchi (o esagoni) che si sviluppano dalla sorgente luminosa lungo lo schermo (ma anche qui si fa tutto con sprites e santa pazienza)
  2. il meccanismo di ridimensionamento del bagliore man mano che ci si avvicina al sole.

Ma nonostante tutto sono piuttosto soddisfatto di questo primo risultato.

4 comments:

Simone said...

Bella li! Ascolta PDG, che ne dici di mettere anche qualche bel pezzo di codice da vedere? ;-) Sarebbe interessante e molto educativo! Ho mandato 2-3 conoscenti a leggere il tuo blog... Ciao da BS82!

PdG said...

Volentieri, anche se non so quanto sia educativo, nel senso che essendo io niubbo temo abbiate poco da imparare da me :)

Ad ogni modo ditemi cosa volete vedere e cercero' di esaudire i desideri.

Unknown said...

Carissimo PDG, dai un'occhiata a 'sto link:
http://www.gamedev.net/reference/programming/features/realtimerender/page4.asp

Secondo me non è il caso di pensare all'alpha channel, basta che attivi la modalità "additive" invece di quella di default.
L'effetto è ottimo perchè quando si sovrappongono si ottiene un effetto si sovrailluminazione che con l'alpha channel non hai.
Io ho esperienza solo con OpenGL ma penso che ci siano le stesse cose anche con le direct3D.

PdG said...

molto interessante... sarebbe la soluzione di tutto..

Questo pomeriggio provo!