Resources for the Mobile Developer Community
OpenGL ES Implementations, Tutorials and Sample Code
Commercial and Open Source Implementations
OpenGL ES 1.1 SDK for Sony Ericsson phones UIQ 3-based phones
The OpenGL ES 1.1 SDK provides documentation, source code and utilities to take advantage of the the OpenGL ES graphics library on the P990, M600 and W950. The SDK is designed for usage with the UIQ 3 SDK and relevant Sony Ericsson extensions.
Nokia OpenGL ES 1.1 Plug-in for S60 3rd Edition SDK for Symbian OS, for C++
This early technology plug-in for the S60 3rd Edition SDK for Symbian OS, for C++, enables the development of OpenGL ES 1.1 applications for the Nokia N93 with hardware accelerated 3D graphics and OpenGL ES 1.1 support. The plug-in enables full use of the native 3D graphics features supported in the Nokia N93 and provides an OpenGL 1.1 ES features upgrade, from OpenGL ES 1.0, to the S60 emulator. This enables testing and debugging of OpenGL ES 1.1 compliant Symbian C++ applications without a device.
OpenGL ES 1.0 and OpenGL ES 1.1 PowerVR SDK
The PowerVR OpenGL ES SDKs provide a set of documentation, source code and tools that allows developers to create applications for the following development environments:
- TI OMAP2 Family - Symbian, Linux, Windows Mobile 5 Smartphone, Windows Mobile 5 PocketPC
- ARM VP- Symbian, Linux, WinCE 5
- Intel i2700G - Windows Mobile 2003 Pocket PC (Dell X50v & Dell X51v), Windows Mobile 5.0 Pocket PC (Dell X51v)
- Philips PNX4008 - Symbian UIQ3
- Freescale i.MX31 - Linux
- PC Emulation - Windows XP - OpenGL ES 1.X, Linux
OpenGL ES 1.1 Open Source implementation - the Vincent Rendering Library
Includes binaries, source, and OpenGL Redbook Samples converted to OpenGL ES, for the following development environment:
- PocketPC 2003
- Microsoft Smartphone 2003
OpenGL ES 1.0 Linux Sample Reference Implementation
Implements the OpenGL ES 1.0 Common and Common-Lite profiles using a desktop OpenGL 1.3+ implementation as a rasterizer. This is not a registered OpenGL ES implementation, but it has been tested against the the OpenGL ES conformance tests.
OpenGL ES 1.0 Extension for BREW SDK
This BREW SDK extension is for BREW developers who would like to utilize OpenGL ES 1.0 for their BREW application development.
Utilities & Projects
Java Binding for the OpenGL ES API, JSR 239
Java Binding for the OpenGL ES API (JSR 239) enables access to the low level OpenGL ES 3D graphics library through a standard Java interface. This specification defines a Java ME optional package creating a standard Java interface into the OpenGL ES API and the EGL API for window system binding. JSR 239 requires an underlying native engine that has been certified by Khronos to be conformant with the OpenGL ES and EGL APIs. This engine must support version 1.0 of the OpenGL ES and EGL and all core extensions associated with those APIs. It may optionally support version 1.1 of the OpenGL ES and EGL APIs.
gDEBugger ES
gDEBugger ES is an OpenGL ES debugger which traces application activity on top of OpenGL ES to provide the application behavior information you need to find bugs and to optimize application performance. This new product brings all of gDEBugger's OpenGL debugging and profiling abilities to the OpenGL ES developer’s world. In addition gDEBugger ES acts as an emulator for OpenGL ES when working on Windows PC.
GLUT|ES - The OpenGL ES Utility Toolkit
GLUT|ES is a port of the OpenSource freeglut implementation for WinCE and Win32 systems based on OpenGL ES. Most of GLUT API v.3 functionnalities are present: window creation, callbacks, menus, timers etc. Only functions that cannot exist with OpenGL ES or are not pertinent have not been ported (like overlays, joysticks on PocketPC, etc). It has been compiled, linked and tested successfully with Hybrid Rasteroid, Vincent and Intel 2700G implementations of OpenGL ES 1.1. It is compatible with both OpenGL|ES Common Light (CL) and Common (CM) profiles.
Tutorials, Technical Whitepapers and How to Guides
OpenGL ES tutorial on Windows CE (Chinese)
A series of articles on how progamming OpenGL ES on Windows CE, from initialization to use model exported from modeling tool. Articles are written in Chinese.
Optimizing OpenGL ES applications for Brew
Although OpenGL ES makes 3D graphics programming significantly easier and more portable, developers must still work to tune their applications for the greatest performance possible. This article features tips and tricks gleaned from Qualcomm and other developers at the 2006 Brew Developer Conference in San Diego.
OpenGL ES Win32 CE API Programming for Windows Mobile 5.0 Smartphone using Pelles C
This tutorial details the basics of Win32 CE API programming for the Windows Mobile 5.0 Smartphone using Pelles C. This tutorial uses ANSI C language and Pelles C Compiler. The basics of setting up OpenGL ES are covered. You should at least have a basic working knowledge of console C before starting.
OpenGL S 1.1 tutorials for Sony Ericsson UIQ 3-based phones
The OpenGL ES tutorials included in the Sony Ericsson SDK for UIQ 3-based phones helps developers get started using the OpenGL ES 1.1 API, taking developers through initialization, how to render a triangle, 3D drawing, basic Texturing, Transform and Lighting, loading of textures and printing text on the screen, and handling optimized geometry including animations.
3D Graphics Made Easier with OpenGL ES for BREW
This article describes how to get your environment set up for OpenGL ES development in BREW, as well as introduces you to the basic concepts you need in order to get started.
25 OpenGL ES tutorials using GLUT|ES by ZeusCMD
This set of tutorials teaches you how to create OpenGL ES applications on Windows and Pocket PC. The tutorials guide the programmer through a set of techniques, each one becoming progressively more advanced. Topics include: Setting Up Your Environment, Creating an OpenGL Window, Keyboard and Mouse Input, Rendering, Orthographic and Perspective Projection, Color and Shading, Transformations, Depth, 3D Objects, Backface culling, Lighting, Texture Mapping, Blending, Fog, Masking, Image Loading, and Stencil Buffering.
Available online or as a .zip collection
7 OpenGL ES Tutorials for Win32/WinCE from TyphoonLabs
This set of 7 tutorials (available as a .zip collection) covers the basic setup and usage of OpenGL ES with mobile devices. All tutorials can be compiled and tested on the Pocket PC profile, but only few modifications are needed to get an executable version for Smartphones. Topics include: Win32/WinCE and OpenGL ES Initialization, 3D shapes, perspective and pointer clicks management, Texturing, Lighting and Fog, Blending and bitmapped fonts, Particles using Point Sprites, and Using Vertex Buffer Objects. In English and Spanish. (Entry from the 2005 OpenGL ES Coding Challenge)
Tech Talks and BOF presentations from SIGGRAPH 2006
PPT presentations from the OpenGL ES, OpenVG, OpenKODE and COLLADA Tech Talks and BOFs at SIGGRAPH 2006.
Graphics Rendering with OpenGL ES - GDC 2006 presentations
PPT presentations from the day-long OpenGL ES tutorial on March 21st at Game Developers Conference 2006.
Getting Started with Rasteroid OpenGL ES for Pocket PC using Pelles C
Simple tutorial on compiling the Rasteroids sample code using Pelles C to run on Pocket PC
Programming OpenGL ES 1.0 in a BREW Environment (pdf)
This document provides game developers with an overview of the steps needed to build an run BREW OpenGL ES 1.0 applications. Included is an explanation of how to use the ATI IMAGEON 2300 series hardware with the BREW Software Development Kit (SDK).
An Introduction to BREW and OpenGL ES
This article will go from installing and setting up a BREW development environment and emulator, through to getting an OpenGL ES system up and running and displaying a single triangle.
Books
Mobile 3D Graphics
Mobile 3D Graphics offers an in-depth look at OpenGL ES and teaches fundamental 3D mobile graphics programming with standard APIs. It covers the basic and advanced application program interfaces behind the major wireless and mobile devices supporting 3D graphics applications. It includes: a comprehensive explanation of 3D mobile graphics programming; an extensive range of OpenGL ES code samples; and examples of combining 3D and 2D mobile graphics methods.
OpenGL ES Game Development
An in-depth look into the OpenGL ES standard and what the new embedded systems graphics library will provide for game developers. It covers OpenGL ES, EGL, game development, and platforms that are currently available. It also covers the problems involved in mobile game development with OpenGL ES and includes an overview of fixed point math and other areas of cell phone limitations that must be considered before creating mobile games.
Advanced Graphics Programming Using OpenGL
This book is about graphics techniques that dont require esoteric hardware or custom graphics libraries, and that are written in a comprehensible style and do useful things. It is relevant to both OpenGL and OpenGL ES. Sophisticated and novel programming techniques are implemented in C using the OpenGL library, including: coverage of color and lighting; texture mapping; blending and compositing; antialiasing; image processing; special effects; natural phenomena; artistic and non-photorealistic techniques, and many others.
Example Code
PowerVR SDK example programs
Collection of example programs with source code illustrating: a Matrix Skinned Character in combination with DOT3 Per Pixel Lighting; Morphing in combination with multi-texturing; different primitive types; a model being lit with 8 point lights at high performance; cell-shading (a.k.a. Toon shading) effects applied on an animated model; performance increase when using optimized indexed triangle lists; particle effects with frame buffer blending; spherical harmonics and regular diffuse vertex lighting; PolyBump technology developed by Crytek to enhance 3D-rendering quality without increasing the overhead in real-time rendering; various shadow techniques; different texture filter modes; how to use user clip planes; and a transparent vase with dynamic reflections on its metallic sections.
San Angeles Observation (396 KB)
OpenGL ES 1.1 port of the small desktop OpenGL self-running demonstration, although it still contains over 60000 faces. This framework compiles for both desktop and PocketPC Win32 environment, and a separate source is included for Linux with X11. (Entry from the 2005 OpenGL ES Coding Challenge) BSD or GNU LGPL license.
RollerCoaster2005 (780 KB)
When launched, the OpenGL ES 1.1 program first dynamically generates all the vertices of the track for a few second. Then the animation starts with a first turn around the coaster, a fade in/fade out, and the ride starts. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.
JellyFish from Outer Space (5.3 MB)
An OpenGL ES 1.1 mobile device recreation of the classic Space Invaders game, but is completely in 3D. You can look at the invading creatures from underneath, from above or from the side. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.
Dancing Flora (5.8 MB)
A self-running demo that can drive 3D flowers to dynamically dance with music. It is implemented with OpenGL ES 1.1 on Windows 2000/XP with pure C/C++. (Entry from the 2005 OpenGL ES Coding Challenge) GNU LGPL license.
Wake Breaker water racing game (600 KB)
An OpenGL ES 1.1 high speed water race between you and the computer through a beautiful ocean environment with caustics. The boats pound the water behind them as they speed, through the randomly generated courses. (Entry from the 2005 OpenGL ES Coding Challenge) BSD license.
glEffects (9.3 MB)
Windows application demonstrates several 2D visual effects using OpenGL ES functions. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.
OpenGL ES 1.0 and 1.0 demos with source code from PowerVR
The OpenGL ES SDK contains a variety of technology demos whose aim is to demonstrate a particular feature of the hardware or software API. Each demo is provided with an executable and associated source code. Includes matrix skinned characters, DOT 3 per pixel lighting, morphing with multitexturing, toon shading, particle effects, polybump technology, skybox, texture filters, dynamic reflections, and more.





