Quando call glMatrixMode ()

La maggior parte dei tutorial OpenGL ES per Android che ho seguito ha la sua function onSurfaceChanged () come questa:

public void onSurfaceChanged( GL10 gl, int width, int height ) { gl.glViewport( 0, 0, width, height ); gl.glMatrixMode( GL10.GL_PROJECTION ); gl.glLoadIdentity(); GLU.gluPerspective( gl, 45.0f, ( ( float )width / ( float )height ), 0.1f, 100.0f ); gl.glMatrixMode( GL10.GL_MODELVIEW ); gl.glLoadIdentity(); } 

Tuttavia, qual è il raggruppamento qui? Deve glMatrixMode () essere chiamato dopo glViewport? E deve essere chiamato glLoadIdentity () subito dopo glMatrixMode ()?

  • Come faccio a scalare un bitmap in streaming in loco senza prima leggere l'intera image?
  • come impostare una visualizzazione di elenco personalizzato in una window di dialogo
  • Applicazione Android per submit immagini a MySQL
  • Problemi con la camera Samsung Galaxy S5
  • Leggete il file XML compresso locale (gzip) nell'applicazione Android
  • Il token di accesso rimosso in Facebook Android SDK 4.0
  • Ho già codificato per "full" OpengGL prima, e nei vecchi codici ho chiamato per la prima volta glMatrixMode (), quindi gluPerspective e ultimo glLoadIdentity (). Come per prima cosa impostare quale matrix deve essere usata per gluPerspective () e ultimo set glIdentity () per completarlo.

    Qual è l'ordine corretto per call glMatrixMode (), glIdentity () e gluPerspective () – e perché? Ci sono differenze tra OpenGL e OpenGL ES per la configuration di glMatrixMode ()?

  • come faccio a creare il database nella mia applicazione Android?
  • Il pugnale non trova elementi iniettabili su un module
  • come creare UI personalizzati per MediaController android
  • Autenticazione con API Google utilizzando AccountManager
  • Caricare le immagini in un server PHP da Android
  • Errore: Imansible colbind il file vuoto nell'app GMAIL utilizzando il provider File
  • 2 Solutions collect form web for “Quando call glMatrixMode ()”

    glViewport () è completamente indipendente dagli stack di trasformazione della matrix e può essere chiamato in qualsiasi momento.

    glLoadIdentity () viene chiamato in genere immediatamente dopo una modifica della modalità di matrix in modo da iniziare "fresco" se vuoi. Le matrici trasformano come gluPerspective (), glOrtho (), glFrustum (), glRotate (), glMultMatrix (), glTranslate () sono operazioni cumulative perché aggregate per consentire di descrivere complesse spazi spaziali 3D o di descrivere la visualizzazione di OpenGL volume. Esempio: se voglio un cubo tradotto in direzione + X poi ruotato intorno all'asse Z, emetto un glRotate () seguito da un glTranslate ().

    glLoadIdentity () elimina la matrix (della modalità matrix corrente) con la matrix di identity framework;, quindi seguendo un gluPerspective () da glLoadIdentity () è equivalente ad una singola chiamata a glLoadIdentity (). In altre parole, quella sequenza è assurda.

    Invertire l'ordine di questi perché gluPerspective () moltiplica la matrix corrente dalla trasformazione prospettica. Se la matrix corrente è identity framework;, allora il moltiplicatore comporterà semplicemente la trasformazione matrix gluPerspective () che è ciò che si desidera per la modalità matrix di proiezione 99% del tempo in cui la visualizzazione prospettica.

    Non ci sono differenze tra OpenGL e OpenGL ES rispetto al comportmento di glMatrixMode () o come queste funzioni matrici modificano lo stato della matrix GL.

    glLoadIdentity carica una matrix di identity framework; nella matrix corrente (triggersta da glMatrixMode), ripristinandola così. Non capisco come prima call gluPerspective e poi glLoadIdentity avrebbe raggiunto qualsiasi cosa ragionevole.

    Il codice che hai inviato è esattamente come faresti in OpenGL ordinario.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.