From 398064aef06d64baf464ea22f8238d0c38effd4f Mon Sep 17 00:00:00 2001 From: mars Date: Thu, 30 Jun 2022 09:53:02 -0600 Subject: [PATCH] Improve mesh debug colors --- shaders/mesh_forward.wgsl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/shaders/mesh_forward.wgsl b/shaders/mesh_forward.wgsl index bc2a3a1..6ab86d9 100644 --- a/shaders/mesh_forward.wgsl +++ b/shaders/mesh_forward.wgsl @@ -11,11 +11,16 @@ struct VertexInput { struct VertexOutput { [[builtin(position)]] clip_position: vec4; [[location(0)]] position: vec3; + [[location(1)]] color: vec3; }; [[group(0), binding(0)]] var camera: CameraUniform; +fn random(seed: u32, salt: f32) -> f32 { + return abs(sin((f32(seed & u32(0x11111)) * 0.7071 + salt) * 78.233)); +} + [[stage(vertex)]] fn vs_main( [[builtin(instance_index)]] mesh_idx: u32, @@ -27,6 +32,9 @@ fn vs_main( var out: VertexOutput; out.clip_position = camera.vp * vec4(world_pos, 1.0); out.position = world_pos; + out.color.r = random(vertex_idx, f32(1.0) + world_pos.x); + out.color.g = random(vertex_idx, f32(2.0) + world_pos.y); + out.color.b = random(vertex_idx, f32(3.0) + world_pos.z); return out; } @@ -34,5 +42,5 @@ fn vs_main( fn fs_main( frag: VertexOutput, ) -> [[location(0)]] vec4 { - return vec4(sin(frag.position) * vec3(0.5) + vec3(0.5), 1.0); + return vec4(frag.color, 1.0); }