mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 05:56:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			32 lines
		
	
	
	
		
			737 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			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
 |