Orario: 25-05-2013, 16:48 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Come selezionare oggetti?
Autore Messaggio
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#1 Come selezionare oggetti?
0
Potrei comprare libri e imparare, ma non resisto alla curiosità e vi chiedo Sorriso

È da un po' che ci penso. In giochi come strategici, o anche rpg top view, o comunque in editor, come si fa normalmente per sapere quale oggetto sta sotto il puntatore?
Si potrebbe castare un raggio, ma mi sembrerebbe costoso...
Mi era venuta l'idea di assegnare ad ogni oggetto un colore differente da usare per fare un rendering non visualizzato a schermo, e quindi prendere il colore sotto il puntatore o dove serve e da quello prendere l'oggetto, ma non so se sarebbe economico, però userebbe la GPU invece del processore, poi non so neanche come si potrebbe fare (perchè credo che si potrebbe fare), non mi sembra dimezzerebbe i fps visto che sarebbe un semplice rendering con colore e depthbuffer

mi rimetto al vostro sapere Sorriso

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
(Questo messaggio è stato modificato l'ultima volta il: 17-03-2011 0:04 da theGiallo.)
17-03-2011 0:04
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
dany_dev
Posting Freak

Messaggi: 3,991
Registrato: Sep 2010
Offline Offline
#2 RE: Come selezionare oggetti?
0
ma un array da scorrere contente il bounding box ti fa schifo?
17-03-2011 0:06
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#3 RE: Come selezionare oggetti?
0
(17-03-2011 0:06)dany_dev ha scritto:  ma un array da scorrere contente il bounding box ti fa schifo?

mi stai dicendo di castare un raggio solo con le bounding box o non capisco?

le bounding box abbastanza, intendevo qualcosa di preciso, ci ho pensato, ma non mi piace l'idea

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
17-03-2011 0:11
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Xaldyz
Esoterico

Messaggi: 2,385
Registrato: Apr 2010
Offline Offline
#4 RE: Come selezionare oggetti?
0
Forse questo?
17-03-2011 0:16
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#5 RE: Come selezionare oggetti?
0
(17-03-2011 0:16)Xaldyz ha scritto:  Forse questo?

più o meno quello che avevo immaginato! solo che è una cosa fatta apposta Sorriso non pensavo esistesse una cosa simile

pensa che quel sito lo ho anche usato, ma non mi ero accorto di quel tutorial

grazie mille
Inchino

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
17-03-2011 0:23
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Tx77
Code Monkey

Messaggi: 568
Registrato: Dec 2010
Offline Offline
#6 RE: Come selezionare oggetti?
0
(17-03-2011 0:04)theGiallo ha scritto:  Potrei comprare libri e imparare, ma non resisto alla curiosità e vi chiedo Sorriso

È da un po' che ci penso. In giochi come strategici, o anche rpg top view, o comunque in editor, come si fa normalmente per sapere quale oggetto sta sotto il puntatore?
Si potrebbe castare un raggio, ma mi sembrerebbe costoso...
Mi era venuta l'idea di assegnare ad ogni oggetto un colore differente da usare per fare un rendering non visualizzato a schermo, e quindi prendere il colore sotto il puntatore o dove serve e da quello prendere l'oggetto, ma non so se sarebbe economico, però userebbe la GPU invece del processore, poi non so neanche come si potrebbe fare (perchè credo che si potrebbe fare), non mi sembra dimezzerebbe i fps visto che sarebbe un semplice rendering con colore e depthbuffer

mi rimetto al vostro sapere Sorriso

quella dei colori e' una tecnica che si usa, la avevo gia' sentita e personalmente non e' che mi faccia impazzire. Perche' cmq. per avere il risultato nella CPU di quel pixel devi lockare il buffer colore e non mi piace creare dipendenze inutili fra CPU->GPU.

Il name stack e' OpenGL only e dubito sia supportato da mobile e altre periferiche che hanno cmq. una API OpenGL simile (dico a naso senza cercare...).

Tanto al 90% hai gia' una struttura efficiente per attraversare la scena e puoi decidere caso per caso se ti basta una box, una sfera o un albero di capsule legato alle bone. Smile

Questo riguardo giochi, se volessi fare tipo una selezione del wireframe in un editor, beh forse l'approccio colori sarebbe il piu' semplice e da un editor nessuno si aspetta prestazioni al top, comunque.

Tiziano Lena
Blog - Linkedin - Google+
17-03-2011 8:03
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
dany_dev
Posting Freak

Messaggi: 3,991
Registrato: Sep 2010
Offline Offline
#7 RE: Come selezionare oggetti?
0
(17-03-2011 0:11)theGiallo ha scritto:  
(17-03-2011 0:06)dany_dev ha scritto:  ma un array da scorrere contente il bounding box ti fa schifo?

mi stai dicendo di castare un raggio solo con le bounding box o non capisco?

le bounding box abbastanza, intendevo qualcosa di preciso, ci ho pensato, ma non mi piace l'idea

avevo frainteso la richiesta Sorriso
17-03-2011 9:40
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Eclipse
npc in fps 4 food

Messaggi: 11,275
Registrato: Sep 2004
Offline Offline
#8 RE: Come selezionare oggetti?
0
si traduce da spazio 3d a screen space e si fa una collisione 2d oppure viceversa (si fa partire un raggio dal mouse e si fa il raycast con la bbox)

Giuseppe Navarria - Moonloop
[Immagine: twittericon.png] [Immagine: linkedinicon.png] [Immagine: steamicon.png]
17-03-2011 11:02
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Subr3v
Member

Messaggi: 221
Registrato: Jul 2010
Online Online
#9 RE: Come selezionare oggetti?
0
Lanciare un raggio è più costoso di fare un rendering non a schermo , prendersi i dati dalla gpu e portarli alla gpu e poi controllare di che colore è il pixel del mouse ? Perplesso

Stefano Musumeci - Game Developer - Alcapa Games
17-03-2011 11:05
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#10 RE: Come selezionare oggetti?
0
(17-03-2011 8:03)Tx77 ha scritto:  Il name stack e' OpenGL only e dubito sia supportato da mobile e altre periferiche che hanno cmq. una API OpenGL simile (dico a naso senza cercare...).

beh io ho intenzione di sviluppare solo con OpenGL e il mobile non mi attira Sorriso

(17-03-2011 11:02)Eclipse ha scritto:  si traduce da spazio 3d a screen space e si fa una collisione 2d oppure viceversa (si fa partire un raggio dal mouse e si fa il raycast con la bbox)

la trasformazione la fai con GPU o CPU?

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
(Questo messaggio è stato modificato l'ultima volta il: 17-03-2011 16:19 da theGiallo.)
17-03-2011 16:18
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
encelo
Main(die)stream

Messaggi: 3,258
Registrato: Nov 2008
Offline Offline
#11 RE: Come selezionare oggetti?
0
(17-03-2011 16:18)theGiallo ha scritto:  beh io ho intenzione di sviluppare solo con OpenGL e il mobile non mi attira Sorriso
Allora lascia stare il supporto al picking che è, ovviamente, deprecated anche nelle OpenGL non ES.

Angelo "Encelo" Theodorou
.: Blog | Twitter | LinkedIn | Ohloh | Last.FM | Vimeo | Steam :.
All problems in computer graphics can be solved with a matrix inversion. - James Blinn
17-03-2011 18:14
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#12 RE: Come selezionare oggetti?
0
(17-03-2011 18:14)encelo ha scritto:  
(17-03-2011 16:18)theGiallo ha scritto:  beh io ho intenzione di sviluppare solo con OpenGL e il mobile non mi attira Sorriso
Allora lascia stare il supporto al picking che è, ovviamente, deprecated anche nelle OpenGL non ES.

eqquindi??

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
17-03-2011 18:16
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
encelo
Main(die)stream

Messaggi: 3,258
Registrato: Nov 2008
Offline Offline
#13 RE: Come selezionare oggetti?
0
Quindi cerca "picking" sul forum e rifatti ad una delle tante discussioni in merito... Sisi

Angelo "Encelo" Theodorou
.: Blog | Twitter | LinkedIn | Ohloh | Last.FM | Vimeo | Steam :.
All problems in computer graphics can be solved with a matrix inversion. - James Blinn
17-03-2011 18:42
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
theGiallo
A.N.E.C.I.F.E.G.

Messaggi: 2,886
Registrato: Mar 2011
Offline Offline
#14 RE: Come selezionare oggetti?
0
(17-03-2011 18:42)encelo ha scritto:  Quindi cerca "picking" sul forum e rifatti ad una delle tante discussioni in merito... Sisi

non mi sembrano così tante e non ho trovato nulla a parte una di XNA, quindi inutile e un suggerimento di raytracing

Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( Asd )
[Immagine: znwop2.png][Immagine: 2sb28nm.png][Immagine: favicon.ico][Immagine: 2drc2gz.png][Immagine: 2cqhg0n.png]
17-03-2011 18:51
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
hurricane86
Posting Freak

Messaggi: 1,266
Registrato: Jun 2009
Offline Offline
#15 RE: Come selezionare oggetti?
0
premesso che l'argomento è già stato trattato più volte anche qui su IV ma cercando su google avresti trovato decine di riferimenti:

es-> http://stackoverflow.com/questions/20930...ay-picking

come vedi è molto semplice...

ray = normalize(inverse(View) * inverse(Projection) * mouse_clip - cameraWorldPosition);

L'atra strada è leggere il valore depth buffer e quindi con x,y,depth ricostruirsi sempre con l'inversa della Proj e View la position nel world space. In questo caso avresti proprio il punto preciso nel word space della tua scena che poi è stato renderizzato a schermo

Martino Giovanelli
17-03-2011 20:04
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: