[ANN] OpenGL Bootcamp at Big Nerd Ranch, Sept 11 - 15
[ANN] OpenGL Bootcamp at Big Nerd Ranch, Sept 11 - 15
- Subject: [ANN] OpenGL Bootcamp at Big Nerd Ranch, Sept 11 - 15
- From: Aaron Hillegass <email@hidden>
- Date: Wed, 16 Aug 2006 16:49:28 -0400
This afternoon I was working through the exercises for our new OpenGL
Bootcamp, and I thought to myself, "Myself, the people on the cocoa-
dev list should know about this amazing course." As you all know,
more and more stuff is being done using OpenGL and the GPU. The best
way to master these new techniques is to come to our class on Sept 11
- 15. The class takes place in our resort-like lodge that is
conveniently located near the busiest airport in the world (Atlanta,
of course!).
The class is taught by Rocco Bowling. Rocco, besides being the
author the Apple Design Award-winning "Big Bang Chess", has written
numerous applications that use OpenGL for data visualization.
The web page is here:
http://www.bignerdranch.com/classes/opengl.shtml
The summary is below. Call Emily Herman at 678-595-6773 to reserve
your seat.
Thanks,
Aaron Hillegass
Big Nerd Ranch, Inc
OpenGL Bootcamp
Taught by Rocco Bowling
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. This
bootcamp will arm you with the knowledge you need to make your 2D and
3D visualizations fly! 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.
This class assumes that the student already knows a procedural
programming language (such as C), and has a basic understanding of
trigonometry and vector mathematics. Although the course is taught
on Mac OS X, it is primarily an OpenGL course and the ideas covered
can be used on any platform which OpenGL supports.
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 the OpenGL Programming Guide: The
Official Guide to Learning OpenGL, Version 2 (commonly known as the
Red Book).
Upon completion of the course, the student will:
• Be able to write data visualizations using OpenGL on Mac OS X
• Have a clear understanding of how modern graphics work
• Have an in-depth understanding of OpenGL
• Be experienced in using OpenGL for both 2D and 3D visualizations
• Understand the issues involved with data visualization and how to
address them using OpenGL
• Have library code which they apply to future OpenGL applications
• Have an understanding of how to write cross-platform OpenGL
visualizations
• Be familiar with the various methods of GPU programing and how they
can increase performance of a wide range of applications.
Sections and contents
--- Day 1 ---
0. Charting the course
An introduction to OpenGL, the instructor, and the course.
1. A simple OpenGL application
Create a simple white square on a black background
2. Expanding our rendering
Add multiple colors to our example, along with a couple of other
primitives.
3. So many ways to animate
Discussion on traditional frame-based animation vs time-based
approaches, followed by making our square bounce around the screen.
4. Looking under the hood
Discussion of OpenGL's architecture and how it affects writing our
applications.
5. OpenGL on Mac OS X
From GLUT to NSOpenGLView, examine the various APIs available for
adding OpenGL to your Mac OS X application.
--- Day 2 ---
6. Much more than point and shoot
Expand into the realm of 3D by examining viewing and model
transformations, the projection transformations, viewport, clipping
planes. Understand why you may need to "move the world" instead of
"moving the camera", and whether or not a 3D visualization is the way
to go.
7. Hidden surface removal
Learn a little history behind hidden surface removal, followed by
discussion of the depth buffer and common pitfalls like z-fighting.
8. 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.
9. A video is worth thousand images
Learn how to animate textures and how to display video by using
QuickTime in conjunction with OpenGL.
10. Of colors
All about the OpenGL color mode, how vertex colors work, and when
and why you should use colors over lighting.
11. Of lighting
Understand the OpenGL lighting model and how materials work.
--- Day 3 ---
12. Of blending
Learn how blending in OpenGL works, and how to manipulate the
blending algorithm to your advantage.
13. How to store your vertices
OpenGL does not have an official model file format. Learn about
various file formats, what they store, and how to load them.
14. 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.
15. 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.
16. Optimization of dynamic data
What do you do when your data is not static, but constantly changing?
--- Day 4 ---
17. 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.
18. Masking
Learn about arbitrary clipping planes, scissor tests, alpha tests,
stencil tests and depth test.
19. Font strategies
Understand the issues concerning font rendering using OpenGL.
20. Vertex programs
Examine the ARB vertex programming model.
21. Fragment (pixel) programs
Examine the ARB fragment programming model.
--- Day 5 ---
22. Vertex shaders
Examine the ARB vertex shader programming model.
23. Fragment (pixel) shaders
Examine the ARB fragment shader programming model.
24. Miscellaneous
Learn about using OpenGL in a multi-threaded environment, sharing
multiple OpenGL contexts, headless rendering, stereo rendering, and
more. We'll also discuss current engines and other applications
available for your use.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden