diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-06 02:14:30 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-06 02:14:30 +0100 |
| commit | 75bdd2f8c17169422d175ed2d9dfceb9acb0fe77 (patch) | |
| tree | 9a08a9cc1527c36d10cad71b34ab8ffa64c9cef0 /assets/final/shaders/renderer_3d.wgsl | |
| parent | ae4b03ef6f5ef07dcc80affd6877d17fceee7d29 (diff) | |
refactor(gpu): Implement compile-time BVH toggle via shader composition
Completed Task #18-B optimization and refactoring.
- Replaced runtime branching in shader with compile-time snippet substitution in ShaderComposer.
- Added 'scene_query_bvh.wgsl' and 'scene_query_linear.wgsl' as distinct snippets.
- Refactored Renderer3D to manage two separate pipelines (with and without BVH).
- Updated ShaderComposer to support snippet substitution during composition.
- Verified both paths with test_3d_render (default and --no-bvh).
- Removed temporary shader hacks and cleaned up renderer_3d.wgsl.
Diffstat (limited to 'assets/final/shaders/renderer_3d.wgsl')
| -rw-r--r-- | assets/final/shaders/renderer_3d.wgsl | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/assets/final/shaders/renderer_3d.wgsl b/assets/final/shaders/renderer_3d.wgsl index 723aeb0..f855052 100644 --- a/assets/final/shaders/renderer_3d.wgsl +++ b/assets/final/shaders/renderer_3d.wgsl @@ -3,13 +3,7 @@ @group(0) @binding(0) var<uniform> globals: GlobalUniforms; @group(0) @binding(1) var<storage, read> object_data: ObjectsBuffer; -struct BVHNode { - min: vec3<f32>, - left_idx: i32, - max: vec3<f32>, - obj_idx_or_right: i32, -}; -@group(0) @binding(2) var<storage, read> bvh_nodes: array<BVHNode>; +// Binding 2 is reserved for BVH buffer when enabled @group(0) @binding(3) var noise_tex: texture_2d<f32>; @group(0) @binding(4) var noise_sampler: sampler; @@ -65,7 +59,7 @@ fn vs_main(@builtin(vertex_index) vertex_index: u32, return out; } -#include "render/scene_query" +#include "render/scene_query_mode" #include "render/shadows" #include "render/lighting_utils" #include "ray_box" @@ -175,4 +169,4 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> { let shadow = calc_shadow(p, light_dir, 0.05, 20.0, in.instance_index); let lit_color = calculate_lighting(base_color, normal, p, shadow); return vec4<f32>(lit_color, 1.0); -} +}
\ No newline at end of file |
