OpenGL Bootcamp
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 Programming Guide: The Official Guide to Learning OpenGL, Version 2 (commonly known as the Red Book).
Upon completion of OpenGL Bootcamp, the student will:
- 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 the various methods of GPU programing and how they can increase performance of a wide range of applications
Upcoming Classes
| Date | Instructor | Price | Status | Venue |
|---|---|---|---|---|
| Oct 20 - 24 | Rocco Bowling | $3500 | Register Now! 3 Spaces Left! |
Atlanta, Georgia |
Reviews
Prerequisites
For best results, students should know a procedural programming language (such as C) and have a basic understanding of trigonometry and vector mathematics.
Syllabus
| Section | Contents |
|---|---|
| Charting the Course | 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. |
| Looking under the hood | Discussion of OpenGL's architecture and how it affects writing our applications. |
| OpenGL on Mac OS X | From GLUT to NSOpenGL, examine the various APIs available for adding OpenGL to your Mac OS X application. |
| Much more than point and shoot | Expand into the realm of 3D by examining viewing and model transformations, the projection transformations, viewport, clipping planes. |
| Hidden surface removal | Learn a little history behind hidden surface removal, followed by discussion of the depth buffer and common pitfalls like z-fighting. |
| An image is worth a thousand vertices | Learn how to load and display textures. Gain an understanding of when to use textures for more than just detailing models. |
| A video is worth thousand images | Learn how to animate textures and how to display video by using QuickTime in conjunction with OpenGL. |
| Of colors | All about the OpenGL color mode, how vertex colors work, and when and why you should use colors over lighting. |
| Of lighting | Understand the OpenGL lighting model and how materials work. |
| Of blending | Learn how blending in OpenGL works, and how to manipulate the blending algorithm to your advantage. |
| How to store your vertices | OpenGL does not specify a model file format. Learn about various file formats, what they store, and how to load them. |
| Calculating normals | Not all modelers export normals along with their data, or you may be programmatically generating a model. Learn how to calculate normals on the fly. |
| Optimization of static data | The first rule of optimizing OpenGL is to minimize the number of transfers from system memory to video memory. With static data, it is easy to have OpenGL cache it entirely in video memory. |
| Optimization of dynamic data | What do you do when your data is not static, but constantly changing? |
| User interaction | Explore ways to allow the user to interact with the visualization. Learn both common sense and OpenGL techniques for determining where and what a user clicks on. |
| Masking | Learn about arbitrary clipping planes, scissor tests, alpha tests, stencil tests and depth test. |
| Font strategies | Understand the issues concerning font rendering using OpenGL. |
| Vertex programs | Examine the ARB vertex programming model. |
| Fragment programs | Examine the ARB fragment programming model. |
| Vertex shaders | Learn to write vertex shaders using the OpenGL Shading Language. |
| Fragment shaders | Learn to write fragment shaders using the OpenGL Shading Language. |
| Miscellaneous stuff | Learn about using OpenGL in a multi-threaded environment, sharing multiple OpenGL contexts, headless rendering, stereo rendering, and more. |
Price
A five-day class, a student guide, a luxury room, three delicious meals a day, a stylish "Big Nerd Ranch" t-shirt, and transportation to and from the airport for only $3500. Plan to arrive on Sunday evening and depart on Friday afternoon.
When the class is offered in Europe, the price is €2800 plus VAT. (€2600 plus VAT if you register at least five weeks before the class begins.)