rendered paste body//#include "common.h"
//#include "lmodel.h"
//#include "shadow.h"
half pp ( float v ) { return v; }
half2 pp ( float2 v ) { return v; }
half3 pp ( float3 v ) { return v; }
half4 pp ( float4 v ) { return v; }
half4 cmp_pp( half4 v, half4 a, half4 b )
{ return half4( (v[0]>=0)?a[0]:b[0], (v[1]>=0)?a[1]:b[1],(v[2]>=0)?a[2]:b[2], (v[3]>=0)?a[3]:b[3] ); }
float4 cmp( float4 v, float4 a, float4 b )
{ return float4( (v[0]>=0)?a[0]:b[0], (v[1]>=0)?a[1]:b[1],(v[2]>=0)?a[2]:b[2], (v[3]>=0)?a[3]:b[3] ); }
// m_sunmask c0 4
// m_shadow c4 4
// Ldynamic_color c8 1
// Ldynamic_dir c9 1
// T c10 1
// s_smap s0 1
// s_position s1 1
// s_normal s2 1
// s_lmap s3 1
// s_accumulator s4 1
float4 Ldynamic_color;
float4 Ldynamic_dir;
float3 T;
float4x4 m_shadow;
float3x4 m_sunmask;
uniform sampler2D s_accumulator;
uniform sampler2D s_lmap;
uniform sampler2D s_normal;
uniform sampler2D s_position;
uniform sampler2D s_smap;
float4 main( float2 tc : TEXCOORD0 ) : COLOR {
float4x4 c = {
{ 1, 3.33333325, 1.53846157, -1 },
{ -0.000585937523, 0, 1, 1024 },
{ 1.44269502, 0.625, 0.400000006, 0.600000024 },
{ 0.000585937523, -0.000585937523, 0.25, 0 }
};
float4 r0, r1, r2, r3, r4, result;
r0 = tex2D( s_position, tc );
r1 = (r0.y) * (m_shadow[1]);
r1 = ((m_shadow[0]) * (r0.x)) + (r1);
r1 = ((m_shadow[2]) * (r0.z)) + (r1);
r1 = (r1) + (m_shadow[3]);
r0.w = 1/( r1.w );
r2.xy = ((r1) * (r0.w)) + (c[1].x);
r3 = tex2D( s_smap, r2 );
r2.xy = (r2) * (c[1].w);
r3 = ((r1.z) * (r0.w)) + (-r3);
r3 = cmp( r3, c[1].y, c[1].z );
r2.xy = frac( r2 );
r2.zw = pp((-r2.xyxy) + (c[0].x));
r4 = pp((r2.xyyw) * (r2.wzxz));
r1.w = pp(dot( (float4) r3, r4 ));
r2.xy = ((r1) * (r0.w)) + (c[3]);
r3 = tex2D( s_smap, r2 );
r2.xy = (r2) * (c[1].w);
r3 = ((r1.z) * (r0.w)) + (-r3);
r3 = cmp( r3, c[1].y, c[1].z );
r2.xy = frac( r2 );
r2.zw = pp((-r2.xyxy) + (c[0].x));
r4 = pp((r2.xyyw) * (r2.wzxz));
r2.x = pp(dot( (float4) r3, r4 ));
r1.w = pp((r1.w) + (r2.x));
r2.xy = ((r1) * (r0.w)) + (c[3].yxzw);
r3 = tex2D( s_smap, r2 );
r2.xy = (r2) * (c[1].w);
r3 = ((r1.z) * (r0.w)) + (-r3);
r3 = cmp( r3, c[1].y, c[1].z );
r2.xy = frac( r2 );
r2.zw = pp((-r2.xyxy) + (c[0].x));
r4 = pp((r2.xyyw) * (r2.wzxz));
r2.x = pp(dot( (float4) r3, r4 ));
r1.w = pp((r1.w) + (r2.x));
r1.xy = ((r1) * (r0.w)) + (-c[1].x);
r2 = tex2D( s_smap, r1 );
r1.xy = (r1) * (c[1].w);
r2 = ((r1.z) * (r0.w)) + (-r2);
r2 = cmp( r2, c[1].y, c[1].z );
r1.xy = frac( r1 );
r3.xy = pp((-r1) + (c[0].x));
r4.xy = pp((r1) * (r3.yxzw));
r4.z = pp((r1.y) * (r1.x));
r4.w = pp((r3.y) * (r3.x));
r0.w = pp(dot( (float4) r2, r4 ));
r0.w = pp((r1.w) + (r0.w));
r1.xy = (r0.y) * (m_sunmask[1]);
r1.xy = ((m_sunmask[0]) * (r0.x)) + (r1);
r1.xy = ((m_sunmask[2]) * (r0.z)) + (r1);
r1.xy = (r1) + (m_sunmask[3]);
r1 = pp(tex2D( s_normal, r1 ));
r0.w = pp((r0.w) * (r1.w));
r0.w = pp((r0.w) * (c[3].z));
r1.x = pp(dot( (float3) r0, r0 ));
r1.x = pp( 1/sqrt( r1.x ) );
r0.xyz = pp( ((r0) * (-r1.x)) + (-Ldynamic_dir) );
r1.x = pp(dot( (float3) r0, r0 ));
r1.x = pp( 1/sqrt( r1.x ) );
r2 = pp(tex2D( s2, tc ));
r3.xyz = pp(normalize(r2));
r1.y = pp(saturate( dot( (float3) r3, -Ldynamic_dir ) ));
r2.xyz = (r3) * (r1.y);
r0.xyz = ((r0) * (r1.x)) + (-r2);
r2.xyz = normalize(r0);
r0.x = dot( (float3) T, r2 );
r0.y = (-r0.x) + (c[0].x);
r0.y = (r0.y) * (c[0].y);
r0.x = ((r0.x) * (c[0].z)) + (r0.y);
r0.y = (r1.y) + (c[0].w);
r0.x = (r0.x) * (r0.y);
r0.y = 1/( r1.y );
r0.x = (r0.x) * (r0.y);
r0.x = (r0.x) * (c[2].x);
r0.x = pow( 2, r0.x );
r0.x = (r1.y) * (r0.x);
r0.y = (r1.y) * (r1.y);
r0.x = ((r0.x) * (c[2].y)) + (r0.y);
r0.y = saturate( ( (r1.y) * (c[2].z) ) + (c[2].w) );
r0.y = (r1.y) * (r0.y);
r0.x = pp( ((r0.y) * (-Ldynamic_dir.w)) + (r0.x) );
r1 = (r0.x) * (Ldynamic_color);
r2 = pp(tex2D( s_accumulator, tc ));
result = pp( ((r1) * (r0.w)) + (r2) );
return result;
}