let shadowDepthTextureSize : f32 = 1024.0;

struct Scene {
  lightViewProjMatrix : mat4x4<f32>,
  cameraViewProjMatrix : mat4x4<f32>,
  lightPos : vec3<f32>,
}

@group(0) @binding(0) var<uniform> scene : Scene;

@group(0) @binding(1) var shadowMap : texture_depth_2d;

@group(0) @binding(2) var shadowSampler : sampler_comparison;

struct FragmentInput {
  @location(0)
  shadowPos : vec3<f32>,
  @location(1)
  fragPos : vec3<f32>,
  @location(2)
  fragNorm : vec3<f32>,
}

let albedo : vec3<f32> = vec3<f32>(0.899999976, 0.899999976, 0.899999976);

let ambientFactor : f32 = 0.200000003;

@fragment
fn main(input : FragmentInput) -> @location(0) vec4<f32> {
  var visibility : f32 = 0.0;
  let oneOverShadowDepthTextureSize = (1.0 / shadowDepthTextureSize);
  for(var y : i32 = -1; (y <= 1); y = (y + 1)) {
    for(var x : i32 = -1; (x <= 1); x = (x + 1)) {
      let offset : vec2<f32> = vec2<f32>((f32(x) * oneOverShadowDepthTextureSize), (f32(y) * oneOverShadowDepthTextureSize));
      visibility = (visibility + textureSampleCompare(shadowMap, shadowSampler, (input.shadowPos.xy + offset), (input.shadowPos.z - 0.007)));
    }
  }
  visibility = (visibility / 9.0);
  let lambertFactor : f32 = max(dot(normalize((scene.lightPos - input.fragPos)), input.fragNorm), 0.0);
  let lightingFactor : f32 = min((ambientFactor + (visibility * lambertFactor)), 1.0);
  return vec4<f32>((lightingFactor * albedo), 1.0);
}
