__builtin-editor-gizmo-line.effect 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright (c) 2017-2019 Xiamen Yaji Software Co., Ltd.
  2. // 用于BoundingBox的线的渲染,被物体挡住的包围盒的线会带透明度,没被物体挡住的线是实体的。
  3. %{
  4. "techniques": [
  5. {
  6. "stages": [
  7. "transparent"
  8. ],
  9. "passes": [
  10. {
  11. "vert": "line-vs",
  12. "frag": "line-fs:front",
  13. "cullMode": "none",
  14. "depthTest": true,
  15. "blend": true,
  16. "blendEq": "add",
  17. "blendSrc": "srcAlpha",
  18. "blendDst": "one",
  19. },
  20. {
  21. "vert": "line-vs",
  22. "frag": "line-fs:back",
  23. "cullMode": "none",
  24. "depthTest": true,
  25. "depthFunc": "greater",
  26. "blend": true,
  27. "blendEq": "add",
  28. "blendSrc": "srcAlpha",
  29. "blendDst": "one",
  30. }
  31. ]
  32. }
  33. ],
  34. "properties": {
  35. "diffuseColor": {
  36. "type": "color4",
  37. "value": [1, 1, 1, 1]
  38. }
  39. }
  40. %}
  41. %% line-vs {
  42. precision highp float;
  43. #include <cc-global>
  44. #include <cc-local>
  45. #include <common-attribute>
  46. void main () {
  47. gl_Position = cc_matViewProj * cc_matWorld * vec4(a_position, 1);
  48. gl_Position.z -= 0.0001;
  49. }
  50. }
  51. %% line-fs {
  52. precision highp float;
  53. #include <encodings>
  54. uniform vec4 diffuseColor;
  55. vec4 front() {
  56. return LINEAR_TO_OUTPUT_TEXEL(diffuseColor);
  57. }
  58. vec4 back() {
  59. return LINEAR_TO_OUTPUT_TEXEL(vec4(diffuseColor.rgb, diffuseColor.a * 0.2));
  60. }
  61. }