// Volumetric lighting
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Mon Nov 11 12:27:59 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[58], immediateIndexed
dcl_constantbuffer cb1[72], immediateIndexed
dcl_constantbuffer cb2[3], immediateIndexed
dcl_resource_texture3d (float,float,float,float) t0
dcl_uav_typed_texture3d (float,float,float,float) u0
dcl_input vThreadID.xy
dcl_temps 18
dcl_thread_group 8, 8, 1
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r17.xyzw, l(0, 0, 0, 0), t120.xyzw

utof r0.xy, vThreadID.xyxx
add r0.xy, r0.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
div r0.xy, r0.xyxx, cb2[1].xyxx
mad r0.xy, r0.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
mul r0.xy, r0.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000)
lt r0.z, cb1[31].w, l(1.000000)

// mad r0.x, r16.x, r17.w, r0.x
// affects intensity

mul r1.xyzw, r0.yyyy, cb0[55].xyzw
mad r1.xyzw, r0.xxxx, cb0[54].xyzw, r1.xyzw
mov r2.xy, vThreadID.xyxx
mov r2.w, l(0)
mov r0.xyw, cb1[68].xyxz
mov r3.xyzw, l(0,0,0,1.000000)
mov r2.z, l(0)
loop
  uge r4.x, r2.z, cb2[0].z
  breakc_nz r4.x
// utof r2.x, r2.x  
// mad r2.x, r16.x, r17.w, r2.x
// ftou r2.x, r2.x
  ld_indexable(texture3d)(float,float,float,float) r4.xyzw, r2.xyzw, t0.xyzw
  

  utof r5.x, r2.z
  add r5.x, r5.x, l(0.500000)
  div r5.x, r5.x, cb2[2].z
  exp r5.x, r5.x
  add r5.x, r5.x, -cb2[2].y
  div r5.x, r5.x, cb2[2].x
  add r5.y, r5.x, cb1[65].w
  mul r5.y, r5.y, cb1[65].z
  div r5.y, l(1.000000, 1.000000, 1.000000, 1.000000), r5.y
  mad r5.x, r5.x, cb1[30].z, cb1[31].z
  movc r5.x, r0.z, r5.y, r5.x
  mad r5.xyzw, r5.xxxx, cb0[56].xyzw, r1.xyzw
  add r5.xyzw, r5.xyzw, cb0[57].xyzw
  div r5.xyz, r5.xyzx, r5.wwww
  add r5.xyz, r5.xyzx, -cb1[71].xyzx
  add r6.xyz, -r0.xywx, r5.xyzx
  dp3 r5.w, r6.xyzx, r6.xyzx
  sqrt r5.w, r5.w
  mul r5.w, -r4.w, r5.w
  mul r5.w, r5.w, l(1.442695)
  exp r5.w, r5.w
  mad r4.xyz, -r4.xyzx, r5.wwww, r4.xyzx
  max r4.w, r4.w, l(0.000010)
  div r4.xyz, r4.xyzx, r4.wwww
  mad r3.xyz, r4.xyzx, r3.wwww, r3.xyzx
  mul r3.w, r3.w, r5.w
  store_uav_typed u0.xyzw, r2.xyzz, r3.xyzw
  iadd r2.z, r2.z, l(1)
  mov r0.xyw, r5.xyxz
endloop
ret
// Approximately 0 instruction slots used
