1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
struct CommonUniforms {
resolution: vec2<f32>, // Screen dimensions
aspect_ratio: f32, // Width/height ratio
time: f32, // Physical time in seconds (unaffected by tempo)
beat_time: f32, // Musical time in beats (absolute, tempo-scaled)
beat_phase: f32, // Fractional beat (0.0-1.0 within current beat)
audio_intensity: f32, // Audio peak for beat sync
_pad: f32, // Padding
};
struct GlobalUniforms {
view_proj: mat4x4<f32>,
inv_view_proj: mat4x4<f32>,
camera_pos_time: vec4<f32>,
params: vec4<f32>,
resolution: vec2<f32>,
};
struct ObjectData {
model: mat4x4<f32>,
inv_model: mat4x4<f32>,
color: vec4<f32>,
params: vec4<f32>,
};
struct ObjectsBuffer {
objects: array<ObjectData>,
};
|