Droidcon India 2013

What's your thinking on Android this year?

OpenGLES Graphics Programming in Android

Submitted by Arvind (@arvinddevaraj) on Thursday, 26 September 2013

Section: Workshops Technical level: Intermediate Status: Confirmed


The objective of this workshop is to get hands on experience in developing Graphics programs in Android. OpenGL is a 3D graphics API for rendering. Knowing the basics of openGLES will help to create better graphics programs . Also you can improve performance of the programs by utilizing the GPU


This session will be helpful for people looking to use OpenGL for Game design or advanced rendering. We will discuss how to
1) Represent Scene using Model Geometry
2) Render primitives and complex shapes, Animation
3) Applying lighting and texturing
4) Camera Modeling - Model View Projection Transformations
5) Understand the Graphics pipeline - vertex transformations, rasterization etc
6) Vertex and Fragment Shaders
7) Adding realism by writing our custom shaders
8) Android Graphics - using GLSurfaceView and creating our own Renderer


1) Wisdom wise:

a. Exposure to Eclipse IDE would be useful. Knowledge of Android is not necessary, but some understanding of OOPs concepts used in Android is required. Familiarity with terms like GPU,pixels,texture images would be helpful

b. Recommended to take a quick look at basic OpenGLES articles on web like this http://www.learnopengles.com/android-lesson-one-getting-started/

c. (Optional) We will covering the sample app during workshop, but you can take a quick look if you prefer http://developer.android.com/guide/topics/graphics/opengl.html

d. (Optional) Take quick (if not detailed) glance at OpenGLES intro slides http://www.slideshare.net/darvind/opengles-android-graphics and read blog post https://medium.com/p/9fda52fa3789

2) Hardware wise:

You have to bring your own laptop (don't forget the charger)

Please bring your own Android device to test out your apps on them in real time. Though OpenGLES Graphics programs can be made to run on emulator, it is best to have a real device.

Make sure your machine configuration is reasonable enough to withstand the dev environment.

3) Software wise:

a) To make best use of the workshop, it is best to have the Android setup ready for hands-on exercises. Android setup is detailed below
b) If you are really new to Android and are familiar with Visual Studio, install glut http://sites.fas.harvard.edu/~lib175/pages/visstudio.html
c) It is possible to attend to work on simulated programs without installing Android/Visual Studio. That would help in learning the concepts , but would not provide hands-on.

Instructor would be using Windows environment and any platform specific issues will not be resolved during the workshop.

4) Android Setup

On Ubuntu Linux, version 8.04 or later is required.
64-bit distributions must be capable of running 32-bit applications.
Eclipse IDE (or Participants can directly download platform specific ADT Bundle from http://developer.android.com/sdk/index.html)
Eclipse 3.6.2 (Helios) or greater

Note: Eclipse 3.5 (Galileo) is no longer supported with the latest version of ADT.
Eclipse JDT plugin (included in most Eclipse IDE packages)

JDK 6 (JRE alone is not sufficient) with latest update needs to be installed
Android Development Tools plugin (recommended)

All software (JDK) needs to be installed in a folder that doesn't containing any blank spaces in its absolute path.

5) OpenGL sample program (optional)

OpenGL in Android is explained here

To get the best from the workshop, its useful to install the sample opengl program

Speaker bio

Arvind worked in Nvidia on OpenGL Graphics driver for Android. He has given talks on OpenGL and Android at conferences including Google Developer Group DevFest. He has conducted several corporate trainings (at Symantec, GM and Visteon) and workshops for colleges including BITS-Pilani and VIT. He completed his Masters from Indian Institute of Science in field of Computer Science in 2007 (thesis was on analyzing Java bytecode). My areas of interest Android, high performance computer graphics and GPU computing





  •   Aravind Krishnaswamy (@arg0s) 6 years ago

    Hi Arvind - what are the pre-reqs w.r.t knowledge of GL or Android?

  •   Arvind (@arvinddevaraj) Proposer 6 years ago

    Hi Aravind - I am planning to cover from basics. No prior knowledge of GL or Android is required. People who attend should be comfortable with any one of the environment - Visual Studio or Eclipse as the demos would be done in that environment. Though not absolutely necessary, it would be great if they have run a hello-world Android app or GLUT(Visual Studio) application before attending

  •   Soham Mondal (@soham) Reviewer 6 years ago

    Hi Arvind, this sounds interesting and I liked your session at Devfest Bangalore. The audience would be expected to know the basics of Android and would be comfortable with Eclipse. I had some additional questions here:
    - Would the participants need to have a real device (an android phone) to test these features or would an emulator do?
    - How long do you estimate the workshop to be?

  •   Arvind (@arvinddevaraj) Proposer 6 years ago

    Hi Soham,
    Thanks for your comments. It would require atleast an hour. An hour and half would be ideal.

    It would be great if people have real device (as it is faster. Also OpenGLES support in emulators was added only recently). If the participants are able to get the hello world OpenGLES code running on emulator, then its fine. Here is the sample code http://developer.android.com/shareables/training/OpenGLES.zip

    I will also show demo of general graphics concepts in Visual Studio for benefit of those who don’t have device or unable to get the emulator working or unfamiliar with Android environment


  •   Aseem Sharma (@aseemsharma) 4 years ago

    Hi Arvind,
    Is there any way to have your training online or through confrencing?

Login with Twitter or Google to leave a comment