This is a desert scene containing a cactus on sandy ground with a blue sky background. As time passes, the cactus's shadow will change. The sky will brighten and darken also. Controls Use the arrow keys to change the view direction (although there isn't much to see outside of the default view) press 's' to toggle shadows press 'l' to decrease minimal lighting press 'L' to increase minimal lighting press 'a' to speed up time press 'z' to slow down time press 'w' to toggle wireframe mode The cactus is made of several cylinders and spheres with material properties set to reflect mostly green ambient and diffuse light. Its shadow is generated using a matrix to project it onto the xz plane. The shadow is scaled according to the time of day. The ground is just a quad with a sand image used as a texture map. The background is another quad using a sky image for a texture map. Light from the "sun" emits only diffuse light, and the only object in the scene to reflect diffuse light is the cactus. You can see the lighting change according to the time of day. There's also a small amount of diffuse light from "stars." This helps give the cactus some definition at night. Ambient light changes as time passes. The ambient light is used mainly to illuminate the ground and background, which only reflect ambient light. Late in the day, the ambient light changes to produce more red than green and blue, resulting in a sort of sunset effect. Things I wanted to include, but didn't have time for: bump mapping for the cactus adding more objects to the scene, like a rock and tumbleweed blending the shadow with the ground having stars gradually blend in with the sky at night