Eyes and Refraction Help

I am attempting to get an eye shader working, and I’m having quite a bit of difficulty figuring out how UE4 handles refraction.

Here’s my current setup:

Shader setup for the lense

Mesh setup:
Blue mesh - Sclera, has a transparent mask over the lense
White mesh - The lense itself with the refraction material applied
Green mesh - Iris. No transparency, just a normal map and diffuse

I’ve tried this setup without an individual mesh for the lense, the results are very comparable.

My current “solution” clearly isnt working, because it’s “pushing” the iris further back into the eye, revealing the black background or other objects behind it, like so:

So, what’s the best way to get depth/refraction in an eye?

Check out the refraction setup from the docs where they lerp between different values using a fresnel. Should help reduce the amount the iris gets pushed back. https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Refraction/

Some improvements using the fresnel, the front view is much, much better now.

Before

After

However, the eye still has issues when viewed from the side

Any thoughts on how to fix that? The IOR is set to 1.4 still, dropping it below 1 leads to some weird issues, and pushing it higher makes the Iris appear further back, exposing more of the background objects.

My advice would be to have the eye be one mesh, one material, and fake the refraction and bulge in the material, that’s what Epic is doing with Paragon, there livestream talked a lot about it and showed how it works.