Tuesday, March 4, 2008

Tormento blend

Forse finalmente riesco a trovare un po'di tempo per il gioco, come detto purtroppo nei giorni scorsi, complice anche influenza, non ho avuto modo di starci dietro.
Con oggi ho sistemato un paio di cose relative alle lens flares, ovvero lo spiacevole effetto degli artefatti che apparivano dietro ai pianeti, e la duplicazione della medesima flares quando si trovava esattamente dietro all'osservatore.
Rimane pendente lo sfumar della lens quando si avvicina al bordo dello schermo (e ovviamente quando la fonte luminosa viene oscurata ad esempio da un'astronave). Come fare non mi è ancora chiaro, nel senso che mi sembra del tutto inverosimile dovermi creare un sacco di immagini degli artefatti via via sempre piu' evanescenti, come mi sembra del tutto assurdo dover modificare via cpu la luminosita' della texture. L'equazione per definire il blending, nelle directx e'

colore = colore sorgente*blend sorgente + colore destinazione * blend destinazione

quindi via via che ci si avvicina al bordo, dovrebbe diminuire il fattore blend sorgente, mentre rimane a 1 il valore di blend destinazione, fino ad arrivare a 0 per blend sorgente non appena varca il margine del bordo.
Di fatto perciò basterebbe passare alle directx un fattore di blend compreso tra 0 e 1, ed il gioco sarebbe anche fatto.. se non fosse che non ho trovato nessuna funzione in grado di venirmi in aiuto.
Per settare il blend si interviene nel render state, e quello accetta solo valori predefiniti.
Se qualcuno ha una buona idea...

2 comments:

Unknown said...

Non ti posso aiutare per il blend variabile, ma mi ricordo che in OpenGL potevo settare il blend per i tre vertici del triangolo molto semplicemente.

Invece, per lo sfumare graduale quando escono dallo schermo, secondo me non è necessario.
"dal vero" ho notato che le lens flare appena la fonte di luce esce dallo schermo scompaiono immediatamente, non c'è una dissolvenza graduale.

Prova a puntare una telecamera verso il sole (magari anche il cellulare, anche se ha delle lenti ridicole a confronto)

PdG said...

e' una disputa che in effetti vede un po' di persone coinvolte :)
Alcuni sostengono che il flare sparisce gradualmente, altri invece dicono che e' istantaneo (lo pensavo pure io ti diro'). Poi alcuni giochi sfumano gradualmente, ad esempio darkstar one.. mah!