UIKit Dynamics and iOS 7: Building UIKit Pong
iOS MacUIKit Dynamics is one of the more fun parts of iOS 7, giving us user interface elements that mimic real physical objects. They can bump...
3 min read
Feb 27, 2013
We’ve rebooted our OpenGL class! OpenGL is one of the most popular 3D graphics APIs, and our class now focuses on OpenGL ES (“Embedded Systems”), the flavor used by iOS, Android and WebGL. I’ve been developing the new curriculum and couldn’t be more excited about teaching the next session in early March.
Though OpenGL is one of the oldest APIs around, it went through quite a revolution a few years ago, when it moved from the fixed function pipeline to today’s programmable pipeline. And thanks to the mobile revolution, adoption of the programmable pipeline has only accelerated. This, combined with so many software engineers moving to mobile development, convinced us to rework the class we’ve been offering for 10 years.
In the new and improved OpenGL ES class, we start by focusing on the programmable pipeline, getting into shaders from the first morning and continuing all week. No longer will they be a mysterious entity that you find out about at the end of the book; instead, you’ll be writing code to execute on the GPU from the start.
Using programmable shaders comes at a cost; OpenGL no longer provides handy things like transformation stacks for the camera or built-in rotation matrix calculations. Developers can write their own or use a library, but some OpenGL guides have written very extensive modules to make up for the change. Our rebooted course uses the open-source glm library, which is patterned after the OpenGL Shading Language, for vector and matrix manipulation in C++. In addition, we’ll also take a look at a few other libraries and see what makes them tick.
Another great addition to the class is WebGL, the OpenGL ES API in your browser that is accessed with JavaScript. This means that testing a WebGL program requires only reloading a web page and not a full-blown edit – compile – execute loop. You won’t be stuck waiting for compiles, and faster development means that we can stuff your brains with even more knowledge! Putting the 3D in a web page has the added advantage of giving you access to all sorts of HTML controls to manipulate your scenes.
Even if you don’t have experience in programming 3D graphics, don’t worry. We explain principles from the ground up, so you’ll learn all the necessary concepts and how they work together, from getting geometry on the screen to using special effects like bump mapping and particle systems. We even try to keep the math to a minimum; I promise there will be no eigenvectors. Well, maybe after dinner, back in the lab…
In our current landscape, OpenGL is the language for 3D programming. There are so many great things to learn that you’ll have to see them all in the course syllabus, but here are some of my favorites:
Write vertex and fragment shaders for full control over 3D rendering
Texture 3D objects procedurally and with images
Render point clouds and make animated particle systems
Understand how popular open-source projects use OpenGL
Pick arbitrary 3D objects in complicated scenes
Create higher-level scene graphs powered by OpenGL rendering
I’m proud to be bringing the Big Nerd Ranch’s OpenGL curriculum to the next level. If you’re interested in learning OpenGL ES and computer graphics from first principles in the time-honored Big Nerd Ranch tradition, sign up today and I’ll see you there!
UIKit Dynamics is one of the more fun parts of iOS 7, giving us user interface elements that mimic real physical objects. They can bump...
Special guest post by Jonathan Blocksom, director of the Big Nerd Ranch DC office, and Advanced iOS course co-creator.