I am trying to implement the Parallax Refraction effect explained by Jorge Jimenez on this presentation: http://www.iryoku.com/downloads/Next-Generation-Character-Rendering-v6.pptx and I am facing some difficulties. Here is a screenshot of the interesting part.
But this document lacks a bit of explanations especially the second part with the Physically based Refraction.
Here is what I've achieved for the moment.
This is the simple Parallax Refraction effect and, as you might notice in the screenshot, there is small glitch at grazing angles in the iris when the Parallax Scale value is too high.
This is caused by the parallax calculation but are there some tricks to avoid or minimize such issue ?
I don't want to go deeper with parallax mapping for the moment, so I don't want to use Steep Parallax Mapping or Parallax Occlusion Mapping.
Here is the code. Nothing really special.
// height value comes from a texture
float2 offset = height * viewDir;
offset.y = -offset.y;
texcoord -= ParallaxScale * offset;
// Next there is the texture sampling with the texcoord value
I also have another question about the Physically based Refraction part which is not really well explained and I am missing how some values are calculated such as refractedW, frontNormalW or heightW. If anyone could provide some explanations about those values.
Thanks a lot.

