Вам нужна трассировка лучей, чтобы правильно реализовать рефракцию.
Вы можете использовать OpenGL для рендеринга результатов трассировки лучей, и есть несколько трассировщиков лучей GPGPU, но те используют OpenCL или CUDA - в OpenGL API нет ничего, что помогло бы реализовать трассировку лучей или преломление конкретно.