builtin-particle-xr-trail.effect 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. CCEffect %{
  2. temporaries:
  3. b1: &b1
  4. targets:
  5. - blend: true
  6. blendSrc: src_alpha
  7. blendDst: one_minus_src_alpha
  8. blendSrcAlpha: src_alpha
  9. blendDstAlpha: one_minus_src_alpha
  10. d1: &d1 { depthTest: true, depthWrite: false }
  11. r1: &r1 { cullMode: none }
  12. p1: &p1
  13. mainTexture: { value: white }
  14. mainTiling_Offset: { value: [1, 1, 0, 0] }
  15. frameTile_velLenScale: { value: [1, 1, 0, 0] }
  16. p2: &p2
  17. <<: *p1
  18. tintColor: { value: [0.5, 0.5, 0.5, 0.5], editor: { type: color } }
  19. techniques:
  20. - name: add
  21. passes:
  22. - vert: builtin/internal/particle-trail:vs_main
  23. frag: tinted-fs:add
  24. rasterizerState: *r1
  25. depthStencilState: *d1
  26. blendState: *b1
  27. properties: *p2
  28. - vert: builtin/internal/particle-trail:vs_main
  29. frag: tinted-fs:add
  30. phase: deferred-forward
  31. rasterizerState: *r1
  32. depthStencilState: *d1
  33. blendState: *b1
  34. propertyIndex: 0
  35. }%
  36. // TODO: soft particle
  37. CCProgram tinted-fs %{
  38. precision mediump float;
  39. #include <legacy/output>
  40. #include <builtin/internal/embedded-alpha>
  41. in vec2 uv;
  42. in vec4 color;
  43. #if CC_DRAW_WIRE_FRAME
  44. in vec3 vBarycentric;
  45. #endif
  46. uniform sampler2D mainTexture;
  47. uniform FragConstants {
  48. vec4 tintColor;
  49. };
  50. vec4 add () {
  51. vec4 col = 2.0 * color * tintColor * CCSampleWithAlphaSeparated(mainTexture, uv);
  52. #if CC_DRAW_WIRE_FRAME
  53. if (any(lessThan(vBarycentric, vec3(0.02)))) {
  54. col = vec4(0., 1., 1., 1.);
  55. }
  56. #endif
  57. return CCFragOutput(col);
  58. }
  59. }%