//
// 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 76 "h:\Users\Ryosuke\Documents\Visual Studio 2010\Projects\raytrace\shader.psh"
texld r0, v0, s3
add r0, -r0.y, c0.x
texkill r0
texld r0, v0, s0 // ::regp<0,1,2,3>
#line 83
add r1.xyz, -r0, c8 // ::offset<0,1,2>
#line 79
texld r2, v0, s1 // ::regs<0,1,2,3>
#line 84
dp3 r3.x, r1, r2 // ::distance<0>
mad r1.xyz, r2, -r3.x, r1 // ::differ<0,1,2>
dp3 r1.x, r1, r1 // ::para<0>
mad r3.yzw, c8.w, c8.w, -r1.x
rsq r1.x, r3.w
rcp r1.x, r1.x
add r1.x, r3.x, -r1.x
mad r0.xyz, r2, r1.x, r0 // ::hit<0,1,2>
texkill r3
#line 90
rcp r1.x, c8.w
add r1.yzw, r0.xxyz, -c8.xxyz
mul r1.xyz, r1.x, r1.yzww // ::norm<0,1,2>
dp3 r1.w, r2, r1 // ::cosine<0>
#line 38
mul r3.xyz, r1, r1.w
mad r3.xyz, r3, -c0.y, r2 // ::reflect_impl<0,1,2>
#line 92
dp3 r3.w, r3, r3
rsq r3.w, r3.w
mul oC1.xyz, r3, r3.w // ::sphere1<4,5,6>
rcp r3.x, c9.y // refract_impl::r<0>
#line 43
mul r3.y, r3.x, r3.x
mad r3.z, r1.w, -r1.w, c0.z
mad r3.y, r3.y, -r3.z, c0.z
rsq r3.y, r3.y
rcp r3.y, r3.y
mul r3.yzw, r1.xxyz, r3.y
mad r2.xyz, r1, -r1.w, r2
mad r2.xyz, r2, r3.x, -r3.yzww // ::refract_impl<0,1,2>
#line 93
nrm r3.xyz, r2 // ::refr<0,1,2>
dp3 r1.x, r3, r1 // ::cosine2<0>
mov oC3.xyz, r3 // ::sphere1<12,13,14>
mad r1.y, r1.x, c9.y, r1.w
rcp r1.y, r1.y
mad r1.z, r1.x, -c9.y, r1.w
mul r1.y, r1.y, r1.z // ::refp<0>
#line 103
mul r1.z, r1.y, r1.y
mad r1.y, r1.y, -r1.y, c0.z
mul oC2.w, r0.w, r1.y // ::sphere1<11>
mul oC0.w, r0.w, r1.z // ::sphere1<3>
#line 96
mad r0.w, r1.w, c9.y, r1.x
mad r1.x, r1.w, c9.y, -r1.x
rcp r0.w, r0.w
mul r0.w, r1.x, r0.w // ::refs<0>
#line 103
mul r1.x, r0.w, r0.w
mad r0.w, r0.w, -r0.w, c0.z
mul oC3.w, r2.w, r0.w // ::sphere1<15>
mul oC1.w, r2.w, r1.x // ::sphere1<7>
#line 89
mov oC0.xyz, r0 // ::sphere1<0,1,2>
mov oC2.xyz, r0 // ::sphere1<8,9,10>
// approximately 56 instruction slots used (3 texture, 53 arithmetic)