From 35ae3ce5cc30d677388e6c57bd0af76680e3d7ae Mon Sep 17 00:00:00 2001 From: xfy Date: Wed, 15 Jul 2026 13:18:02 +0800 Subject: [PATCH] feat(uniform): add 9 volumetric-disk fields to BlackHoleUniforms Rust and WGSL structs kept in lockstep: 8 f32 tunables + disk_quality u32 tier. Appended after _pad5; scalar fields pack contiguously so no explicit padding needed. Defaults mirror BlackHoleParams::default. --- assets/shaders/black_hole.wgsl | 9 +++++++++ src/render/material.rs | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/assets/shaders/black_hole.wgsl b/assets/shaders/black_hole.wgsl index 0433c96..8f569b2 100644 --- a/assets/shaders/black_hole.wgsl +++ b/assets/shaders/black_hole.wgsl @@ -39,6 +39,15 @@ struct BlackHoleUniforms { bloom_strength: f32, exposure: f32, _pad5: f32, + disk_half_thickness: f32, + filament_freq: f32, + filament_sharpness: f32, + density_freq: f32, + density_strength: f32, + arm_count: f32, + arm_tightness: f32, + arm_strength: f32, + disk_quality: u32, }; @group(#{MATERIAL_BIND_GROUP}) @binding(0) var uniforms: BlackHoleUniforms; diff --git a/src/render/material.rs b/src/render/material.rs index 2a65bef..12a74b8 100644 --- a/src/render/material.rs +++ b/src/render/material.rs @@ -43,6 +43,16 @@ pub struct BlackHoleUniforms { pub bloom_strength: f32, pub exposure: f32, pub _pad5: f32, + // Disk volumetric (Phase 3.1) + pub disk_half_thickness: f32, + pub filament_freq: f32, + pub filament_sharpness: f32, + pub density_freq: f32, + pub density_strength: f32, + pub arm_count: f32, + pub arm_tightness: f32, + pub arm_strength: f32, + pub disk_quality: u32, } impl Default for BlackHoleUniforms { @@ -79,6 +89,15 @@ impl Default for BlackHoleUniforms { bloom_strength: 0.8, exposure: 1.0, _pad5: 0.0, + disk_half_thickness: 0.3, + filament_freq: 1.0, + filament_sharpness: 2.0, + density_freq: 0.8, + density_strength: 1.0, + arm_count: 2.0, + arm_tightness: 2.0, + arm_strength: 0.5, + disk_quality: 3, // High } } }