Foundations of 3D Computer GraphicsCode and Programming Exercises |
The code provided here is a companion to the textbook.
Helpful Background
Code from the book
The code in this table mirrors the code snippets in the book. It shows you how to write a simple 2D and simple 3D program in modern OpenGL. It uses C++ only minimally. It will only run if you have full support for OpenGL 3.0.We have since upgraded and expanded our code base significantly. The new code base uses C++ to encapsulate OpenGL resources as well as geometric objects. This allows for proper memory management handling and ultimately allows for more extensible code. It can be run with only OpenGL 2.0 support as well.
Our new code is available in the "Code and Programming exercises" section below. Though a bit more involved, we strongly encourage you to take the time and learn from the new code.
Title | Chapter | Notes |
---|---|---|
HelloWorld2D (book version) | 1, Appendix A | |
HelloWorld3D (book version) | 2-6 | We also include the central parts of a quaternion library and the abstract interface for a rigid-body transform class. |
Code and Programming exercises
This is version 2.0 of the code, January 1, 2013. Contact Steven Gortler if you require a previous version.Title | Chapter | Exercise number |
---|---|---|
HelloWorld2D (new version) | 1, Appendix A | A.1 - A.3 |
HelloWorld3D (new version) | 2-6 | 6.1 - 6.4 |
Quaternions + Arcball | 7,8 | 7.1, 8.1 |
Hierarchical Transformations and Picking | 5.4 | 6.6, 6.7 |
Keyframe Animation: Part I | 9 | 9.1, 9.2 |
Keyframe Animation: Part II | 9 | 9.3 |
Materials and Bump Mapping | 15 | |
Meshes and Subdivision Surfaces | 22 | 22.1, 22.2 |
Furry Animation | 16,23 | 16.1 |