Trasparenza nel 3D

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
LPworker
Membro
Messaggi: 114
Iscritto il: 04/06/2011, 17:03
Contatta:

Trasparenza nel 3D

Messaggio da LPworker »

Nell'usare il 3D con game maker mi è spesso capitato di provare a cambiare negli eventi Draw la trasparenza del disegno con draw_set_alpha(x); Tuttavia spesso gli oggeti trasparenti non permettono di vedere ciò che c'è dietro ad essi, generando solo delle sagome del colore del background della room. Penso che ciò capiti per colpa del fatto che alcune istanze subiscano l'evento Draw prima di altre. Qualche consiglio? :fapensare:

Ecco qua un'immagine dimostrativa. Gli oggetti trasparenti sul pavimento sono trasparenti solo su alcune mattonelle, mentre su altre generano delle ombre nere. :sisisi:
Immagine

Uploaded with ImageShack.us

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Trasparenza nel 3D

Messaggio da Homunculus »

Premetto che non ho mai lavorato molto col 3d di GM, ma so per certo che per vedere quello che sta dietro a qualcosa di trasparente, l'oggetto trasparente deve essere disegnato DOPO quello che ci sta dietro. È così in opengl, e directx non fa eccezione.

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: Trasparenza nel 3D

Messaggio da guidox »

=
Cambia il depth. :)
Immagine

Immagine

LPworker
Membro
Messaggi: 114
Iscritto il: 04/06/2011, 17:03
Contatta:

Re: Trasparenza nel 3D

Messaggio da LPworker »

Nel 2D cambiare depth sarebbe la cosa ovviamente più semplice, ma nel 3D cambiando il depth, a meno che non sia io che abbia fatto pasticci, le istanze non vengono più disegnate con d3d_set_projection, ma con una vista dall'alto. :sisisi:

Non c'è un sistema che permette di cambiare le id degli oggetti? Gli oggetti con la stessa depth eseguono gli eventi in ordine di id.

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

Re: Trasparenza nel 3D

Messaggio da Jak »

Puoi anche fare il disegno da un'unico oggetto che legge le varie variabili dagli altri oggetti e così puoi disegnarli nell'ordine che vuoi tu. Con un with lo fai in'ordine di oggetto anzichè di id.
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
BaronVsCorsar
GMI VIP
Messaggi: 4699
Iscritto il: 14/02/2004, 12:05
Specialità: Saccenza
Uso: GameMaker 8.1
Località: Ferrara
Contatta:

Re: Trasparenza nel 3D

Messaggio da BaronVsCorsar »

LPworker ha scritto:Nel 2D cambiare depth sarebbe la cosa ovviamente più semplice, ma nel 3D cambiando il depth, a meno che non sia io che abbia fatto pasticci, le istanze non vengono più disegnate con d3d_set_projection, ma con una vista dall'alto. :sisisi:

Non c'è un sistema che permette di cambiare le id degli oggetti? Gli oggetti con la stessa depth eseguono gli eventi in ordine di id.
nel 3d interno non si segue più banalmente l'ordine del depth.
E' sicuro che la proiezione deve essere settata nell'oggetto a profondità maggiore (il primo ad essere eseguito), ma ovviamente la renderizzazione dell'immagine NON può essere fatta con un ordine statico di depth (nè dinamico).
Evidentemente gm analizzerà tutti gli eventi draw e renderizza alla fine (non vedo altro modo per gestire un'immagine creata in diversi pezzi di codice).

però nella tua immagine non capisco bene: le cose nere sono SOTTO a delle mattonelle di vetro? le cose nere le vedo, ma non vedo oggetti trasparenti SULLE mattonelle, ma tubi neri sotto mattonelle trasparenti.
ImmagineSchiva questo - http:\\baronvscorsar.altervista.org
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?

LPworker
Membro
Messaggi: 114
Iscritto il: 04/06/2011, 17:03
Contatta:

Re: Trasparenza nel 3D

Messaggio da LPworker »

BaronVsCorsar ha scritto: però nella tua immagine non capisco bene: le cose nere sono SOTTO a delle mattonelle di vetro? le cose nere le vedo, ma non vedo oggetti trasparenti SULLE mattonelle, ma tubi neri sotto mattonelle trasparenti.
Gli oggetti trasparenti sono degli aculei che, caduti sul pavimento, diventano trasparenti. I tubi neri che vedi sono la porzione di cono superiore di ogni aculeo.

Avatar utente
HenrikUp
Membro super
Messaggi: 584
Iscritto il: 04/07/2011, 10:50
Specialità: Programmatore
Uso: GM:Studio 1.4 Standard
Località: SudItalia
Contatta:

Re: Trasparenza nel 3D

Messaggio da HenrikUp »

prova a fare una texture per quelle cose scegliendo l'opzione replace e cambiano l'opacita' a me cosi funziona sicuro

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti