// Vertex shader struct Data { mvp: mat4x4; outline: vec4; }; [[group(0), binding(0)]] var data: Data; struct VertexInput { [[location(0)]] position: vec3; [[location(1)]] uv: vec2; }; struct VertexOutput { [[builtin(position)]] clip_position: vec4; [[location(0)]] uv: vec2; [[location(1)]] normal: vec3; }; [[stage(vertex)]] fn vs_main( model: VertexInput, ) -> VertexOutput { var out: VertexOutput; out.clip_position = data.mvp * vec4(model.position, 1.0); out.uv = model.uv; out.normal = normalize(model.position); return out; }