OpenGL ES Bootcamp

As problem sets explode in complexity, radical gains in performance have resulted from moving traditional graphics processing from the CPU to graphics hardware. If you are doing any work concerning graphics, then you must know OpenGL and this class is the fastest way to master the ideas and techniques of OpenGL programming.

By taking full advantage of hardware acceleration, shaders, blending, textures and video we'll help you get the most out of your data. Learn how OpenGL works, what functionality it does and does not provide, various optimization methods for both static and dynamic data, and much more.

The course will provide libraries and frameworks for abstracting the operating system and allowing the student to focus solely on learning OpenGL. Concepts and exercises which are tangentially related to OpenGL and depend on interaction with the OS will be taught using Mac OS X technologies (such as multiple rendering contexts or multithreaded OpenGL applications).

Students will be provided a copy of OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1. (commonly known as the Red Book).

UPCOMING CLASSES

Date Course Instructor Total Price Status

Atlanta, Georgia

Jul 21 -
Jul 25
Instructor(s): Blocksom
$ 3,700
Oct 6 -
Oct 10
Instructor(s): Blocksom
$ 3,700

BNR West, California

Aug 25 -
Aug 29
Instructor(s): Blocksom
$ 3,700

What You'll Learn

Upon completion of OpenGL ES Bootcamp, the student will be able to:

  • Specify 3D geometry for OpenGL
  • Write vertex and fragment shaders for full control over 3D rendering
  • Understand how to use transformation matrices to position objects in a 3D scene
  • Create perspective and orthogonal views
  • Texture 3D objects with images
  • Control lighting in a 3D scene
  • Control the camera in both first and third person views
  • Add special effects like bump mapping and shadow mapping
  • Render point clouds and make animated particle systems
  • Select 3D objects in a rendered scene
  • Understand how popular open source projects use OpenGL
  • Create higher level scene graphs powered by OpenGL rendering
  • Use OpenGL ES on iOS, Android, and WebGL
  • Explain the difference is between the fixed function and programmable pipelines
  • Write geometry shaders for tessellating objects

OpenGL ES Bootcamp SYLLABUS

Section Content
OpenGL ES BootcampOpen
Hello, Triangle
Introduction to OpenGL going through everything needed to draw a triangle
Vertex Shaders
Introduction to vertex shaders; uniforms; translate, scale, and rotation
Transformation Matrices
2D transformation matrices for translate, rotate, scale; composing transformations
Geometry
Points, lines, triangle strips
Hierarchical Modeling
Matrix stacks
Fragment Shaders
Introduction to Fragment shaders and textures
Projection Transforms
Introduction to orthogonal and perspective transforms
3D Viewing I
Polarview style 3D viewing (elevation and azimuth); practice composing transforms
3D Viewing II
Flight simulator style viewing transforms
Geometry II
Loading objects; common data formats
Surface Normals and Lighting
How to calculate surface normals and implement basic directional lighting
Lighting and Materials
How to specify material properties for effects like plastic and metal rendering
Image Textures
How to load image textures in OpenGL and apply them to 3D objects
Procedural Textures
How to create textures from mathematical functions
Noise
How to generate natural materials such as wood and marble from Perlin noise functions
Cube Maps and Reflection Mapping
How to render immersive backgrounds using cube maps or skyboxes and reflect them on internal objects
Bump Maps
How to displace normals on 3D objects for bumpy effects
Cartoon Rendering
How to render something as if it were a cartoon
Point Rendering
Point clouds, point sprites, billboards, and particle systems
Shadow Mapping
Using depth maps for creating real time shadows
Anti-Aliasing
Smoothing rough edges with
Geometry Shaders
Tessellating objects using OpenGL geometry shaders
Scene Graphs
Building higher level data structures for 3D rendering and learning how popular 3D scene graphs work

Requirements

For best results, students should know a procedural programming language (such as C) and have a basic understanding of trigonometry and vector mathematics.


How to prepare your device for our class

WHAT YOU'LL NEED

Bring a laptop you can develop desktop and optionally mobile software on. Some lessons work with desktop OpenGL, some work in a web browser and some work on mobile devices. If you have a choice between a Mac and PC, a Mac is preferred.

Having a provisioned iOS device or Android device to run code on is great if possible, if not that's OK but you will not be able to do live video processing (there is an alternative lesson so you will have something else cool to do).

Students using a Mac should have the following software:

  • OS X 10.8.3 Mountain Lion
  • Xcode 4.6.2

  • Text editor suitable for writing HTML

Students using a PC should have the following software:

  • Windows XP or descendant
  • Visual Studio 2012 (earlier will probably work)
  • Text editor suitable for writing HTML
  • Most recent graphics drivers for your video card

To run code on iOS:

  • Provisioned iOS device running iOS 6 or newer

To run code on Android:

  • Android development environment (Eclipse)
  • SDK Tools Revision 17 or later
  • Device to run code: Nexus 7 tablet is preferred

Please make sure you can run code on your device before getting to class so you can spend your time learning about OpenGL instead of installing software.

PRE READING

There is no assigned pre-reading for the course but you may want to do a little review of vectors. Try the tutorials. Be sure to read the links on the dot product and cross product as well.

IMPORTANT TELEPHONE NUMBERS

For information or to enroll in a class in United States: (770) 817-6373