************************************************************************** * (Shader X7 Demo) * * A Hybrid Method for Interactive Shadows in Homogeneous Media * * Chris Wyman Shaun Ramsey * ************************************************************************** This directory contains executables and code for a demo for our chapter entitled "A Hybrid Method for Interactive Shadows in Homogeneous Media." The demo requires: 1) GLUT (.dll included) 2) GLEW (.dll included) 3) A DirectX-10 class graphics card under Windows XP or Vista 4) (Possibly) an nVidia card. I have not tested this using ATI cards. More details are included about requirements in the README inside the "bin/" directory (where the precompile executable resides). The project file is for Microsoft Visual Studio .NET 2008. The codebase relies on a "standard" framework I use for most of my recent OpenGL-based research. The idea is to use a scenegraph-like construct that hides most of the rendering details from me when I want to render the whole scene at once, but still lets me easily pick out individual objects to render as glass, with caustics, or casting volumetric fog. Most of the code (inside the directories DataTypes, Interface, Materials, Objects, Scene, and Utils) is thus framework code that isn't particularly relevant to this demo. While this code is mostly straightforward and "self-commenting," I haven't spent time making sure it is particularly legible. Most of the interesting stuff goes on inside "RenderingTechniques," particularly "basicVolumeShadows.cpp" and "volumetricShadows.cpp," which contain, respectively, the code for using basic point light sources and textured spotlights to cast volumetric shadows. The "sceneLoader.cpp" code in this directory keeps it all together (main() routine, display callback, etc). Shaders are located in "bin/shaders/", and a README in that directroy describes which are particularly relevant to this demo.