OpenGLES Graphics Programming in Android
Submitted by Arvind (@arvinddevaraj) on Thursday, 26 September 2013
Section: Workshops Technical level: Intermediate
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
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