pointSpriteVS.glsl 936 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #version 330
  2. precision highp float;
  3. layout (location = 0) in vec4 position;
  4. layout (location = 1) in vec4 instance_position;
  5. layout (location = 3) in vec2 uvcoords;
  6. layout (location = 4) in vec3 vertexnormal;
  7. layout (location = 5) in vec4 instance_color;
  8. layout (location = 6) in vec3 instance_scale;
  9. uniform float screenWidth = 700.f;
  10. uniform mat4 ModelViewMatrix;
  11. uniform mat4 ProjectionMatrix;
  12. out Fragment
  13. {
  14. vec4 color;
  15. } fragment;
  16. //
  17. // vector rotation via quaternion
  18. //
  19. out vec3 ambient;
  20. void main(void)
  21. {
  22. ambient = vec3(0.3,.3,0.3);
  23. vec4 axis = vec4(1,1,1,0);
  24. vec4 vertexPos = ProjectionMatrix * ModelViewMatrix *(instance_position);
  25. vec3 posEye = vec3(ModelViewMatrix * vec4(instance_position.xyz, 1.0));
  26. float dist = length(posEye);
  27. float pointRadius = 1.f;
  28. gl_PointSize = instance_scale.x * pointRadius * (screenWidth / dist);
  29. gl_Position = vertexPos;
  30. fragment.color = instance_color;
  31. }