Continuing the adventure down the material surfacing in Hyperion, I've now added the ability to do refraction. Refraction is kind of the opposite to reflection, think of glass. So not a mirror reflecting light, but glass letting light go through it.
The refraction algorithm includes parts to cover refraction going into the surface versus leaving the surface (these two are slightly different things), different index of refraction (glass refracts differently than water), and total internal reflections.
I added the ability to make the surface look rough as well - a bit like frosted glass. Though technically it's referred to as dispersion, or scattering. Here's what rough surfaces can look like:
And here's a comparison render with a metallic sphere (reflective) and a glass sphere (refractive). Move the slider sideways to see the two versions of the sphere surfaces:
There's a couple of small details I still need to flesh out, but otherwise it looks good.
From here, I need to add specular highlights into the renders. Specular highlights are like bright spots of light on a shiny surface - think of a bright reflective bit on a glass bottle out in the sun.