Our project now has two great examples of different types of shiny surfaces (water and metal), but there’s still something decidedly fake about how they look. One major reason for this is that real shiny surfaces don’t just reflect light coming from a single direct lighting source, they also reflect light that bounces off the world around them. If they didn’t, we’d never be able to see reflections in anything! For this reason, the more complex lighting models used by game engines today include lighting calculations that take environment reflections into account when calculating the lighting on a fragment. The classic Blinn-Phong lighting that we’re using for our examples isn’t this complex, but there’s no reason why we can’t fake it anyway!