Autore Topic: disegnare oggetti 2D su un piano openGL  (Letto 2604 volte)

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
disegnare oggetti 2D su un piano openGL
« il: 03 Maggio 2010, 16:04:26 CEST »
0
Dopo essere riuscito a disegnare una griglia in opengl, ora ho un'altro problema.

La griglia di fatto è un piano che ruota a 360° su ogni asse, utilizzando i sensori di orientamento.
Il passo successivo è disporre degli oggetti 2D sulla griglia.
come posso farlo?

L'idea è quella di disegnare questo oggetto e posizionarlo sulla griglia secondo le coordinate del sistema opengl. Quello che voglio ottenere è che l'oggetto risulti come se fosse appoggiato alla griglia e che quindi ruoti con lui, un po' come se fosse proprio incollato sopra.

So che non è una cosa facile, ma vorrei solo cercare di capire che strada prendere.
« Ultima modifica: 03 Maggio 2010, 16:55:17 CEST da noodles »

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:disegnare oggetti 2D su un piano openGL
« Risposta #1 il: 09 Giugno 2010, 12:21:19 CEST »
0
In che modo vuoi disporre gli oggetti 2d sulla griglia?
cioè: la griglia è una griglia vista dall'alto?

Ad ogni modo, per ottenere la sensazione che l'oggetto sia incollato sopra la griglia, devi settare 1 delle 3 coordinate di posizione in modo che siano sullo stesso piano della griglia.
Mi spiego meglio: supponi di guardare lo schermo del dispositivo, e di vedere la griglia vista dall'alto.
Il piano che vedi è il piano xy, la cui origine è il punto in basso a sinistra dello schermo stesso.
Affinché un oggetto sembri incollato, deve avere la coordinata z uguale a quella del piano, per cui se il piano è z=0, allora il tuo oggetto deve avere il punto di appoggio in z=0.
Questo vuol dire che se l'oggetto mostra la faccia allo schermo, avrà tutti i punti con coordinate del tipo (x,y,0), considerando una normale rivolta verso lo schermo.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:disegnare oggetti 2D su un piano openGL
« Risposta #2 il: 09 Giugno 2010, 14:50:32 CEST »
0
Ciao grazie per il tuo intervento.
Quello che dici è esattamente quello che avevo in mente, ma non è proprio quello che volevo sapere :)

Il mio vero problema è quale approccio usare? Io pensavo di disegnare degli oggetti 2D per esattezza delle icone, quindi quadrati da disporre sulla griglia e applicarci una texture png a fondo trasparente, potrebbe funzionare? Mi serve l'approccio più facile e indolore.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:disegnare oggetti 2D su un piano openGL
« Risposta #3 il: 09 Giugno 2010, 15:48:23 CEST »
0
Bene.
Ogni quadrato lo puoi considerare come un oggetto (formato da 2 triangoli, se vuoi) al quale puoi appiccicare una texture con trasparenza e che puoi posizionare e ruotare come meglio di serve;
openGL fornisce primitive anche per disegnare rettangoli, quindi dovrebbe venirti abbastanza semplice fare ciò che vuoi.

Per quanto riguarda l'approccio....non capisco bene cosa tu voglia dire, per cui scusami se scrivo cose di cui sei già a conoscenza. Se mi spieghi meglio, e se sono in grado, ti aiuterò molto volentieri.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:disegnare oggetti 2D su un piano openGL
« Risposta #4 il: 09 Giugno 2010, 16:02:48 CEST »
0
Per quanto riguarda l'approccio....non capisco bene cosa tu voglia dire, per cui scusami se scrivo cose di cui sei già a conoscenza. Se mi spieghi meglio, e se sono in grado, ti aiuterò molto volentieri.

Probabilmente sono io che mi devo scusare... :) di openGL non so praticamente nulla, l'ho iniziato a vedere da poco e in modo molto superficiale giusto per i miei scopi.
cmq... per approccio intendo utilizzare la via più corretta e facile per fare quello a cui mi riferivo, ma vedo chi siamo capiti bene.
Grazie per la risposta. ;)

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:disegnare oggetti 2D su un piano openGL
« Risposta #5 il: 09 Giugno 2010, 16:21:47 CEST »
0
Una buona lettura su openGL la trovi quì: http://nehe.gamedev.net/
Il relativo porting per android dei primi tutorial lo trovi quì: http://insanitydesign.com/wp/projects/nehe-android-ports/

Ti consiglio vivamente di dargli un'occhiata. Sono tutorial fatti veramente molto bene e in maniera abbastanza semplice.

Buon lavoro.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Vytek

  • Translate Team
  • Utente junior
  • **
  • Post: 125
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 8.1
Re:disegnare oggetti 2D su un piano openGL
« Risposta #6 il: 09 Giugno 2010, 16:48:17 CEST »
0
Gli esempi di nehe sono stati portati anche per Android:


 nehe-android -
 
 Project Hosting on Google Code


Un saluto e buon lavoro...

Offline noodles

  • Utente junior
  • **
  • Post: 130
  • Respect: +8
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Sistema operativo:
    Mac OS X Snow Leopard
Re:disegnare oggetti 2D su un piano openGL
« Risposta #7 il: 09 Giugno 2010, 16:51:30 CEST »
0
Si li avevo già utilizzati, anzi se quelli probabilmente non sarei riuscito a scrivere nemmeno una riga.  ;-)