Luce e ombra

Tutorial, videotutorials ed esempi creati da noi
Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Luce e ombra

Messaggio da Sla »

Esatto ^^
eppure mi sembra tutto giusto...

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

Re: Luce e ombra

Messaggio da Jak »

Con un po di tempo perso(anche se non ci ho messo proprio poco a farlo) ho fatto questo piccolo e molto semplice sistema di illuminazione usando le primitive:
http://www.megaupload.com/?d=7KXHHBC2
LightInit() inizializza il tutto
LightSetAmbient() imposta la luce ambientale(non è detto che vogliato il nero assoluto.
LigthMapReset() reimposta la mappa di luce(usatelo in ogni step)
LightAdd() aggiunge una luce, poichè ogni step resettate la mappa bisogna settare anche queste ogni step.
LightMapDraw() disegna la luce/zone d'ombra.
Maggiori dettagli sugli argomenti delle funzioni li trovate dentro la funzione stessa(ho commentato poco ma meglio di niente)
Ecco uno screen
Immagine
Per qualche strano motivo viene uno strano effetto di quadrettamento in 2 lati del cerchio mentre negli altri 2 no...
Se cose come queste vi interessano potrei ottimizzarvi un po il tutto sia in prestazioni che in qualità.

IMPORTANTE! Le luci non sono un colore ma un valore da 0 ad 1. 0=nero, 1=bianco
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
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Luce e ombra

Messaggio da Sla »

carino, ma non riesco a farci luci dinamiche (in movimento)
eppure mi sembra tutto giusto...

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

Re: Luce e ombra

Messaggio da Jak »

Super_Slascio ha scritto:carino, ma non riesco a farci luci dinamiche (in movimento)
Ogni volta si resettano tutte le luci, basta che quando le setti gli dai una posizione diversa.(il settagglio delle luci lo trovi in end step dell'oggetto). Tutto questo sistema è comunque piuttosto lento per via dei molteplici triangoli che vengono disegnati. Gm ha qualche difetto nel disegnare i triangoli e di conseguenza non vengono molto bene in certi punti(al contrario di altri che invece viene piuttosto bene) e ciò necessita una risoluzione molto elevata delle ombre.
Se cose come questa vi interessano potrei studiare un sistema più veloce e performante di questo :sisisi:
Comunque era solo un'esempio su un possibile utilizzo delle luci.
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
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Luce e ombra

Messaggio da Sla »

lo ho fatto, ma luci che cambiano coordinate non vengono rappresentate graficamente.. :O
Per darti un'idea di quello che ho fatto, ho solo cambiato due coordinate in end step nel tuo gmk mettendo mouse_x e mouse_y
eppure mi sembra tutto giusto...

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

Re: Luce e ombra

Messaggio da Jak »

Ecco l'esempio con una luce semovente che usa un path.
http://www.megaupload.com/?d=1TRCE8RH
La coordinate non sono vere e proprie coordinate. Il draw è fatto in modo che si espanda a seconda della grandezza della view.
In quell'esempio la definizione è 10 volte meno della view quindi per avere le coordinate giuste ho dovuto dividerle per 10. Questa cosa non ve l'avevo detta scusate XD.
Quando varò una versione migliorata(che magari non necessita di settare le luci ad ogni step) vedrò di sistemare che questa cosa.
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
Delfador
Membro attivo
Messaggi: 376
Iscritto il: 04/01/2010, 19:52
Specialità: Ehm...
Località: <- Per di qua ->
Contatta:

Re: Luce e ombra

Messaggio da Delfador »

Consapevole del fatto che il modo di jak è sempre e comunque migliore del mio, ho fatto una nuova versione con il problema corretto.
Download
Spoiler
Immagine
Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Luce e ombra

Messaggio da Tizzio »

[Delfador] ha scritto:Consapevole del fatto che il modo di jak è sempre e comunque migliore del mio, ho fatto una nuova versione con il problema corretto.
Download
Spoiler
Immagine
ma non è molto reale come luce...
E' troppo rapido il passaggio da luce ad ombra, dovresti farlo mooolto più graduale.
comunque ben fatto :cappa:

Avatar utente
CaMpIoN
Membro super
Messaggi: 684
Iscritto il: 17/11/2009, 16:20
Specialità: Programmatore
Uso: GM:Studio 1.4 Master
Contatta:

Re: Luce e ombra

Messaggio da CaMpIoN »

mmm, quello di jak non ho capito, nell'altro la luce semimovente ce scritto x/10 y/10 facendo anche io come sla mettendo però mouse_x/10, e mouse_y/10 le posizioni non sono esatte, come funzionano queste posizioni?
Giochi da me creati:
Spoiler
Immagine

Avatar utente
Delfador
Membro attivo
Messaggi: 376
Iscritto il: 04/01/2010, 19:52
Specialità: Ehm...
Località: <- Per di qua ->
Contatta:

Re: Luce e ombra

Messaggio da Delfador »

Tizzio ha scritto:
[Delfador] ha scritto:Consapevole del fatto che il modo di jak è sempre e comunque migliore del mio, ho fatto una nuova versione con il problema corretto.
Download
Spoiler
Immagine
ma non è molto reale come luce...
E' troppo rapido il passaggio da luce ad ombra, dovresti farlo mooolto più graduale.
comunque ben fatto :cappa:
Non so se tu abbia guardato il gmk, ma le luci sono fatte da sprite, in modo che possano essere modificate come si vuole.
Quello che ho fatto io è uno sprite di esempio.
Immagine

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

Re: Luce e ombra

Messaggio da Jak »

A me funge perfettamente anche con il mouse:
http://www.megaupload.com/?d=JJJNMY42
Comunque ora cercherò di spiegarvi meglio come funziona il draw. Voi avete una griglia di luce delle dimensioni che volete, questa griglia in realtà non è una griglia della room ma della view e si "streccha" fino ad ottenere le dimensioni della view. Immaginatevi di avere un background piccolo 10 volte la view e lo strecchate per coprire tutta la view, cosa succede? Succede che i pixel li vedete 10 volte più grandi del normale. La stessa cosa funziona in egual modo con i miei script, la mappa di luce viene strecchata. Quando modificate la mappa luce è come se modificate i pixel del backgorund quindi coordinate relative allo sfondo e non alla view.
Visto che noto che esempi come questo vi interessano provvederò a farne un'esempio più veloce nonchè più facile da usare. Stavolta userò le vere coordinate della room, ciò non significa che la mappa deve essere obbligatoriamente precisa al pixel ma significa che vi chiederà anche il fattore di scala della mappa e poi i calcoli saranno automatici.
Non vi ho detto la parte più bella, come avete sicuramente notato una luce può essere anche fuori dalla view dando risultati comunque perfetti(è anche fuori dalla mappa luce, alla fine sono solo calcoli risparmiati). Ora farò in modo che quando disegnate si disegna automaticamente il punto esatto della mappa in base alla view. Il draw sarà comunque abbastanza lento visti i numerosi triangoli da disegnare(che comunque cercherò di disegnarne il meno possibile "fondendo" triangoli che non hanno alcuna illuminazione, ora vedrò).

EDIT:
Ho fatto vari test con le primitive e posso confermare che il problema dello squadrettamento è irrisolvibile:
Immagine
Come potete vedere dall'immagine le directx, al contrario delle opengl, non hanno il supporto ai "quads" che al posto dei triangoli sono semplicemente quadrati ma che risolvono problemi di visualizzazione come questo. Un triangolo non può a prescindere fare calcoli anche per un'eventuale altro vertice di conseguenza viene fuori questo orribile risultato cioè che da una direzione viene smoothato per bene(e comunque nemmeno tanto bene) mentre dall'altro è più "tagliato".
Ora lascio a voi decidere il sistema di rendering:
-uso i triangoli come prima dando quell'effetto.
-uso una surface e disegno il pixel apposito della mappa di luce magari a definizione doppia con un po di smooth e poi la scalate su tutta la view. Questo da un risultato un po peggiore rispetto ai triangoli, specialmente a basse definizioni ma è probabilmente molto più veloce rispetto a disegnare i triangoli(un pixel è molto più veloce a disegnarsi rispetto ad un triangolo). E, vista la maggiore velocità sarà possibile ottenere una definizione più alta quindi forse da un risultato migliore.
-metto tutti e due i metodi e sarà l'utilizzatore a scegliere in base al caso(per ora faccio così)
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
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: Luce e ombra

Messaggio da Sla »

Bah per me il metodo migliore è quello di delfa, le luci mi sembrano più corrette ed il sistema è più veloce.
eppure mi sembra tutto giusto...

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: Luce e ombra

Messaggio da Tizzio »

jack prenditi uno spazio web e carica la roba la...
la maggiorparte delle volte non scarico perchè mi rompo ad aspettare 40 secondi...

Avatar utente
Annoyed grunt
Membro d'elite
Messaggi: 1422
Iscritto il: 10/04/2009, 16:21
Uso: GM:Studio 2
Contatta:

Re: Luce e ombra

Messaggio da Annoyed grunt »

Delfador,il tuo metodo funziona, ma usando la view me lo sballa un sacco. Praticamente la luce se ne va letteralmente per i fatti suoi.

(ieri ero stanco e non ci capivo una cippa)

Però, essendo io niubbo, ci sono alcune funzioni che non ho capito riguardo il drawing delle luci per i fuochi.
Cos'è la i? Boh.

Quanta è brutta la vita da niubbo.

BUT I LOVE IT! (cit.)
Immagine

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

Re: Luce e ombra

Messaggio da Jak »

Super_Slascio ha scritto:Bah per me il metodo migliore è quello di delfa, le luci mi sembrano più corrette ed il sistema è più veloce.
Bè, meglio allora, mi risparmio la fatica di farlo.
PS: a me sembra che quello di delfador venga benissimo.
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
Delfador
Membro attivo
Messaggi: 376
Iscritto il: 04/01/2010, 19:52
Specialità: Ehm...
Località: <- Per di qua ->
Contatta:

Re: Luce e ombra

Messaggio da Delfador »

Annoyed grunt ha scritto:Delfador,il tuo metodo funziona, ma usando la view me lo sballa un sacco. Praticamente la luce se ne va letteralmente per i fatti suoi.

(ieri ero stanco e non ci capivo una cippa)

Però, essendo io niubbo, ci sono alcune funzioni che non ho capito riguardo il drawing delle luci per i fuochi.
Cos'è la i? Boh.

Quanta è brutta la vita da niubbo.

BUT I LOVE IT! (cit.)
Quando ho tempo (ora non sono a casa mia) ti faccio un esempio con le view.
Inoltre se ti fai trovare in chat ti posso spiegare quello che non capisci ;)
Immagine

Avatar utente
Delfador
Membro attivo
Messaggi: 376
Iscritto il: 04/01/2010, 19:52
Specialità: Ehm...
Località: <- Per di qua ->
Contatta:

Re: Luce e ombra

Messaggio da Delfador »

Ok ho fatto l'esempio con le view.
Puoi scaricarlo dal link di prima.
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Google [Bot] e 41 ospiti