mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 17:56:42 +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
 |