theGiallo
A.N.E.C.I.F.E.G.
Messaggi: 2,886
Registrato: Mar 2011
Offline
|
#1
Come selezionare oggetti?
Potrei comprare libri e imparare, ma non resisto alla curiosità e vi chiedo
È 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
Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( )
(Questo messaggio è stato modificato l'ultima volta il: 17-03-2011 0:04 da theGiallo.)
|
|
| 17-03-2011 0:04 |
|
dany_dev
Posting Freak
Messaggi: 3,991
Registrato: Sep 2010
Offline
|
#2
RE: Come selezionare oggetti?
ma un array da scorrere contente il bounding box ti fa schifo?
|
|
| 17-03-2011 0:06 |
|
theGiallo
A.N.E.C.I.F.E.G.
Messaggi: 2,886
Registrato: Mar 2011
Offline
|
#3
RE: Come selezionare oggetti?
(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 ( )
|
|
| 17-03-2011 0:11 |
|
Xaldyz
Esoterico
Messaggi: 2,385
Registrato: Apr 2010
Offline
|
#4
RE: Come selezionare oggetti?
|
|
| 17-03-2011 0:16 |
|
theGiallo
A.N.E.C.I.F.E.G.
Messaggi: 2,886
Registrato: Mar 2011
Offline
|
#5
RE: Come selezionare oggetti?
(17-03-2011 0:16)Xaldyz ha scritto: Forse questo?
più o meno quello che avevo immaginato! solo che è una cosa fatta apposta  non pensavo esistesse una cosa simile
pensa che quel sito lo ho anche usato, ma non mi ero accorto di quel tutorial
grazie mille
Gianluca Alloisio => thegiallo.blogspot.com
classe 1989
studente al 4° anno - Informatica - SMFN - UniGe
Dottore in Informatica ( )
|
|
| 17-03-2011 0:23 |
|
Tx77
Code Monkey
Messaggi: 568
Registrato: Dec 2010
Offline
|
#6
RE: Come selezionare oggetti?
(17-03-2011 0:04)theGiallo ha scritto: Potrei comprare libri e imparare, ma non resisto alla curiosità e vi chiedo 
È 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 
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.
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 |
|
dany_dev
Posting Freak
Messaggi: 3,991
Registrato: Sep 2010
Offline
|
#7
RE: Come selezionare oggetti?
(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
|
|
| 17-03-2011 9:40 |
|
Subr3v
Member
Messaggi: 221
Registrato: Jul 2010
Online
|
#9
RE: Come selezionare oggetti?
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 ?
Stefano Musumeci - Game Developer - Alcapa Games
|
|
| 17-03-2011 11:05 |
|
theGiallo
A.N.E.C.I.F.E.G.
Messaggi: 2,886
Registrato: Mar 2011
Offline
|
#10
RE: Come selezionare oggetti?
(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
(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 ( )
(Questo messaggio è stato modificato l'ultima volta il: 17-03-2011 16:19 da theGiallo.)
|
|
| 17-03-2011 16:18 |
|
encelo
Main(die)stream
Messaggi: 3,258
Registrato: Nov 2008
Offline
|
#11
RE: Come selezionare oggetti?
(17-03-2011 16:18)theGiallo ha scritto: beh io ho intenzione di sviluppare solo con OpenGL e il mobile non mi attira 
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 |
|
encelo
Main(die)stream
Messaggi: 3,258
Registrato: Nov 2008
Offline
|
#13
RE: Come selezionare oggetti?
Quindi cerca "picking" sul forum e rifatti ad una delle tante discussioni in merito...
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 |
|
hurricane86
Posting Freak
Messaggi: 1,266
Registrato: Jun 2009
Offline
|
#15
RE: Come selezionare oggetti?
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 |
|