terrain-select-brush.effect 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. // Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd.
  2. CCEffect %{
  3. hideInEditor: true
  4. techniques:
  5. - name: transparent
  6. passes:
  7. - vert: terrain-brush-vs:vert
  8. frag: terrain-brush-fs:frag
  9. depthStencilState:
  10. depthTest: true
  11. depthWrite: false
  12. blendState:
  13. targets:
  14. - blend: true
  15. blendSrc: src_alpha
  16. blendDst: one_minus_src_alpha
  17. blendDstAlpha: one_minus_src_alpha
  18. properties:
  19. BrushDepthOffset: { value: 0.05 }
  20. }%
  21. CCProgram terrain-brush-vs %{
  22. precision mediump float;
  23. #include <builtin/uniforms/cc-global>
  24. #include <builtin/uniforms/cc-local>
  25. in vec3 a_position;
  26. uniform Constant {
  27. float BrushDepthOffset;
  28. };
  29. vec4 vert () {
  30. vec3 worldPos;
  31. worldPos.x = cc_matWorld[3][0] + a_position.x;
  32. worldPos.y = cc_matWorld[3][1] + a_position.y;
  33. worldPos.z = cc_matWorld[3][2] + a_position.z;
  34. worldPos.y += BrushDepthOffset; // depth increment for terrain brushes
  35. vec4 pos = vec4(worldPos, 1);
  36. pos = cc_matViewProj * pos;
  37. return pos;
  38. }
  39. }%
  40. CCProgram terrain-brush-fs %{
  41. precision mediump float;
  42. #include <legacy/output>
  43. vec4 frag () {
  44. vec4 color = vec4(0.0, 0.0, 0.0, 0.0);
  45. color.rgb = vec3(100, 100, 135) / 255.0;
  46. color.a = 0.5;
  47. return CCFragOutput(color);
  48. }
  49. }%