// Vertex shader struct CameraUniform { view_proj: mat4x4, view: mat4x4, proj: mat4x4, view_inv: mat4x4, proj_inv: mat4x4, eye: vec4, resolution: vec2, znear: f32, _padding: f32, }; @group(0) @binding(0) var camera: CameraUniform; struct VertexInput { @location(0) position: vec3, @location(1) normal: vec3, @location(2) uv: vec2, } @vertex fn main_vs( in: VertexInput, ) -> @builtin(position) vec4 { return camera.view_proj * vec4(in.position, 1.0); }