Android OpenGL-ES 3d game optimisation

I have a game engine, but its very slow. I get on a 60-80 textured squares (2 triangles with blends) about 30-40 FPS on my galaxy s. This is a live wallpaper. I get on my Legend only 10-20 FPS on 80 items...

I used VBO's, culling and other optimisations. (i tried texture atlas, the same speed as binding textures...)

what can i do there?

1, if I use native opengl render code, that will speed up my rendering? 2, if i use PVRTC compressed textures, not png-s, that will speed up the rendering? how i can do that?

what can i do?

-------------Problems Reply------------

Yes... I believe you should see a substantial speed up if you switch over to to using the NDK for OpenGL. As for PVRTC... I'm not 100% sure if that's the way to go. That is a format optimized for PowerVR chipsets... so yes... that's great for the Galaxy S variety of phones... but every phone with a Snapdragon processor run a different GPU (Adreno). I have no idea if the Adreno GPU would make good use of it.

No GPU, to my knowledge, natively supports PNG images as a texture format. These are invariably decompressed by the API/driver to ARGB (probably @ 32bpp), so there will be a hit in terms of memory space and, more importantly, bandwidth consumption. PNG really only buys you a reduction in terms of distribution of the application and flash memory storage space.

Provided you aren't insanely obsessive about image quality, using some form of (lossy) texture compression, say PVRTC (4bpp or 2bpp) or, maybe, ETC (4bpp), will probably be a win for performance.

Category:android Views:0 Time:2011-04-25

Related post

  • Writing a portable Java application using JOGL and Android OpenGL 2009-10-24

    I plan on writing a Java 3D game that will work both on PC and Android. Unfortunately it looks like there is no common OpenGL API for both platforms. Do the APIs differ significantly? Is there a way I could use the same 3D code in both versions? Is i

  • Android OpenGL ES Transparent Background 2010-01-09

    I'm building an Android app that takes advantage of OpenGL. As it stands, the background for the GLSurfaceView is dynamically generated by my code and loaded in as a texture and drawn with glDrawTexfOES. Which is "ok", but I can simply display the im

  • Android Opengl ES tiling engine, smooth scrolling 2010-01-31

    Following this : I got a simple 2D tiles generator working, im reading an int map[100][100] filled with either 1's or 0's and draw tiles according to their tile

  • Taking screenshot of Android OpenGL 2010-07-22

    I'm trying to take a screenshot of Android OpenGL. The code I found is as follows: nt size = width * height; ByteBuffer buf = ByteBuffer.allocateDirect(size * 4); buf.order(ByteOrder.nativeOrder()); glContext.glReadPixels(0, 0, width, height, GL10.GL

  • Android OpenGL extending GLSurfaceView null pointer exceptions 2010-07-31

    I am trying to create a simple 3-D app for android that will have an additional view layered on top of the OpenGL view (much like the SurfaceViewOverlay example in the API demos). I'm running into an issue trying to implement that method with an exte

  • Android OpenGL ES and 2D 2010-08-24

    Well, here's my request. I don't know OpenGL already, and I'm not willing to learn it, I want to learn OpenGL ES directly since I'm targeting my development to android, however. I want to learn openGL ES in order to develop my 2D games, I choosed tha

  • Android OPenGL+ XML integration 2010-08-26

    I'm making a media player application in android where one part of my screen has a animation which is made in OpenGL (ofcourse with Android/JAVA).....So my screen consists of 2 parts: 1) Left hand side consists of all the widgets (using xml). 2) Righ

  • Android OpenGL ES Multiple Textures for one rect 2010-11-01

    In Android OpenGL ES, I want to be able to switch textures for a given Rectangle. I have one rect and I put two textures, depending on different conditions. I just want to switch between textures. I followed this code to create the textures: link tex

  • What is the difference between android.opengl and javax.microedition.khronos.opengles packages? 2010-11-07

    Just couldn't find anything regarding the purpose of android.opengl classes anywhere on the web: they seem to be copies of javax.microedition.khronos.opengles - just with static vs member methods. So is there any special meaning in using them instead

  • Android OpenGL ES 1.1 Sphere texture mapping problem 2010-12-27

    I have a terrible issues with texure sphere mapping. This is my code: public void onSurfaceCreated(GL10 gl10, EGLConfig config) { GL11 gl = (GL11) gl10; gl.glDisable(GL10.GL_DEPTH_TEST); //Disable Depth Testing gl.glEnable(GL11.GL_TEXTURE_2D); gl.glE

  • How to get rid of Jagged edges in Android OpenGL ES? 2011-02-08

    I have the following code: public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f); gl.glShadeModel(GL10.GL_SMOOTH); gl.glClearDepthf(1.0f); gl.glEnable(GL10.GL_DEPTH_TEST); gl.glDepthFunc(GL10.GL_LEQUAL); //

  • Android opengl screenshot with alpha channel support 2011-02-15

    I'm currently developing an augmented reality application in android. Textured openGL object is drawn over the camera view. I had tried so many methods to take the screen shot of android openGL view (GLSurfaceview). But no success. I want the screens

  • Android OpenGL-ES VBO support or not? 2011-03-15

    Android OpenGL-ES VBO support or not? How can i check this? Thanks --------------Solutions------------- Some phones support it, some do not. Generally, VBOs are mandatory in OpenGL 1.1, so if the device reports gl.glGetString(GL10.GL_VERSION); as 1.1

  • What is the relationship between the various Android OpenGL-related classes? 2011-05-12

    What's the relationship between: android.opengl javax.microedition.khronos.egl javax.microedition.khronos.opengles I can't tell from the Android documentation. --------------Solutions------------- This packages: javax.microedition.khronos.egl javax.m

  • Android OpenGL ES read PHONE inconsistant with EMULATOR 2011-05-14

    Hey, i wrote a small application, a client application which receives images from a server, and then display them on a rotating cube using openGL ES. this works just fine in the emulator, but on real phone SGS , blank white images displayed instead.

  • Android / OpenGL ES: Draw primitive doesn't do anything 2011-06-12

    Trying to draw a solid cylinder doesn't do what I want it to. Here's my code: public static void solidCylinder(GL10 gl, float radius, float height, int slices, int steps) { float zStep = height/steps; float alphaStep = (float)((2*Math.PI) / slices);

  • Android OpenGL ES 2.0 2011-06-28

    Im trying to get a simple trinangle showing in a Android OpenGL ES 2.0 example. But nothing appears and i just dont get why :), i get no errors or anything, just a blue screen (that is my clear color). Maybe theres something wrong with the projection

  • Run Android OpenGL in Background as Rendering Resource for App? 2011-06-29

    I want to run an Android OpenGL-ES surface in the background of my app to provide dynamic graphical resources (bitmaps, etc.) for the application. The OpenGl GLSurfaceView is not the visible screen of my app; it is only used as a rendering factory to

  • Android OpenGL ES: Rotation against arbitrary axis? 2011-06-29

    I have a point cloud that I've rendered on the Android OpenGL-ES. I can translate it correctly (I think) but when I rotate it, I can't make it work like it want. I want it to rotate about the center of the point cloud (I have this 3D point), but I do

Copyright (C), All Rights Reserved.

processed in 0.079 (s). 11 q(s)