export const vertexShader = ` struct TransformUniform { modelMatrix: mat4x4, modelViewMatrix: mat4x4, projectionMatrix: mat4x4, viewMatrix: mat4x4, normalMatrix: mat3x3, cameraPosition: vec3, } struct Output { @builtin(position) v_position: vec4, @location(2) v_color: vec4, @location(1) v_uv: vec2 } struct GeometryInput { @location(0) position: vec4, @location(2) color: vec4, // @location(2) normal: vec3,// input、的数据必须和代码传入数据一样多,而vertex到fragment可以不用 // @location(3) uv: vec2, }; @vertex fn vs_main(in: GeometryInput) -> Output { var output:Output; output.v_position = in.position; output.v_color = in.color; return output; } ` export const fragmentShader = ` struct Input { @location(2) v_color: vec4, @location(1) v_uv: vec2 }; @fragment fn fs_main(input:Input)->@location(0) vec4{ return input.v_color; }`