How to Render: the fundamentals of light, shadow and reflectivity