mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 00:26:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#include "core.h"
 | 
						|
#include "watersim_common.h"
 | 
						|
 | 
						|
    SH_BEGIN_PROGRAM
 | 
						|
        shInput(float2, UV)
 | 
						|
        shSampler2D(heightCurrentSampler)
 | 
						|
        shUniform(float4, rippleTextureSize) @shSharedParameter(rippleTextureSize, rippleTextureSize)
 | 
						|
 | 
						|
    SH_START_PROGRAM
 | 
						|
    {
 | 
						|
#if !SH_HLSL
 | 
						|
                float2 offset[4] = float2[4] (
 | 
						|
                    float2(-1.0, 0.0),
 | 
						|
                    float2( 1.0, 0.0),
 | 
						|
                    float2( 0.0,-1.0),
 | 
						|
                    float2( 0.0, 1.0)
 | 
						|
                );
 | 
						|
#else
 | 
						|
                float2 offset[4] = {
 | 
						|
                    float2(-1.0, 0.0),
 | 
						|
                    float2( 1.0, 0.0),
 | 
						|
                    float2( 0.0,-1.0),
 | 
						|
                    float2( 0.0, 1.0)
 | 
						|
                    };
 | 
						|
#endif
 | 
						|
 | 
						|
		float fHeightL = DecodeHeightmap(heightCurrentSampler, UV.xy + offset[0]*rippleTextureSize.xy);
 | 
						|
		float fHeightR = DecodeHeightmap(heightCurrentSampler, UV.xy + offset[1]*rippleTextureSize.xy);
 | 
						|
		float fHeightT = DecodeHeightmap(heightCurrentSampler, UV.xy + offset[2]*rippleTextureSize.xy);
 | 
						|
		float fHeightB = DecodeHeightmap(heightCurrentSampler, UV.xy + offset[3]*rippleTextureSize.xy);
 | 
						|
		
 | 
						|
		float3 n = float3(fHeightB - fHeightT, fHeightR - fHeightL, 1.0);
 | 
						|
		float3 normal = (n + 1.0) * 0.5;
 | 
						|
		
 | 
						|
		shOutputColour(0) = float4(normal.rgb, 1.0);
 | 
						|
    }
 |