@binding(0) @group(0) var ubos : array, 16>; struct VertexOutput { @builtin(position) position_clip : vec4; @location(0) fragUV : vec2; @location(1) fragPosition: vec4; }; @stage(vertex) fn main(@builtin(instance_index) instanceIdx : u32, @location(0) position : vec4, @location(1) uv : vec2) -> VertexOutput { var output : VertexOutput; output.position_clip = ubos[instanceIdx] * position; output.fragUV = uv; output.fragPosition = 0.5 * (position + vec4(1.0, 1.0, 1.0, 1.0)); return output; }