I followed a parallax occlusion mapping tutorial on learnopengl.com and ported it into Unity and Blender. In Unity it worked fine, but when I tried it in blender it had a problem.
From the top the parallax worked as expected:
But from the side:
Heres what I translated:
From:
{
float height = texture(depthMap, texCoords).r;
vec2 p = viewDir.xy / viewDir.z * (height * height_scale);
return texCoords - p;
}