struct CameraUniform { eye: vec4; vp: mat4x4; }; struct MeshInstance { transform: mat4x4; }; struct MeshData { instances: array; }; struct PointLight { center: vec4; intensity: vec4; }; struct PointLightData { num: i32; lights: array; }; struct VertexInput { [[location(0)]] position: vec3; [[location(1)]] normal: vec3; [[location(2)]] tex_coords: vec2; }; struct VertexOutput { [[builtin(position)]] clip_position: vec4; [[location(0)]] position: vec3; [[location(1)]] normal: vec3; [[location(2)]] tex_coords: vec2; };