//????SHADOWS????
// ---- Created with 3Dmigoto v0.6.164 on Thu Aug  7 13:10:13 2025
// MODIFICADO: Todo es sombra
cbuffer _Globals : register(b0)
{
  row_major float4x4 g_SMapTM[4] : packoffset(c101);
  float4 g_DbgColor : packoffset(c117);
  float4 g_FilterTaps[8] : packoffset(c118);
  float4 g_FadingParams : packoffset(c126);
  float4 g_CSMRangesSqr : packoffset(c127);
  float2 g_SMapSize : packoffset(c128);
  float4 g_CameraOrigin : packoffset(c129);
}

cbuffer cb13 : register(b13)
{
  float4 cb13[100];
}

cbuffer cb10 : register(b10)
{
  float4 cb10[100];
}

SamplerState TMU0_Sampler_sampler_s : register(s0);
SamplerComparisonState TMU1_SMSampler_sampler_s : register(s1);
Texture2D<float4> TMU0_Sampler : register(t0);
Texture2D<float4> TMU1_SMSampler : register(t1);
// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
Texture2D<float4> StereoParams : register(t125);
void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float4 v3 : TEXCOORD2,
  float4 v4 : TEXCOORD3,
  float4 v5 : TEXCOORD4,
  float4 v6 : TEXCOORD5,
  out float4 o0 : SV_Target0)
{
  float4 r0,r1,r2;
  uint4 bitmask, uiDest;
  float4 fDest;
  r0.x = TMU0_Sampler.Sample(TMU0_Sampler_sampler_s, v1.xy).x;
  r0.yzw = v2.xyz * r0.xxx;
  r1.xyz = v2.xyz * r0.xxx + g_CameraOrigin.xyz;

  


float4 s = StereoParams.Load(0);
float4 testeo = IniParams.Load(int2(90,0));  
float fov = sqrt(cb13[0].x*cb13[0].x+cb13[0].y*cb13[0].y+cb13[0].z*cb13[0].z);
r1.x += s.x * (r0.x - (s.y * cb13[5].w))  * (cb13[6].x * -cb13[5].y/fov);
r1.y += s.x * (r0.x - (s.y * cb13[5].w))  * (cb13[6].y * -cb13[5].y/fov);
r1.z += s.x * (r0.x - (s.y * cb13[5].w))  * (cb13[6].z * -cb13[5].y/fov);  



  
  r2.xyzw = v4.xyzw * r1.yyyy;
  r2.xyzw = r1.xxxx * v3.xyzw + r2.xyzw;
  r1.xyzw = r1.zzzz * v5.xyzw + r2.xyzw;
  r1.xyzw = v6.xyzw + r1.xyzw;
  r0.x = dot(v0.xy, float2(8.10000038,5.69999981));
  r0.y = dot(r0.yzw, r0.yzw);
  r0.y = saturate(r0.y * g_FadingParams.x + g_FadingParams.y);
  r0.y = r0.y * g_FadingParams.z + g_FadingParams.w;
  sincos(r0.x, r0.x, r2.x);
  r2.y = r0.x;
  r0.xz = r2.xy * r1.ww;
  r0.w = 0;
  r1.w = 0;
  while (true) {
    r2.x = cmp((int)r1.w >= 2);
    if (r2.x != 0) break;
    r2.x = (uint)r1.w << 1;
    r2.xy = g_FilterTaps[r2.x].xy * r0.zx + r1.xy;
    r2.x = TMU1_SMSampler.SampleCmpLevelZero(TMU1_SMSampler_sampler_s, r2.xy, r1.z).x;
    r2.x = r2.x + r0.w;
    r2.y = mad((int)r1.w, 2, 1);
    r2.yz = g_FilterTaps[r2.y].xy * r0.xz + r1.xy;
    r2.y = TMU1_SMSampler.SampleCmpLevelZero(TMU1_SMSampler_sampler_s, r2.yz, r1.z).x;
    r0.w = r2.x + r2.y;
    r1.w = (int)r1.w + 1;
  }
  
  // MODIFICACIÓN: Eliminar sombras proyectadas - Día nublado sin sombras definidas
  o0.xyzw = r0.wwww * float4(0.25,0.25,0.25,0.25) + r0.yyyy;
  
  // Eliminar completamente las sombras calculadas (r0.wwww)
  // Solo mantener la iluminación base uniforme
  ////----> o0.xyzw = r0.yyyy; // Solo iluminación ambiental, sin sombras proyectadas
  
  // Alternativas:
  // o0.xyzw = float4(1,1,1,1); // Iluminación completamente uniforme
  // o0.xyzw = float4(0.9,0.9,0.9,1); // Ligeramente atenuada pero uniforme
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//   using 3Dmigoto v0.6.164 on Thu Aug  7 13:10:13 2025
//
//
// Buffer Definitions:
//
// cbuffer $Globals
// {
//
//   row_major float4x4 g_SMapTM[4];    // Offset: 1616 Size:   256 [unused]
//   float4 g_DbgColor;                 // Offset: 1872 Size:    16 [unused]
//   float4 g_FilterTaps[8];            // Offset: 1888 Size:   128
//   float4 g_FadingParams;             // Offset: 2016 Size:    16
//   float4 g_CSMRangesSqr;             // Offset: 2032 Size:    16 [unused]
//   float2 g_SMapSize;                 // Offset: 2048 Size:     8 [unused]
//   float4 g_CameraOrigin;             // Offset: 2064 Size:    16
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// TMU0_Sampler_sampler              sampler      NA          NA    0        1
// TMU1_SMSampler_sampler          sampler_c      NA          NA    1        1
// TMU0_Sampler                      texture  float4          2d    0        1
// TMU1_SMSampler                    texture  float4          2d    1        1
// $Globals                          cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1   xyz         2     NONE   float   xyz
// TEXCOORD                 2   xyzw        3     NONE   float   xyzw
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyzw        5     NONE   float   xyzw
// TEXCOORD                 5   xyzw        6     NONE   float   xyzw
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[130], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_comparison
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input_ps_siv linear noperspective v0.xy, position
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyzw
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyzw
dcl_input_ps linear v6.xyzw
dcl_output o0.xyzw
dcl_temps 3
sample_indexable(texture2d)(float,float,float,float) r0.x, v1.xyxx, t0.xyzw, s0
mul r0.yzw, r0.xxxx, v2.xxyz
mad r1.xyz, v2.xyzx, r0.xxxx, cb0[129].xyzx
mul r2.xyzw, r1.yyyy, v4.xyzw
mad r2.xyzw, r1.xxxx, v3.xyzw, r2.xyzw
mad r1.xyzw, r1.zzzz, v5.xyzw, r2.xyzw
add r1.xyzw, r1.xyzw, v6.xyzw
dp2 r0.x, v0.xyxx, l(8.100000, 5.700000, 0.000000, 0.000000)
dp3 r0.y, r0.yzwy, r0.yzwy
mad_sat r0.y, r0.y, cb0[126].x, cb0[126].y
mad r0.y, r0.y, cb0[126].z, cb0[126].w
sincos r0.x, r2.x, r0.x
mov r2.y, r0.x
mul r0.xz, r1.wwww, r2.xxyx
mov r0.w, l(0)
mov r1.w, l(0)
loop
  ige r2.x, r1.w, l(2)
  breakc_nz r2.x
  ishl r2.x, r1.w, l(1)
  mad r2.xy, cb0[r2.x + 118].xyxx, r0.zxzz, r1.xyxx
  sample_c_lz_indexable(texture2d)(float,float,float,float) r2.x, r2.xyxx, t1.xxxx, s1, r1.z
  add r2.x, r0.w, r2.x
  imad r2.y, r1.w, l(2), l(1)
  mad r2.yz, cb0[r2.y + 118].xxyx, r0.xxzx, r1.xxyx
  sample_c_lz_indexable(texture2d)(float,float,float,float) r2.y, r2.yzyy, t1.xxxx, s1, r1.z
  add r0.w, r2.y, r2.x
  iadd r1.w, r1.w, l(1)
endloop
mad o0.xyzw, r0.wwww, l(0.250000, 0.250000, 0.250000, 0.250000), r0.yyyy
ret
// Approximately 31 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
