colored.vert 993 B

123456789101112131415161718192021222324
  1. // Inputs
  2. attribute vec4 a_position; // Vertex Position (x, y, z, w)
  3. attribute vec3 a_normal; // Vertex Normal (x, y, z)
  4. // Uniforms
  5. uniform mat4 u_worldViewProjectionMatrix; // Matrix to transform a position to clip space.
  6. uniform mat4 u_inverseTransposeWorldViewMatrix; // Matrix to transform a normal to view space.
  7. // Outputs
  8. varying vec3 v_normalVector; // Normal vector in view space.
  9. void main()
  10. {
  11. // Vertex attributes
  12. vec4 position = a_position;
  13. vec3 normal = a_normal;
  14. // Transform position to clip space.
  15. gl_Position = u_worldViewProjectionMatrix * position;
  16. // Transform normal to view space.
  17. mat3 inverseTransposeWorldViewMatrix = mat3(u_inverseTransposeWorldViewMatrix[0].xyz, u_inverseTransposeWorldViewMatrix[1].xyz, u_inverseTransposeWorldViewMatrix[2].xyz);
  18. v_normalVector = inverseTransposeWorldViewMatrix * normal;
  19. }