A 3D graphics engine that has multiple features done using OpenGL and GLSL shaders. Using C++ I wrote a loader that can load any .obj file using triangles. The model can then be rendered using the Phong illumination technique. Able to support eight separate lights that can be positional, spotlight, or directional. The ambient, diffuse, and specular color in each light can be altered. Each model can have a single solid color or use a .tga file as a texture for either a diffuse or specular color.
Normal Mapping
Normal maps can also be applied onto models to be used for normal mapping allowing models to simulate bumps and textures.
Two different colored lights lighting an object
Spotlights can also use a loaded texture and project it onto a scene.
Reflection
Objects can also be set to be either reflective, refractive, or use Fresnel equation to both reflect and refract similar to glass. Each RGB value is has a different refraction value allowing for a prism like effect.
Refraction. Notice the prism like effects where some colors are bent more than others.
Fresnel refraction/reflection. Notice the cubes slightly reflecting off of the sphere.