plane_shader.wgsl 681 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Vertex shader
  2. struct CameraUniform {
  3. view_proj: mat4x4<f32>
  4. }
  5. @group(0) @binding(0)
  6. var<uniform> camera: CameraUniform;
  7. struct VertexInput {
  8. @location(0) position: vec3<f32>,
  9. @location(1) color: vec3<f32>,
  10. };
  11. struct VertexOutput {
  12. @builtin(position) clip_position: vec4<f32>,
  13. @location(0) color: vec3<f32>,
  14. };
  15. @vertex
  16. fn vs_main(
  17. model: VertexInput,
  18. ) -> VertexOutput {
  19. var out: VertexOutput;
  20. out.color = model.color;
  21. out.clip_position = camera.view_proj * vec4<f32>(model.position, 1.0);
  22. return out;
  23. }
  24. // Fragment shader
  25. @fragment
  26. fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> {
  27. return vec4<f32>(1.0,0.0,0.0, 1.0);
  28. }