summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to 'assets')
-rw-r--r--assets/demo.seq5
-rw-r--r--assets/final/demo_assets.txt3
-rw-r--r--assets/final/shaders/masked_cube.wgsl9
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;