gpuUpdateParticles.vertex.fx 620 B

12345678910111213141516171819202122232425262728293031323334
  1. #version 300 es
  2. uniform float timeDelta;
  3. // Particles state
  4. in vec3 position;
  5. in float age;
  6. in float life;
  7. in vec3 velocity;
  8. // Output
  9. out vec3 outPosition;
  10. out float outAge;
  11. out float outLife;
  12. out vec3 outVelocity;
  13. void main() {
  14. if (age >= life) {
  15. // Create the particle at origin
  16. outPosition = vec3(0, 0, 0);
  17. // Age and life
  18. outAge = 0.0;
  19. outLife = life;
  20. // Initial velocity
  21. outVelocity = vec3(0, 1, 0);
  22. } else {
  23. outPosition = position + velocity * timeDelta;
  24. outAge = age + timeDelta;
  25. outLife = life;
  26. outVelocity = velocity;
  27. }
  28. }