OpenGL
OpenGL Bootcamp is an intensive 5-day training course that will arm you with the knowledge to make your 2D and 3D visualizations fly!
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 Super Bible Fifth Edition.
Upcoming Classes
What You’ll Learn
Upon completion of OpenGL, the student will be able to:
OpenGL Bootcamp
- Write visualizations using OpenGL on Mac OS X
- Understand how modern graphics work
- Use OpenGL for both 2D and 3D visualizations
- Understand the issues involved with data visualization and how to address them using OpenGL
- Apply code to future OpenGL applications
- Understand how to write cross-platform OpenGL visualizations
- Understand how to migrate OpenGL visualizations from the desktop to the handheld device, like the iPhone or and Android device
- Understand the various methods of GPU programing and how they can increase performance of a wide range of applications
OpenGL Syllabus
| OpenGL |
Click to Hide |
| Introduction |
An introduction to OpenGL, the instructor, and the course. |
| A simple OpenGL application |
Create a simple white square on a black background. |
| Expanding our Rendering |
Add multiple colors to our example, along with a couple of other primitives. |
| So many ways to animate |
Discussion on traditional frame-based animation vs time-based approaches, followed by making our square bounce around the screen. |
| Much more than point and shoot |
Expand into the realm of 3D by examining projection transformation, viewport and clipping planes |
| Much more than point and shoot |
Model-view transformations |
| Some objects |
Some simple 3D shapes; the camera model |
| User interactivity |
Capturing keys and clicks: at least for prototyping |
| An image is worth a thousand vertices |
How to load a display textures; when to use textures for more than just detailing models |
| More on images as textures |
Image loaders or readers used with OpenGL |
| Hidden surface removal |
A little history behind hidden surface removal, followed by a discussion of culling back-facing planes and the depth buffer |
| On colors |
All about the OpenGL color mode, how vertex colors work, and when and why you should use colors over lighting. |
| On lighting (1) |
Diffuse lighting with a shader |
| On blending, transparency and opacity |
How blending works in OpenGL; how to use the blending algorithm to your advantage; how to draw opaque and translucent objects; more use of the depth buffer |
| How to store your vertices |
A little about how to store a model and how to retrieve a model |
| Beyond the "stock shaders" |
Beginning development of OpenGL-SL, the OpenGL shading language; how to write your own shaders. |
| On lighting (2) |
A shader with more than one light and with "real" material surfaces |
| Calculating normals |
Normals are essential to lighting. You might have to calculate normals on your own; take a deep breath — it's not hard |
| Tessellation |
OpenGL works only on convex polygons, and prefers triangles. What can you do with arbitrary polygonal shapes? |
| Quadrics |
Neat primitive 3D objects you can use |
| Getting Data on the GPU |
Vertex arrays and vertex buffer objects unmasked; what more than a "batch"? |
| Vertex Shaders |
Interesting effects with a vertex shader; fog |
| Fragment Shaders |
Texture examples |
| Fragment Shaders |
Texture and lighting |
| OS-specific issues |
OpenGL with Mac OS |
| OS-specific issues |
OpenGL-ES with iOS |
| Off-screen rendering |
The use of rendering into an off-screen buffer |
| Index buffers |
More than one picture from the same dataset |
Requirements
For best results, students should know a procedural programming language (such as C) and have a basic understanding of trigonometry and vector mathematics.
Reviews
For information or to enroll in a class in United States: (404) 478-9005
For information or to enroll in a class in Netherlands: +31 20 708 4546
For information or to enroll in a class in Germany: +49 931 9911 485
For information or to enroll in a class in Australia: +1 404 478 9005