mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-15 20:01:22 +00:00
Enable the parsing of 'const'. Warn on use of module-scope 'let', and automatically replace with 'const'. Fixed: tint:1580 Change-Id: I214aabca80686dc6b60ae21a7a57fbfb4898ea83 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/93786 Commit-Queue: Ben Clayton <bclayton@google.com> Reviewed-by: Dan Sinclair <dsinclair@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com>
43 lines
1.4 KiB
WebGPU Shading Language
43 lines
1.4 KiB
WebGPU Shading Language
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>,
|
|
}
|
|
|
|
const albedo : vec3<f32> = vec3<f32>(0.899999976, 0.899999976, 0.899999976);
|
|
|
|
const 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);
|
|
}
|