[d3d] rilevare coordinate mouse 3D

Argomenti riguardanti il D3D di GameMaker e librerie esterne.
Rispondi
Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Jak »

La visuale è inclinata o perfettamente topdown?
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
enick
GMI VIP
Messaggi: 3749
Iscritto il: 26/06/2011, 19:34
Specialità: 39dll e 3D
Località: Sardegna
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da enick »

In realtà credo sia più difficile.. mentre per il d3d esiste uno script che converte un vettore in coordinate, e credo ne abbia fatto uno di recente Tizzio!
Nicola porcu(Sardegna)
ImmagineImmagine
Immagine
Are you sleeping?
[email protected]

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Sla »

Xeryan ha scritto:Stavo facendo qualche test per passatempo, un rts 3d di prova, ma mi sono 'bloccato' perchè per selezionare un oggetto mouse_x e mouse_y non bastano dato che si riferiscono alla finestra, come si possono trovare le coordinate (vettori) nello spazio 3D del mouse e di conseguenza usarli con position_meeting ?

ho trovato qualche script su gmc ma sinceramente ci ho capito poco, l'unico buono manco funziona
Dovresti porre meglio la domanda, non esistono delle coordinate assolute nello spazio 3d del mouse.. visto che il mouse si trova in un piano.
Ad esempio potresti voler trovare le coordinate x,y,z di un punto appartenente ad un modello specifico che viene disegnato nella client area in mouse_x,mouse_y.

http://www.mdxinfo.com/tutorials/picking.php

Segui la logica del tutorial. In pratica fai un controllo di collisione tra una retta e la mesh che ti fa da mappa.
D3D non ti offre questa possibilità, ma puoi usare la magnifica DLL p3dc
Ultima modifica di Sla il 19/11/2012, 20:16, modificato 1 volta in totale.
eppure mi sembra tutto giusto...

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Sla »

ripeto, segui il tutorial, ti viene bene lo stesso.
Certo è che potrai selezionare solo oggetti che disegni attraverso d3d_model_draw (per come è fatta la DLL e il D3D di gm).
Ad ogni modo usare d3d_model_draw con 8 vertici è anche più performante di un d3d_draw_block, come ci insegna lod.
eppure mi sembra tutto giusto...

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

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Tizzio »

http://tizsoft.altervista.org/3Drts.gmk

ho creato lo script prendendo 2 script da gmc e raggruppandoli in uno solo
ho snellito il codice e aggiunto dei calcoli per rilevare il mouse anche se non è al centro dlla view.

Usa il fullscale o modalità window, ma non lasciare i bordi neri se no bugga (dato che l'aspect ratio della finestra è sballato)
;)

gli script originali http://gmc.yoyogames.com/index.php?showtopic=416555

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Sla »

Tizzio ha scritto:http://tizsoft.altervista.org/3Drts.gmk

ho creato lo script prendendo 2 script da gmc e raggruppandoli in uno solo
ho snellito il codice e aggiunto dei calcoli per rilevare il mouse anche se non è al centro dlla view.

Usa il fullscale o modalità window, ma non lasciare i bordi neri se no bugga (dato che l'aspect ratio della finestra è sballato)
;)

gli script originali http://gmc.yoyogames.com/index.php?showtopic=416555
funziona solo con un piano e non fa quello che xeryan ha chiesto...
perché non provate a seguire il tut che ho linkato.. imparereste anche qualcosa
eppure mi sembra tutto giusto...

Avatar utente
Sla
GMI VIP
Messaggi: 3618
Iscritto il: 21/07/2008, 10:11
Specialità: Titanismo
Località: (gm) Italia
Contatta:

Re: [d3d] rilevare coordinate mouse 3D

Messaggio da Sla »

è vero funziona solo con un piano ma per iniziare è buono
E' buono solo per iniziare. Se vuoi forme più complesse lo devi già cambiare completamente.
... insomma sono l'unico che vuole fare le cose per bene

Già che ti piacciono questi miseri trucchetti.. per vedere se hai il cursore sopra un modello dalla forma complessa lo puoi disegnare su una surface trasparente, ne estrai una sprite e vedi se collide col cursore..

Come dicevo sono solo trucchetti, non soluzioni... sono artefatti creati per risolvere solo uno dei molteplici casi in cui si manifesta un problema, fare le cose per bene significa escogitare una soluzione generica che dia sempre una risposta. Bisogna trovare
l'espressione parametrizzata sul variare dei casi di un problema
l'espressione parametrizzata sul variare dei casi di un problema
l'espressione parametrizzata sul variare dei casi di un problema
l'espressione parametrizzata sul variare dei casi di un problema
l'espressione parametrizzata sul variare dei casi di un problema


Per esempio quel trucchetto non funziona già più se ci sono due modelli che nel dato punto di vista appaiono sovrapposti. Quale selezioni? Quale sta sopra e quale sotto?
Urge riscrivere l'algoritmo soluzione...

Puoi andare avanti a lungo riscrivendo la soluzione decine di volte, quando finalmente ne trovi una che risponde bene alle tue necessità, ma a questo punto tanto vale fare fin dall'inizio le cose per bene.
eppure mi sembra tutto giusto...

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti