[D3D] Rotazione modello 3D con click su assi come in Unity3D

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Sla »

Xeryan ha scritto:Il fatto è che non so' proprio da dove partire... :(
Ovviamente dal manuale
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: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Jak »

Una soluzione molto semplice senza usare trigonometria è quella di disegnare separatamente su una surface quei cerchi con il loro colore puro(rosso,blu,verde senza sfumature) dopodichè fai surface_get_pixel() per scoprire l'asse cliccato in base al colore del pixel dove sta il mouse. Con un piccolo offset puoi tenere la surface piuttosto piccola e non grande come tutto lo schermo ma se vuoi potresti anche farlo per semplicità. La surface la crei all'inizio per il resto basta pulirla ogni volta che clicchi e disegnarci sopra i cerchi(che sarà un'operazione piuttosto veloce) e ruotare il modello di conseguenza con le trasformazioni.
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: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Sla »

che trovate geniali, jak :)
Se vuoi fare i calcoli ancora più velocemente potresti trasformare la surface in sprite e verificare la collisione col mouse.
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: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Jak »

Super_Slascio ha scritto:che trovate geniali, jak :)
Thanks. :mrgreen: Mi è venuta così di getto guardando l'immagine di xeryan.
Super_Slascio ha scritto:Se vuoi fare i calcoli ancora più velocemente potresti trasformare la surface in sprite e verificare la collisione col mouse.
Convertire la surface in sprite non è un'operazione velocissima inoltre il massimo che puoi fare è controllare se viene cliccato uno dei 3 assi ma non quale.(Non esiste nemmeno sprite_get_pixel) inoltre se si pulisce la surface con un'altro colore come nero o bianco si può verificare anche se almeno uno degli assi è stato cliccato oppure no quindi la conversione in sprite è abbastanza inutile, specialmente se, come è probabilmente, la visuale si muove spesso così come gli assi stessi quindi si creerebbe uno sprite ad ogni frame, non è conveniente.
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

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Solid Snake »

Credo che i cerchi te li devi disegnare in d3d su una surface... che centra l'immagine?
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Solid Snake »

Non ti abbattere!
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

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

Re: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Jak »

Si esatto, è chiaro che i cerchi li devi disegnare a mano per corrispondere alla visuale 3d.
Se fosse uno sprite fisso non ci sarebbero problemi ma lo trovo decisamente controintuitivo :fapensare:
Non è così complesso disegnare i cerchi a mano dai, basta un for.
Per l'aggiunta alla precedente rotazione... se usi gli angoli di eulero(quindi i 3 cerchi si adattano automaticamente in base al modello e non sono "fissi") non ci sono problemi, hai una corrispondenza precisa. Se invece vuoi proprio far seguire l'asse statico non saprei, con le matrici a mano sarebbe tutto più facile ma game maker non lo permette. Avevo trovato dei calcoli per ottenere ciò ma ora non li trovo più. Una ricerca approfondita su google dovrebbe essere sufficiente.
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

Solid Snake
GMI Advanced
Messaggi: 2093
Iscritto il: 19/12/2010, 16:17
Specialità: Programmazione
Uso: GM:Studio 1.4 Standard
Contatta:

Re: [D3D] Rotazione modello 3D con click su assi come in Uni

Messaggio da Solid Snake »

mi pare che funzionino bene... una volta ho fatto uno specchio i d3d e funzionava benissimo la proiezione...
♥♥♥♥♥♥
Immagine
♥♥♥♥♥♥
Spoiler
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti