1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. Kernle 32DLL, 13.01.2010 #1
    Kernle 32DLL

    Kernle 32DLL Threadstarter Neuer Benutzer

    Hiho,

    Ich progge jetzt schon ein paar Wochen mit Android, und bastle mir quasi im moment eine kleine Minimal OGL-ES Engine dafür. Nichts besonderes, hauptsächlich um ein bisschen Erfahrung mit Android und OGL ES generell zu sammeln. Leider zwinge ich Emulator wie mein Testphone mit ein paar simplen Befehlen in die Knie. Entweder mache ich etwas grob falsch, oder der Emu wie das Phone sind noch schäwcher als ich befürchtet hatte.

    Darum wollte ich mal fragen ob es generell irgendwo so etwas wie einen Android & Open GL ES Performance Guide gibt. Für Android generell gibt es ja sowas zuhauf, aber eben nicht für OGL. Wäre klasse wenn da jemand was hätte. Um den Fall auszuschließen das ich irgendwie müll programmiert habe, hier die "Dreh und Angelpunkt" Funktion meiner App. Ist eine Funktion einer GL.Surface.Renderer Klassen Implementation und wird bei OnDraw aufgerufen. Sie zeichnet ein Recteck nach Bildschirm-Pixel Koordinaten.

    Code:
        public void DrawRect(int x , int y , int width , int height , GL10 gl)
        {
            gl.glPushMatrix();
            
                int XTranslation = FP_NEG_1 + FP.mul(FP.div(FP.div(width,FP_2) + x , intViewportWidth),FP_2);
                int YTranslation = FP_1 - FP.mul(FP.div(FP.div(height,FP_2) + y , intViewportHeight),FP_2);
                gl.glTranslatex(XTranslation , YTranslation , FP_0);
                gl.glScalex(FP.div(width,intViewportWidth), FP.div(height,intViewportHeight), FP_1);
            
            gl.glVertexPointer(3 , GL10.GL_FIXED , 0 , BUFFER_RECTSQUARE);
            gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
            
            gl.glPopMatrix();
        }
    Die FP_... Variablen sind statische FixedPoint Ints mit den jeweils angegebenen Werten (z.b. 0, 1, -1 usw.). intViewportWidth und intViewportHeight sind ebenfalls FixedPoint Ints mit der Größe des aktuellen Viewport. BUFFER_RECTSQUARE ist ein statischer IntBuffer der Koordinaten für ein Bildschirmfüllendes Rechteck enthält. Ich benutze diese FixedPoint Lib. Als Parameter nimmt die Funktion natürlich ebenfalls FixedPoint Ints.

    Wenn ich nun DrawRect(FP_0 , FP_0 , 0, 0, intViewportWidth, intViewportHeight) mache, dann droppen meine FPS auf ca 25 runter (auf dem Phone 40). Als Phone benutze ich ein Motorola Milestone.

    So long,
    Kernle
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] StartActivityForResult von OpenGL aus. Android App Entwicklung 19.06.2017
Problem bei OpenGL. Es wird nicht alles gerendert. Android App Entwicklung 05.11.2016
Du betrachtest das Thema "OpenGL Performance Guide?" im Forum "Android App Entwicklung",