Specchi in d3d
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Specchi in d3d
Idee?
Avevo visto tempo fa qualcosa con le view ma non lo ritrovo più...
Qualcuno sa qualche tecnica?
Avevo visto tempo fa qualcosa con le view ma non lo ritrovo più...
Qualcuno sa qualche tecnica?
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Specchi in d3d
Se hai gm8.1 ti basta draware su una surface il mondo con la telecamera che si basa su coordinate particolari in base al riflesso. Poi usi la surface come texture.guidox ha scritto:Idee?
Avevo visto tempo fa qualcosa con le view ma non lo ritrovo più...
Qualcuno sa qualche tecnica?
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
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
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Ho provato anche questo, ma ho qualche problemino. -.-Jak ha scritto:Se hai gm8.1 ti basta draware su una surface il mondo con la telecamera che si basa su coordinate particolari in base al riflesso. Poi usi la surface come texture.guidox ha scritto:Idee?
Avevo visto tempo fa qualcosa con le view ma non lo ritrovo più...
Qualcuno sa qualche tecnica?
Domani ti posto il codice ora sono le 2.
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Ecco:
Create:
in step:
in draw:
Ma mi da un muro bianco...
Idee?
Create:
Codice: Seleziona tutto
surface=surface_create(32,32);
Codice: Seleziona tutto
surface_set_target(surface);
draw_clear(c_white);
d3d_set_projection(
128,32,16,
128,32+10,16,
0,0,1);
surface_reset_target();
Codice: Seleziona tutto
a=surface_get_texture(surface);
draw_set_color(c_white);
d3d_draw_wall(128-16,32,0,128+16,32,32,a,1,1);
Idee?
Re: Specchi in d3d
infatti sbagli... devi fare che ogni oggetto
quando tu fai d3d_draw_blah venga drawwato 2 volte
1 sulla surfacee e 1 su schermo normale...
esisteva già da tempo una dll chiamata surfacefix.dll che permetteva di usare le surface nel 3d
e c'era un esempio allegato di un monitor..
ecco il link.
http://gmc.yoyogames.com/index.php?showtopic=454468
l'esempio è in puro gml.
quando tu fai d3d_draw_blah venga drawwato 2 volte
1 sulla surfacee e 1 su schermo normale...
esisteva già da tempo una dll chiamata surfacefix.dll che permetteva di usare le surface nel 3d
e c'era un esempio allegato di un monitor..
ecco il link.
http://gmc.yoyogames.com/index.php?showtopic=454468
l'esempio è in puro gml.
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: Specchi in d3d
gm 8.1.qualchecosa gestisce (finalmente) le surface anche nel 3d, senza dll esterna.
questo codice:
d3d_set_projection(
128,32,16,
128,32+10,16,
0,0,1);
prepara la modalità 3d, ma poi non ci disegna assolutamente nulla, giustamente non hai nulla nella surface che vai a disegnare. oltre a configurare la proiezione devi poi disegnare gli oggetti 3d al suo interno
questo codice:
d3d_set_projection(
128,32,16,
128,32+10,16,
0,0,1);
prepara la modalità 3d, ma poi non ci disegna assolutamente nulla, giustamente non hai nulla nella surface che vai a disegnare. oltre a configurare la proiezione devi poi disegnare gli oggetti 3d al suo interno
Schiva 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é?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
Re: Specchi in d3d
si si ma l'ho segnalato proprio perchè dentro c'è un esempio di monitor..BaronVsCorsar ha scritto:gm 8.1.qualchecosa gestisce (finalmente) le surface anche nel 3d, senza dll esterna.
questo codice:
d3d_set_projection(
128,32,16,
128,32+10,16,
0,0,1);
prepara la modalità 3d, ma poi non ci disegna assolutamente nulla, giustamente non hai nulla nella surface che vai a disegnare. oltre a configurare la proiezione devi poi disegnare gli oggetti 3d al suo interno
e poi non tutti hanno gm 8.1
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Infatti ora ho capito, ma come faccio, secondo vai ha senso mettere screen_redraw() dentro? xDBaronVsCorsar ha scritto:gm 8.1.qualchecosa gestisce (finalmente) le surface anche nel 3d, senza dll esterna.
questo codice:
d3d_set_projection(
128,32,16,
128,32+10,16,
0,0,1);
prepara la modalità 3d, ma poi non ci disegna assolutamente nulla, giustamente non hai nulla nella surface che vai a disegnare. oltre a configurare la proiezione devi poi disegnare gli oggetti 3d al suo interno
Oppure un ogni oggetti metto tutti e 2 i draw va...
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: Specchi in d3d
la seconda.
ora con "screen_redraw" non ricordo se viene chiamato anche l'evento draw di tutti gli oggetti o se semplicemente si butta sulla memoria video quanto era nella memoria di appoggio (ad esempio se usi funzioni grafiche non in evento draw)...
mi pare non chiami gli eventi draw.
se programmi bene l'evento draw e se screen_redraw invoca anche tutti gli eventi draw *potrebbe* essere sufficiente usarlo mentre dirotti la surface da utilizzare...
ora con "screen_redraw" non ricordo se viene chiamato anche l'evento draw di tutti gli oggetti o se semplicemente si butta sulla memoria video quanto era nella memoria di appoggio (ad esempio se usi funzioni grafiche non in evento draw)...
mi pare non chiami gli eventi draw.
se programmi bene l'evento draw e se screen_redraw invoca anche tutti gli eventi draw *potrebbe* essere sufficiente usarlo mentre dirotti la surface da utilizzare...
Schiva 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é?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Ok ci sono riuscito.
Ora calcolo anche l' angolazione dello specchio rispetto a quella del pg... effetto eccezionale.
Dopo posto un esempio.
Ora calcolo anche l' angolazione dello specchio rispetto a quella del pg... effetto eccezionale.
Dopo posto un esempio.
- maz85
- Admin
- Messaggi: 8287
- Iscritto il: 07/02/2004, 15:57
- Specialità: Nientologo
- Località: Oblio
- Contatta:
Re: Specchi in d3d
Mi hai letto nel pensiero, lo stavo facendo qualche giorno fa
Votate GmItalia nella classifica!
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Figo... sicuramente il tuo è meglio del mio.
Postalo a e facci vedere, io sto ancora sistemando 2 cosette...
Postalo a e facci vedere, io sto ancora sistemando 2 cosette...
-
- Admin
- Messaggi: 12355
- Iscritto il: 19/08/2009, 16:20
- Specialità: Programmazione 3D
- Uso: GM:Studio 2
- Contatta:
Re: Specchi in d3d
Ma perchè anzichè lo specchio non ti fai direttamente i portali?
Ah già non hai i piani di ritaglio più flessibili come il u3d, vabbè basta che eviti di usare i portali su pareti molto fine ma ti accontenti dei muri
PS: una curiosità, ma se usate una surface più piccola dello schermo e drawate su quella le dimensioni vengono fatte in proporzione alle dimensioni dello schermo o della surface? Sarebbe utile disegnare l'immagine specchiata con una risoluzione minore per ottimizzare le prestazioni
PS2: mi hai fatto venire voglia di continuare il 3d anaglifico che, lo dico già, nocche l'ha testato e funge perfettamente, almeno nel 2d.
Ah già non hai i piani di ritaglio più flessibili come il u3d, vabbè basta che eviti di usare i portali su pareti molto fine ma ti accontenti dei muri
PS: una curiosità, ma se usate una surface più piccola dello schermo e drawate su quella le dimensioni vengono fatte in proporzione alle dimensioni dello schermo o della surface? Sarebbe utile disegnare l'immagine specchiata con una risoluzione minore per ottimizzare le prestazioni
PS2: mi hai fatto venire voglia di continuare il 3d anaglifico che, lo dico già, nocche l'ha testato e funge perfettamente, almeno nel 2d.
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
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
- BaronVsCorsar
- GMI VIP
- Messaggi: 4699
- Iscritto il: 14/02/2004, 12:05
- Specialità: Saccenza
- Uso: GameMaker 8.1
- Località: Ferrara
- Contatta:
Re: Specchi in d3d
usando le view con le funzioni 3D ho realizzato uno schermo secondario di 1/8 dello schermo totale, senza dover modificare nulla negli eventi draw.
basta scrivere il codice utilizzando le variabili interne delle dimensioni delle view invece di costanti numeriche.
Non ho mai provato con le surface, ma non vedo perchè dovrebbe cambiare.
basta scrivere il codice utilizzando le variabili interne delle dimensioni delle view invece di costanti numeriche.
Non ho mai provato con le surface, ma non vedo perchè dovrebbe cambiare.
Schiva 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é?
by Lego: Vado in un bar e faccio "votiamo che quel tizio la in fondo venga buttato fuori", ma perché?
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Specchi in d3d
Visto che non voglio aprire un nuovo topic lo scrivo qui...
Per postare l' esempio dello specchio mi stavo facendo un bel ambientino con sketchup ma vado ad aprire marzipan(è la prima volta su win 7) e non mi si apre, in realtà apre solo un processo MARZIPAN SE ma nient'altro...
Idee?
Per postare l' esempio dello specchio mi stavo facendo un bel ambientino con sketchup ma vado ad aprire marzipan(è la prima volta su win 7) e non mi si apre, in realtà apre solo un processo MARZIPAN SE ma nient'altro...
Idee?
- maz85
- Admin
- Messaggi: 8287
- Iscritto il: 07/02/2004, 15:57
- Specialità: Nientologo
- Località: Oblio
- Contatta:
Re: Specchi in d3d
Non ho provato marzipan altrove hum...
Comunque il mio esempio diciamo che non è prettamente uno specchio, ma serve per fare un riflesso su un bicchiere, ma comunque la tecnica è quella:
- cam secondaria
- target su surface
- d3d_set_projection partendo dalla posizione della cam
- performa l'evento draw degli oggetti che mi interessano
- reset surface
- texture from surface
- applica texture al modello
ovviamente ogni tot step e la surface è 128x128 perchè più grande non serve. E' per un gioco che ho in progetto quindi se permetti mi scoccia postarlo ora o ritagliare l'esempio.
Per fare un monitor secondario si possono usare le viste (vedi ShellGround64) come ha detto Baron e all'inizio volevo provare in questa maniera per fare lo specchio per poi fare un cattura schermo, ma mi è sembrato scomodo e non l'ho provato.
Comunque il mio esempio diciamo che non è prettamente uno specchio, ma serve per fare un riflesso su un bicchiere, ma comunque la tecnica è quella:
- cam secondaria
- target su surface
- d3d_set_projection partendo dalla posizione della cam
- performa l'evento draw degli oggetti che mi interessano
- reset surface
- texture from surface
- applica texture al modello
ovviamente ogni tot step e la surface è 128x128 perchè più grande non serve. E' per un gioco che ho in progetto quindi se permetti mi scoccia postarlo ora o ritagliare l'esempio.
Per fare un monitor secondario si possono usare le viste (vedi ShellGround64) come ha detto Baron e all'inizio volevo provare in questa maniera per fare lo specchio per poi fare un cattura schermo, ma mi è sembrato scomodo e non l'ho provato.
Votate GmItalia nella classifica!
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
- HenrikUp
- Membro super
- Messaggi: 584
- Iscritto il: 04/07/2011, 10:50
- Specialità: Programmatore
- Uso: GM:Studio 1.4 Standard
- Località: SudItalia
- Contatta:
Re: Specchi in d3d
Questa la so'!Anche a me non funzionava marzipan per questo ne ho scaricata un altra versione che ti funzionera' sicuramente e in formato gmk crea l'executable e usalo!
- Allegati
-
- Marzipan.gmk
- (71.14 KiB) Scaricato 114 volte
Chi c’è in linea
Visitano il forum: Nessuno e 16 ospiti