//
// Generated by Microsoft (R) HLSL Shader Compiler 9.24.950.2656
//
// Parameters:
//
// sampler2D sDir;
// sampler2D sMask;
// sampler2D sPos;
// float4 sp[4];
//
//
// Registers:
//
// Name Reg Size
// ------------ ----- ----
// sp c8 2
// sPos s0 1
// sDir s1 1
// sMask s3 1
//
ps_3_0
def c0, 0.5, 2, 1, 0
dcl_texcoord v0.xy // In<4,5>
dcl_2d s0
dcl_2d s1
dcl_2d s3
#line 121 "h:\Users\Ryosuke\Documents\Visual Studio 2010\Projects\raytrace\shader.psh"
texld r0, v0, s3
add r0, -r0.y, c0.x
texkill r0
#line 132
rcp r0.x, c8.w
#line 123
texld r1, v0, s0 // ::regp<0,1,2,3>
#line 128
add r0.yzw, -r1.xxyz, c8.xxyz // ::offset<0,1,2>
#line 124
texld r2, v0, s1 // ::regs<0,1,2,3>
#line 129
dp3 r0.y, r0.yzww, r2 // ::distance<0>
mul r0.yzw, r2.xxyz, r0.y
mad r0.yzw, r0, c0.y, r1.xxyz // ::hit<0,1,2>
add r1.xyz, r0.yzww, -c8
mul r1.xyz, r0.x, -r1 // ::norm<0,1,2>
dp3 r0.x, r2, r1 // ::cosine<0>
#line 38
mul r3.xyz, r1, r0.x
mad r3.xyz, r3, -c0.y, r2 // ::reflect_impl<0,1,2>
#line 134
dp3 r3.w, r3, r3
rsq r3.w, r3.w
mul oC3.xyz, r3, r3.w // ::inner1<12,13,14>
#line 43
mul r3.x, c9.y, c9.y
mad r3.y, r0.x, -r0.x, c0.z
mad r3.x, r3.x, -r3.y, c0.z
rsq r3.x, r3.x
rcp r3.x, r3.x
mul r3.xyz, r1, r3.x
mad r2.xyz, r1, -r0.x, r2
mad r2.xyz, r2, c9.y, -r3 // ::refract_impl<0,1,2>
#line 135
nrm r3.xyz, r2 // ::refr<0,1,2>
dp3 r1.x, r3, r1 // ::cosine2<0>
mov oC1.xyz, r3 // ::inner1<4,5,6>
mad r1.y, r0.x, c9.y, r1.x
rcp r1.y, r1.y
mad r1.z, r0.x, c9.y, -r1.x
mul r1.y, r1.y, r1.z // ::refp<0>
#line 145
mad r1.z, r1.y, -r1.y, c0.z
mul r1.y, r1.y, r1.y
mul oC2.w, r1.w, r1.y // ::inner1<11>
mul oC0.w, r1.w, r1.z // ::inner1<3>
#line 138
mad r1.y, r1.x, c9.y, r0.x
mad r0.x, r1.x, -c9.y, r0.x
rcp r1.x, r1.y
mul r0.x, r0.x, r1.x // ::refs<0>
#line 145
mad r1.x, r0.x, -r0.x, c0.z
mul r0.x, r0.x, r0.x
mul oC3.w, r2.w, r0.x // ::inner1<15>
mul oC1.w, r2.w, r1.x // ::inner1<7>
#line 131
mov oC0.xyz, r0.yzww // ::inner1<0,1,2>
mov oC2.xyz, r0.yzww // ::inner1<8,9,10>
// approximately 49 instruction slots used (3 texture, 46 arithmetic)