Problemi della camera OpenGL ES 2.0

Sto lavorando con Android e OpenGL ES 2.0 e sto avendo un problema che non posso davvero formulare in una solida domanda. Nell'image, http://i.imgur.com/XuCHF.png , fondamentalmente ho una forma per rappresentare una nave al centro e quando è spostata verso il lato si ottiene spinta verso il punto di fuga. Quello che voglio realizzare è avere la nave mantenere la maggior parte della sua forma quando viene spostata. Credo che possa essere dovuto alle mie matrici, ma each risorsa che ho cercato sembra utilizzare lo stesso metodo.

//Setting up the projection matrix final float ratio = (float) width / height; final float left = -ratio; final float right = ratio; final float bottom = -1.0f; final float top = 1.0f; final float near = 1.0f; final float far = 1000.0f; Matrix.frustumM(projection_matrix, 0, left, right, bottom, top, near, far); //Setting the view matrix Matrix.setLookAtM(view_matrix, 0, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f); //Setting the model matrix Matrix.setIdentityM(model_matrix, 0); Matrix.translateM(model_matrix, 0, 2f, 0f, 0f); //Setting the model-view-projection matrix Matrix.multiplyMM(mvp_matrix, 0, view_matrix, 0, model_matrix, 0); Matrix.multiplyMM(mvp_matrix, 0, GL.projection_matrix, 0, mvp_matrix, 0); GLES20.glUniformMatrix4fv(mvp_matrix_location, 1, false, mvp_matrix, 0); 

Anche i shader sono molto semplici:

  • Recuperare i dati tra due date in Android SQLite
  • Volley non parsing 404 risposta
  • Come faccio ad applicare un riferimento circolare in un RelativeLayout?
  • come get il path della cartella android galley dynamicmente?
  • ExpandableListView multilivello
  • Come visualizzare più di 3 livelli di visualizzazione di elenco espandibile?
  •  private final static String vertex_shader = "uniform mat4 u_mvp_matrix;" + "attribute vec4 a_position;" + "void main()" + "{" + " gl_Position = u_mvp_matrix * a_position;" + "}"; private final static String fragment_shader = "precision mediump float;" + "void main()" + "{" + " gl_FragColor = vec4(0.0, 0.0, 1.0, 1.0);" + "}"; 

    Ogni pensiero / intuizione è molto apprezzato.

    Grazie.

  • mostrare emoticon utilizzando Spannable in una vista di text
  • Problemi con Google Maps Android API V2 con android 4.3
  • Tag di elenco Html che non funziona in textview di android. cosa posso fare?
  • Visualizzazione di più stringhe su Logcat
  • quali sono gli usi di principale, di default e di avvio nel file manifesto in android
  • servizio embarcadero delphi XE10 android con timer
  • 2 Solutions collect form web for “Problemi della camera OpenGL ES 2.0”

    Questo è normale – così dovrebbe apparire la proiezione prospettica. Anche se nel tuo caso sembra veramente allungato – con ampio field visivo.

    Provate ad usare invece di metodo frustumM perspectiveM (projection_matrix, 0, 45.0f, rapporto, vicino, lontano). O se è necessario utilizzare frustumM , calcolare a sinistra / destra / inferiore / superiore come questo:

     float fov = 60; // degrees, try also 45, or different number if you like top = tan(fov * PI / 360.0f) * near; bottom = -top; left = ratio * bottom; right = ratio * top; 

    Se non si desidera alcun effetto prospettico affatto, utilizzare Matrix.orthoM invece di Matrix.frustumM.

    Per rendere l'effetto prospettico less estremo, è necessario ridurre il field di vista – Vale a dire, aumentare near o portre in top e bottom più vicino a zero. (Probabilmente vuoi il rapporto right = top * ratio , e allo stesso modo con la left se state andando a violino con top valori top e bottom .)

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