It's going to depend on more factors than number of sprites. GPUs are usually fill-bound and so the functions you use to filter and blend have a large impact on performance. What does your test do? Does it distribute small quads all over the screen like particle effects do? Are the quads blended? I was assuming they are. What filtering modes are you using? Are you drawing pixel-perfect or transforming? I think there are tricks in OpenGL to draw at 1.5,1.5 instead of 1.0,1.0 to get pixel-perfect drawing, which may be more efficient because the texture unit will only have one pixel to read off the texture instead of multiple, or so I think, but am not sure.
I use OpenGL for 2D and get adequate performance on all hardware- accelerated devices. I'm using multitexturing, particle effects, shadows, parallax scrolling backgrounds, lots of dynamic text and on- screen controls. On Apr 6, 12:12 am, lixin China <smallli...@gmail.com> wrote: > I'm preparing code a game. > So I need benchmark the OpenGL find a good way render my 2d stuffs. > > And I found a project have done > that.http://code.google.com/p/apps-for-android/ > SpriteMethodTest > > I only have nexus one. The following it's the test result from my > phone. > ======================================== > test 1: 10 Sprites without animate > Canvas: 142.85 fps > OpenGL 1: 34.48 fps > OpenGL 2: 33.33 fps > OpenGL 3: 33.33 fps > > test 2: 10 Sprites with animate > Canvas: 90 fps > OpenGL 1: 32 fps > OpenGL 2: 33 fps > OpenGL 3: 32 fps > > ======================================== > test 3: 100 Sprites without animate > Canvas: 111 fps > OpenGL 1: 43.47 fps > OpenGL 2: 43.47 fps > OpenGL 3: 41.66 fps > test 4: 100 Sprites with animate > Canvas: 62.5 fps > OpenGL 1: 45 fps > OpenGL 2: 43 fps > OpenGL 3: 45 fps > ======================================= > test 5: 500 Sprites without animate > Canvas: 27 fps > OpenGL 1:20 fps > OpenGL 2:23.8 fps > OpenGL 3:23.8 fps > test 6: 500 Sprites with animate > Canvas: 25 fps > OpenGL 1: 20 fps > OpenGL 2: 23 fps > OpenGL 3: 22 fps > ======================================= > test 7: 1000 Sprites without animate > Canvas: 15.38 fps > OpenGL 1: 10.5 fps > OpenGL 2: 12.82 fps > OpenGL 3: 14.7 fps > test 8: 1000 Sprites with animate > Canvas: 15.15 fps > OpenGL 1: 10.3 fps > OpenGL 2: 12.65 fps > OpenGL 3: 14.28 fps > > ================================== > > The result observably show that the rendering performance on nexus > one, Canvas faster than OpenGL way. > Why? Did anybody test it on the other device? > > And another question. > I write a test application just render a background and a moving > sprite with draw_texture extension. > And use Rokon (which is a 2D game engine) do the same thing. > And test device of course its my nexus one. > > Rokon got 60fps and my app just 55fps in average. > It was weird because I saw a video on Google I/O Session about how to > write a real-time game(http://www.youtube.com/watch?v=U4Bk5rmIpic. > Video shows that draw_texture have better performance that the usual > way. > Somebody knew the reason? -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en To unsubscribe, reply using "remove me" as the subject.