Basic OpenGL Framework [Chris Wyman (3/27/2008)] ------------------------- This framework was tested in the MacLean 301 lab, so you should be able to directly gunzip/untar the framework and type "make" inside the "OpenGLFramework" directory. After making the framework, you should be able to run the program: cd bin/ ./glFramework causticBoxScene.txt Please note, the program __requires__ a command-line parameter to specify the scene file. Three example scene files are provided ("causticBoxScene.txt", "homework9Scene.txt" and "cbox_meters.txt"). You may, but need not specify a pathname, since the program explicitly searches for scenes in the "scenes/" directory. You do, however, need to run the executable from inside the bin directory. If execution fails due to issues locating libGLEW.so, I now have a more permanent solution. Please do the following: cd ~ pico .cshrc (or use your favorite editor) And then add the line: setenv LD_LIBRARY_PATH /group/graphics/lib:$LD_LIBRARY_PATH somewhere in your .cshrc file. You will then need to logout and log back in (or start a new terminal). You can also compile against headers (in /group/graphics/include/GL/ ) and use the GLEW utilities "glewinfo" and "visualinfo", which are located in /group/graphics/bin/ All the textures, shaders, models, and scene files needed to run the basic program are included in the "bin/" directory. Please keep all additional textures, shaders, models, and scenes in their corresponding directories. Running the program __requires__ a command-line parameter that specifies what scene file to load. Three example scene files are provided "causticBoxScene.txt" "homework9Scene.txt" and "cbox_meters.txt". You may, but need not specify a pathname, since the program explicitly searches in the "scenes/" directory. For information on where to start looking to understand how the framework works, start with: sceneLoader.cpp <-- main() and a basic GLUT display callback glInterface.cpp <-- idle & reshape callbacks plus the "ApplyUICommand" which is where UI commands (defined in the scene file) are processed. If you need access to standard keyboard & mouse callbacks, see Interface/glKeyAndMouseCallbacks.cpp bin/scenes/homework9Scene.txt <-- A basic scene with lots of comments to describe how scene files work bin/scenes/causticBoxScene.txt <-- A much more advanced scene with materials with shaders, mesh objects, groups of objects, and instances of objects (where the same object is drawn multiple times in different locations in the scene) Utils/glslProgram.h <-- My GLSL shader class Scene/Scene.h <-- A class that describes the scene, it's view, objects, and materials Scene/Camera.h <-- A class that describes the scene camera Scene/glLight.h <-- A class that describes scene lights RenderingTechniques/initializeRenderingData.cpp <-- When I use this framework, data needed by various rendering techniques is defined here. I then either modify my DisplayCallback() or create additional files in the "RenderingTechniques/" directory with alternate display callbacks.