[botta & risposta]Disegnare ombre con le surface

Tutorial, videotutorials ed esempi creati da noi
Rispondi
Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

[botta & risposta]Disegnare ombre con le surface

Messaggio da Jak »

Quando volete simulare l'effetto dell'ombra di solito si usa semplicemente uno sprite nero leggermente alfato però come molti si saranno accorti quando le varie ombre vengono disegnate una sopra l'altra avviene che l'intensità dell'ombra aumenta nei pixel in cui si sono intersecate.
Ogni volta vi sarete detti che quell'effetto è decisamente brutto.
Ebbene io ho fatto un semplice editabile il quale, utilizzando una semplice surface, elimina questo fastidioso problema.

http://www.megaupload.com/?d=MLUE4AIO

Il suo funzionamento è molto semplice, disegna gli sprite completamente neri su una surface(gli sprite possono essere anche colorati, basta usare il colore nero per renderli neri al momento del disegno) e dopo disegna la surface con un certo valore di alfa.
Se ad esempio disegnate con il sistema degli sprite le ombre completamente nere il risultato è perfetto, non cè alcuna somma della loro alfa questo perchè ha raggiunto il massimo valore di alfa quindi disegnando le ombre su una surface raggiungeranno il massimo valore di alfa e solo poi verrà applicata l'alfa a tutta la surface.
Con questo semplicissimo sistema le ombre verranno perfette, vari dettagli sui tasti utilizzati nell'esempio ed il suo funzionamento nello specifico li trovate sotto forma di commenti direttamente nell'editabile :cappa:
Come noterete se alfate uno dei due sprite non ci sarà alcuna somma delle due ombre ma bensì lo sprite opaco avrà un'ombra che coprirà l'altra.
Se alfate tutti e due gli sprite noterete ancora quell'effetto ma... non è una semplice somma, l'alfa viene comunque diminuita inoltre se ci pensate bene è proprio ciò che vorrete.
Immaginate un foglio di carta che proietta la sua ombra, se ci mettete un'altro foglio sopra noterete che nelle zone che i due fogli hanno in comune l'ombra è più intensa perchè i due fogli messi assieme valgono come uno più opaco.
Ecco uno screen della differenza tra i due metodi:
Immagine
Spero vi sia utile :cappa:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
nightwish88
GMI Advanced
Messaggi: 1739
Iscritto il: 18/01/2009, 13:41
Contatta:

Re: [botta & risposta]Disegnare ombre con le surface

Messaggio da nightwish88 »

esempio basilare ma allo stesso tempo utile. bravo jak :cappa:
Immagine

Web Site: AFGames

Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: [botta & risposta]Disegnare ombre con le surface

Messaggio da maz85 »

Bello jak, ma non si poteva fare col blend? Ora non posso provare però...

Gladiatore79
Membro attivo
Messaggi: 468
Iscritto il: 28/05/2010, 23:49
Specialità: Grafica
Contatta:

Re: [botta & risposta]Disegnare ombre con le surface

Messaggio da Gladiatore79 »

Se creo delle nuove case con ombre voglio provarci
direi che è molto utile bravo JAK. ;)
My Forum:
Immagine

Aiutatemi a fare nascere dall'uovo due Vorxy, cliccate qui ==>>>ImmagineImmagineImmagineImmagine
Faccina di mia creazione se vi piace mettetela nella vostra firma:

Immagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [botta & risposta]Disegnare ombre con le surface

Messaggio da Jak »

maz85 ha scritto:Bello jak, ma non si poteva fare col blend? Ora non posso provare però...
:fapensare: forse con un blending tipo max...
Non ho provato ma personalmente non credo che si possa evitare una cosa simile se non con questo metodo poichè usando i bm cambia non solo il modo in cui le ombre interagiscono tra loro ma anche tra ombre e mondo esterno. Alla fine è un semplice bm normal solo che l'alfa "vera" dell'ombra la usa in un'altro momento. Farò qualche tentativo.
Grazie night, lo so, non era niente di difficile anzi ma cè sempre gente che domanda quindi non si sa mai :mrgreen: )
Gladiatore, fai pure, sei libero di usare questo esempio come più di aggrada. Ovviamente non sono ombre realistiche tipo quelle del 3d però se stai attento a certi criteri è meglio di niente :sisisi:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti