The lessons can be followed at http://www.learnopengles.com.
Lesson Eight: An Intro to VBOs (Vertex Buffer Objects)
Lesson Seven: An Intro to VBOs (Vertex Buffer Objects)
Lesson Six: Texture Filtering Modes
Lesson Five: An Intro to Blending
Lesson Four: Basic Texturing
Lesson Three: Adding Per-Pixel Lighting
Lesson Two: An Intro to Lighting
Lesson One: Getting Started
Demo that shows some cool effects that can be achieved thanks to the programmable OpenGL ES 2.0 GPU pipeline, such as normal mapped specular animated lighting, real time refractions and image postprocess.
If you like the effects and would like to play a game that uses them, please try the game "AQUA SLASH GL DEMO" for free.
To move the light source, touch the screen with one finger to the desired position.
To change the background image, while touching the screen with one finger (therefore moving the light) touch with another one on the left side of the screen.
To change the postprocess effect, do the same but touch with the second finger on the right side of the screen instead of the left.
This demo requires Android 2.2 or higher.
INFO FOR DEVELOPERS: For some reason, samsung and motorola opengl driver does not allow the creation of FrameBufferObjects with color attachments of dimensions non power of 2. All the opengl calls do not generate any error and the FrameBufferObject status is ok, but then nothing gets written to the offscreen buffer if width and/or heigth is not power of 2. On HTC, LG, Toshiba and Dell devices this works well and any dimension can be used.
Since this app uses offscreen rendering for the postprocess effects, this is why it did not work with samsung and motorola devices before version 1.2.
Despite the somewhat unfair 1 star ratings of angry samsung and motorola users because of this issue, thanks everyone for the reports.
Special thanks to my sister Silvia and my friend "El Iberico" for sharing with me their Galaxy S smartphones that allowed me to debug the app and find out what the problem was.
To Harism: Thanks for your comments and yes, the problem is directly related to the off screen render target resolution.
There is not any copy of textures at any time. The first pass where the water effect is rendered is the one that uses the off screen buffer (with less resolution for performance reasons) and later, that render target is directly binded as an input texture to the final pass where the other effect is rendered (pixelization etc) to full resolution.
Note that high-end devices are better served by NenaMark2 as they tend to hit the framerate limit (~60 fps) with NenaMark1.
No ads, etc., just a demo for fun. Will continue to add sequences and improve existing ones through updates, and if I come up with something really cool, will try to make it into a live wallpaper.
The source code will also be made available. It provides a good starting point and tutorial into creating OpenGL apps.
The Gears demo is an open source project intended to help developers learn how to create OpenGL ES programs on Android. The Gears demo was originally written by Brian Paul as part of the Mesa3D project. My implementation includes variations for Java/OpenGL ES 1.x, Java/C/OpenGL ES 1.x and Java/C/OpenGL ES 2.0. I have also added several features not found in the original implementation including touch screen support, VBOs and an on-screen FPS counter.
The FPS (frames-per-second) counter is often used as a benchmark metric for graphics programs. On Android the frame rate is limited by v-sync (typically 60 FPS) which is the fastest rate that a display can refresh the screen. Since Gears is capable of rendering much faster than v-sync on most devices it provides limited benchmarking value.
This application contains various Examples that showcase what developers can do with this engine.
Install this to stay tuned with the progress.
Join the AndEngine-Community at:
The screen will be inhabited by bats, Jack O'Lanterns and witch. And more monsters are coming with the updates of the app!
We hope you enjoy this small cute app and happy Halloween!
*The app includes many animations and needs sufficient main memory.