shader.vert 961 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #version 450
  2. layout(location=0) in vec3 a_position;
  3. layout(location=1) in vec2 a_tex_coords;
  4. layout(location=2) in vec3 a_normal;
  5. layout(location=0) out vec2 v_tex_coords;
  6. layout(location=1) out vec3 v_normal;
  7. layout(location=2) out vec3 v_position;
  8. layout(set=1, binding=0)
  9. uniform Uniforms {
  10. vec3 u_view_position; // unused
  11. mat4 u_view_proj;
  12. };
  13. layout(location=5) in vec4 model_matrix_0;
  14. layout(location=6) in vec4 model_matrix_1;
  15. layout(location=7) in vec4 model_matrix_2;
  16. layout(location=8) in vec4 model_matrix_3;
  17. void main() {
  18. mat4 model_matrix = mat4(
  19. model_matrix_0,
  20. model_matrix_1,
  21. model_matrix_2,
  22. model_matrix_3
  23. );
  24. v_tex_coords = a_tex_coords;
  25. mat3 normal_matrix = mat3(transpose(inverse(model_matrix)));
  26. v_normal = normal_matrix * a_normal;
  27. vec4 model_space = model_matrix * vec4(a_position, 1.0);
  28. v_position = model_space.xyz;
  29. gl_Position = u_view_proj * model_space;
  30. }