diff options
Diffstat (limited to 'assets')
| -rw-r--r-- | assets/demo.seq | 5 | ||||
| -rw-r--r-- | assets/final/demo_assets.txt | 3 | ||||
| -rw-r--r-- | assets/final/shaders/masked_cube.wgsl | 9 |
3 files changed, 12 insertions, 5 deletions
diff --git a/assets/demo.seq b/assets/demo.seq index 9c55fe5..0dfb108 100644 --- a/assets/demo.seq +++ b/assets/demo.seq @@ -29,6 +29,11 @@ SEQUENCE 0b 0 EFFECT + SolarizeEffect 0 4b # Priority 2 (was 3, now contiguous) EFFECT + VignetteEffect 0 6 radius=0.6 softness=0.1 +SEQUENCE 2.0 0 + EFFECT + CircleMaskEffect 0.0 2.0 0.35 # Priority 0 (mask generator, radius 0.35) + EFFECT + RotatingCubeEffect 0.0 2.0 # Priority 1 (renders inside circle) + EFFECT + GaussianBlurEffect 0.0 2.0 strength=2.0 # Priority 2 (post-process blur) + SEQUENCE 4b 0 EFFECT - FlashCubeEffect 0.1 3. # Priority -1 EFFECT + FlashEffect 0.0 0.2 # Priority 0 (was 4, now contiguous) diff --git a/assets/final/demo_assets.txt b/assets/final/demo_assets.txt index bf39c5d..05eee17 100644 --- a/assets/final/demo_assets.txt +++ b/assets/final/demo_assets.txt @@ -52,3 +52,6 @@ SHADER_MESH, NONE, shaders/mesh_render.wgsl, "Mesh Rasterization Shader" MESH_CUBE, NONE, test_mesh.obj, "A simple cube mesh" DODECAHEDRON, NONE, dodecahedron.obj, "A dodecahedron mesh" SHADER_VIGNETTE, NONE, shaders/vignette.wgsl, "Vignette Shader" +CIRCLE_MASK_COMPUTE_SHADER, NONE, shaders/circle_mask_compute.wgsl, "Circle mask compute shader" +CIRCLE_MASK_RENDER_SHADER, NONE, shaders/circle_mask_render.wgsl, "Circle mask render shader" +MASKED_CUBE_SHADER, NONE, shaders/masked_cube.wgsl, "Masked cube shader" diff --git a/assets/final/shaders/masked_cube.wgsl b/assets/final/shaders/masked_cube.wgsl index 77e2fb9..5e673a3 100644 --- a/assets/final/shaders/masked_cube.wgsl +++ b/assets/final/shaders/masked_cube.wgsl @@ -7,7 +7,6 @@ @group(0) @binding(1) var<storage, read> object_data: ObjectsBuffer; @group(0) @binding(3) var noise_tex: texture_2d<f32>; @group(0) @binding(4) var noise_sampler: sampler; -@group(0) @binding(5) var sky_tex: texture_2d<f32>; @group(1) @binding(0) var mask_tex: texture_2d<f32>; @group(1) @binding(1) var mask_sampler: sampler; @@ -89,13 +88,13 @@ fn fs_main(in: VertexOutput) -> FragmentOutput { let local_origin = (inv_model * vec4<f32>(ray_origin, 1.0)).xyz; let local_dir = normalize((inv_model * vec4<f32>(ray_dir, 0.0)).xyz); - let t = ray_box(local_origin, local_dir, vec3<f32>(-1.0), vec3<f32>(1.0)); - if (t.y < 0.0) { + let bounds = ray_box_intersection(local_origin, local_dir, vec3<f32>(1.0)); + if (!bounds.hit) { discard; } - let t_start = max(t.x, 0.0); - let t_end = t.y; + let t_start = bounds.t_entry; + let t_end = bounds.t_exit; var t_march = t_start; let max_steps = 128; |
