particle-trail.chunk 864 B

123456789101112131415161718192021222324252627282930313233
  1. precision mediump float;
  2. #include <builtin/internal/particle-common>
  3. in vec3 a_position; // center position
  4. in vec4 a_texCoord; // x:index y:size zw:texcoord
  5. in vec3 a_texCoord1; // xyz:velocity
  6. in vec3 a_texCoord2;
  7. in vec4 a_color;
  8. #if CC_DRAW_WIRE_FRAME
  9. out vec3 vBarycentric;
  10. #endif
  11. vec4 vs_main() {
  12. highp vec4 pos = vec4(a_position, 1);
  13. vec4 velocity = vec4(a_texCoord1.xyz, 0);
  14. #if !CC_USE_WORLD_SPACE
  15. pos = cc_matWorld * pos;
  16. velocity = cc_matWorld * velocity;
  17. #endif
  18. float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;
  19. vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));
  20. pos.xyz += camUp * vertOffset;
  21. pos = cc_matViewProj * pos;
  22. uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;
  23. color = a_color;
  24. #if CC_DRAW_WIRE_FRAME
  25. vBarycentric = a_texCoord2;
  26. #endif
  27. return pos;
  28. }