OpenGL ES 2 - Schlechte Performance

  • Hallo,


    ich arbeite an einem 3D-Spiel mit OpenGl 2.0. Soweit läuft alles, jedoch sehr ruckelig. Meine einzelnen Models, welche sich in einer ArrayList befinden, werden in onDrawFrame einzeln mithilfe der Methode renderModel (siehe unten) an die Shader übermittelt. Ich habe herausgefunden, dass die einzelnen Models zwischen "0" - 2 Millisekunden benötigen, um ihre Daten an OpenGL zu übermitteln. Zusammengerechnet kommen da Werte von bis zu 100 ms pro Frame heraus, was ja nicht normal sein kann... (oder liege ich da falsch?)

    Die einzelnen zu übergebenen Daten werden in java.nio.Buffer-Instanzen (bzw. FloatBuffer, ...) gespeichert und dann direkt an GL übergeben. Hier mein Code:

    Das Model (Z. 3) ist eine Klasse, die die einzelnen Buffer und weiteren Eigenschaften bereit stellt.
    In den Zeilen 7 - 10 werden die einzelnen Matrizen zusammengerechnet.
    Anschließend werden die entsprechenden Parameter an OpenGL übergeben und gezeichnet.
    Danach werden die VertexAttribArrays deaktiviert, um das nächste Model zeichnen zu können.

    Shader:

    Fragment-Shader:

    In meinem Fragment-Shader wird nur die Farbe übergeben.


    In meinem Vertex-Shader wird diffuses und ambientes Licht berechnet (spekulares Licht habe ich momentan nicht eingebaut, da ich es nicht unbedingt benötige) und an den Fragment-Shader übergeben.
    Zudem werden Texturen-Koordinaten (TexPosition) an den Fragment-Shader übergeben.
    Zuletzt werden die Vertex-Koordinaten an GL übergeben.

    Vertex-Shader:

    Hat jemand eine Idee, woran das liegen kann?
    Liebe Grüße, Aaron

    Einmal editiert, zuletzt von Aaron (6. Mai 2015 um 18:04)

  • Moin,

    ich habe auch ein kleines Spiel in OpenGL geschrieben und habe zeitweise richtig viele objekte auf dem bildschirm !

    Ballerfisch

    allerdings benutze ich ausschließlich Texturen und Alphachannel für die Transparenz.

    Kann man deine App runterladen, um die mal auf anderen Geräten zu testen ?

    Gruß

    https://excess72.uber.space/

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    https://play.google.com/store/apps/det…mes.ballerfisch

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!