//Floaty 2d ground textures
// Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
//
// Parameters:
//
//   float3 camera_position;
//   float4 g_campaign_world_bounds;
//   float4 g_mid_distance_details;
//   float g_mid_distance_normal_strength;
//   float2 g_mid_distance_slope;
//   float4 g_screen_size;
//   float g_shroud_enabled;
//   float2 g_uv_offset;
//   float g_vpos_texel_offset;
//   float g_weather_type;
//   float4x4 inv_view_projection;
//   sampler2D s_albedo_map;
//   sampler2D s_depth_map;
//   sampler2D s_gloss_map;
//   sampler2D s_mid_distance_detail_map;
//   sampler2D s_normal_map;
//   sampler2D s_shroud;
//   float4x4 view_projection;
//
//
// Registers:
//
//   Name                           Reg   Size
//   ------------------------------ ----- ----
//   view_projection                c0       4
//   inv_view_projection            c4       4
//   camera_position                c8       1
//   g_screen_size                  c9       1
//   g_vpos_texel_offset            c10      1
//   g_shroud_enabled               c11      1
//   g_campaign_world_bounds        c12      1
//   g_uv_offset                    c13      1
//   g_weather_type                 c14      1
//   g_mid_distance_details         c15      1
//   g_mid_distance_normal_strength c16      1
//   g_mid_distance_slope           c17      1
//   s_shroud                       s0       1
//   s_normal_map                   s1       1
//   s_gloss_map                    s2       1
//   s_depth_map                    s3       1
//   s_mid_distance_detail_map      s4       1
//   s_albedo_map                   s5       1
//

    ps_3_0
    def c18, 0.212599993, 0.715200007, 0.0722000003, 0.720512807
    def c19, 0.00196078443, -2, 3, 100
    def c20, 2, -2, -1, 1
    def c21, 0.00999999978, -1, -0.100000001, -0.5
    def c22, 2.5, 0.200000003, 0.349999994, 0.0250000004
    def c23, 0.0500000007, 0.0399999991, 0.75, 1.25
    def c24, 0, -0, 1, -1
    def c25, 0, 1, 2, -1
def c220, 0, 0, 0.0625, 0
dcl_2d s13
    dcl vPos.xy
    dcl_2d s0
    dcl_2d s1
    dcl_2d s2
    dcl_2d s3
    dcl_2d s4
    dcl_2d s5
    add r0.xy, c10.x, vPos
    mul r0.xy, r0, c9.zwzw
    mov r0.zw, c25.x
    texldl r1, r0.xyww, s5
    texldl r2, r0.xyww, s1
    texldl r3, r0.xyww, s2
    texldl r4, r0, s3
    mad r0.xy, r0, c20, c20.zwzw
    mad r0.zw, r4.x, c25.xyyx, c25.xyxy
    dp4 r4.x, r0, c4
    dp4 r4.y, r0, c5
    dp4 r4.z, r0, c6
    dp4 r0.x, r0, c7
	
mov r10.xyz, r4.xyz
mov r10.w, r0.x

rcp r12.w, r0.x
mul r10, r10, r12.w

dp4 r11.x, r10, c0
dp4 r11.y, r10, c1
dp4 r11.z, r10, c2
dp4 r11.w, r10, c3

texldl r24, c220.z, s13
add r24.y, r11.w, -r24.y
mul r24.x, r24.x, r24.y
add r11.x, r11.x, -r24.x

dp4 r10.x, r11, c4
dp4 r10.y, r11, c5
dp4 r10.z, r11, c6
dp4 r10.w, r11, c7

mul r10, r10, r0.x
mov r4.xyz, r10.xyz  

    rcp r0.x, r0.x
    mul r5.xyz, r0.x, r4
    mad r0.yzw, r2.xxyz, c25.z, c25.w
    mad r2.xyz, r4, r0.x, -c8
    dp3 r1.w, r2, r2
    rsq r1.w, r1.w
    rcp r1.w, r1.w
    rcp r2.x, c15.y
    mul r2.xy, r2.x, r5.xzzw
    texld r2, r2, s4
    add r2.xy, r2.wyzw, c19.x
    mad r2.xy, r2, c25.z, c25.w
    rcp r2.w, c15.x
    mul_sat r1.w, r1.w, r2.w
    mul r2.w, r1.w, c15.w
    mad r6.xyz, r1, r2.z, -r1
    mad r1.xyz, r2.w, r6, r1
    mul r2.xz, r2.xyyw, c16.x
    mov r6.xyz, c25
    add r2.w, r6.y, -c17.x
    add r4.y, r0.z, -c17.x
    rcp r2.w, r2.w
    mul_sat r2.w, r2.w, r4.y
    mad r4.y, r2.w, c19.y, c19.z
    mul r2.w, r2.w, r2.w
    mad r2.w, r4.y, -r2.w, c25.y
    mul r1.w, r1.w, r2.w
    mov r2.y, c25.x
    mad r0.yzw, r1.w, r2.xxyz, r0
    if_lt -c11.x, r6.x
      mad r2.xy, r4.xzzw, r0.x, -c12
      add r2.zw, -c12.xyxy, c12
      rcp r4.x, r2.z
      rcp r4.y, r2.w
      mul r2.xy, r2, r4
      mad r2.zw, c13.xyxy, -r6.z, r6.y
      mad r2, r2.xyyy, r2.zwww, c13.xyyy
      texldl r4, r2, s0
      add r2, r2.xxww, c21.xyxy
      mul_sat r2, r2, c19.w
      mad r7, r2, c19.y, c19.z
      mul r2, r2, r2
      mul r2, r2, r7
      mul r0.x, r4.w, r2.x
      mul r0.x, r0.x, r2.z
      mad r0.x, r2.y, -r0.x, r0.x
      mad r0.x, r2.w, -r0.x, r0.x
    else
      mov r0.x, c25.y
    endif
    add r2.xy, r0.x, c21.zwzw
    mul_sat r0.x, r2.x, c22.x
    mad r1.w, r0.x, c19.y, c19.z
    mul r0.x, r0.x, r0.x
    mul r0.x, r0.x, r1.w
    add_sat r1.w, r2.y, r2.y
    mad r2.x, r1.w, c19.y, c19.z
    mul r1.w, r1.w, r1.w
    mul r1.w, r1.w, r2.x
    mul r0.x, r0.x, c22.y
    mul_sat r2.xyz, r0.x, r1
    lrp r4.xyz, r1.w, r1, r2
    lrp r2.xyz, r1.w, r0.yzww, c25.xyxw
    dp3 r0.x, r4, c18
    add r0.y, -r0.x, c25.y
    lrp r1.x, r3.w, r0.y, r3.z
    mov_sat r0.x, r0.x
    mad r0.x, r3.x, r0.x, -r3.x
    mad r1.y, r3.y, r0.x, r3.x
    mov r5.w, c25.y
    dp4 r0.x, r5, c2
    dp4 r0.y, r5, c3
    add r0.zw, -r6.xyyz, c14.x
    add r1.zw, r1.xyxy, c22
    cmp r1.xy, -r0_abs.z, r1.zwzw, r1
    add r1.zw, r1.xyxy, c23.xyxy
    add r0.z, -r2.y, c18.w
    cmp r3.xy, r0.z, c24, c24.zwzw
    mad r0.z, r2.y, c23.x, r3.y
    mad r0.z, r0.z, c23.z, r3.x
    lrp r3.xyz, r0.z, c23.w, r4
    cmp r3.xyz, -r0_abs.w, r3, r4
    cmp r0.zw, -r0_abs.w, r1, r1.xyxy
    nrm r1.xyz, r2
    rcp r0.y, r0.y
    mul oC3.x, r0.y, r0.x
    max r0.x, r1_abs.y, r1_abs.z
    max r2.x, r1_abs.x, r0.x
    rcp r0.x, r2.x
    mul r1.xyz, r0.x, r1
    mad_sat oC0.xyz, r1, -c21.w, -c21.w
    mov_sat oC0.w, r0.z
    rsq r0.x, r3.x
    rsq r0.y, r3.y
    rsq r0.z, r3.z
    rcp_sat oC1.x, r0.x
    rcp_sat oC1.y, r0.y
    rcp_sat oC1.z, r0.z
    mov_sat oC1.w, r0.w
    mov oC2, c25.y
    mov oC3.yzw, c25.x

// approximately 123 instruction slots used (11 texture, 112 arithmetic)
 