1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-16 20:29:57 +00:00
openmw/files/shaders/lib/util/distortion.glsl
2023-12-21 10:56:38 -08:00

32 lines
737 B
GLSL

#ifndef LIB_UTIL_DISTORTION
#define LIB_UTIL_DISTORTION
vec4 applyDistortion(in vec4 color, in float strength, in float pixelDepth, in float sceneDepth)
{
vec4 distortion = color;
float invOcclusion = 1.0;
// TODO: Investigate me. Alpha-clipping is enabled for refraction for what seems an arbitrary threshold, even when
// there are no associated NIF properties.
if (distortion.a < 0.1)
discard;
distortion.b = 0.0;
#if @reverseZ
if (pixelDepth < sceneDepth)
#else
if (pixelDepth > sceneDepth)
#endif
{
invOcclusion = 0.0;
distortion.b = 1.0;
}
distortion.rg = color.rg * 2.0 - 1.0;
distortion.rg *= invOcclusion * strength;
return distortion;
}
#endif