#import bevy_pbr::mesh_view_bind_group #import bevy_pbr::mesh_struct struct Vertex { [[location(0)]] position: vec3; [[location(1)]] blend_color: vec4; }; struct CustomMaterial { color: vec4; }; [[group(1), binding(0)]] var material: CustomMaterial; [[group(2), binding(0)]] var mesh: Mesh; struct VertexOutput { [[builtin(position)]] clip_position: vec4; [[location(0)]] blend_color: vec4; }; [[stage(vertex)]] fn vertex(vertex: Vertex) -> VertexOutput { let world_position = mesh.model * vec4(vertex.position, 1.0); var out: VertexOutput; out.clip_position = view.view_proj * world_position; out.blend_color = vertex.blend_color; return out; } struct FragmentInput { [[location(0)]] blend_color: vec4; }; [[stage(fragment)]] fn fragment(input: FragmentInput) -> [[location(0)]] vec4 { return material.color * input.blend_color; }