worldVertex.vs 788 B

12345678910111213141516171819202122232425262728293031323334
  1. #version 430
  2. layout (location = 0) in vec3 position;
  3. layout (location = 1) in vec2 tex;
  4. layout (location = 2) in vec3 normal;
  5. uniform mat4 proj;
  6. uniform mat4 view;
  7. uniform mat4 model;
  8. uniform mat4 projShadow;
  9. uniform mat4 viewShadow;
  10. out vec3 varPosition;
  11. out vec2 varTex;
  12. out vec3 varNormal;
  13. out vec4 varShadow;
  14. void main(void)
  15. {
  16. // transforming normals must not use the fourth dimension
  17. // should be the inverse transposed matrix
  18. varNormal = (view * model * vec4(normal, 0.0)).xyz;
  19. varTex = tex;
  20. vec4 worldPos = view * model * vec4(position, 1.0);
  21. varPosition = worldPos.xyz;
  22. gl_Position = proj * worldPos;
  23. varShadow = projShadow * viewShadow * vec4(position, 1.0);
  24. varShadow /= varShadow.w;
  25. varShadow = varShadow * 0.5 + 0.5;
  26. }