произведение точек между двумя векторами вернет косинус угла (в GLSL это точка (a, b)). Взяв арккосинус, мы получим угол в радианах (в GLSL это acos (x)).
Точечный продукт очень дешевый, арккосинус довольно дорогой.
Однако эффекту Френеля не нужен угол. Достаточно иметь точечный результат между векторами. Существует много приближений к эффекту Френеля, одно из самых дешевых - это просто прямое использование точки. Или возводя его в квадрат (х * х), или поднимая до какой-то другой степени.
В вашем шейдере выше, похоже, вы просто хотите поднять точку до 5-й степени. Что-то вроде:
float oneMinusDot = 1.0 - dot(L, N);
float F = pow(oneMinusDot, 5.0);