{
  "__type__": "cc.EffectAsset",
  "_name": "__builtin-editor-gizmo-line",
  "_objFlags": 0,
  "_native": "",
  "properties": {
    "diffuseColor": {
      "type": 9,
      "value": [
        1,
        1,
        1,
        1
      ]
    }
  },
  "techniques": [
    {
      "stages": [
        "transparent"
      ],
      "passes": [
        {
          "cullMode": 0,
          "depthTest": true,
          "blend": true,
          "blendEq": 32774,
          "blendSrc": 770,
          "blendDst": 1,
          "program": "d01ce93c1571ba818f9dee0152bbafa7f60fa54a8cfea3c0f9557188"
        },
        {
          "cullMode": 0,
          "depthTest": true,
          "depthFunc": 516,
          "blend": true,
          "blendEq": 32774,
          "blendSrc": 770,
          "blendDst": 1,
          "program": "ffe1ef43999da460c64b13f374a07f58e34ad3c2e97c7dec55bd13c6"
        }
      ],
      "queue": 0,
      "priority": 0
    }
  ],
  "shaders": [
    {
      "vert": "\n#define _IS_VERT_SHADER 1\n\n  precision highp float;\n\n  \n\nuniform mat4 cc_matView;\n\nuniform mat4 cc_matViewProj;\n\nuniform vec3 cc_cameraPos;                       \n\nuniform vec3 cc_sceneAmbient;                    \n\n  \n\nuniform mat4 cc_matWorld;\nuniform mat3 cc_matWorldIT;\n\n  \n\n#ifndef USE_DIFFUSE_TEXTURE\n  #ifndef USE_EMISSIVE_TEXTURE\n    #ifndef USE_SPECULAR_TEXTURE\n      #ifndef USE_NORMAL_TEXTURE\n        #define _NOT_USE_TEXTURE 1\n      #endif\n    #endif\n  #endif\n#endif\n\n#if USE_TILING_OFFSET && _USE_ATTRIBUTE_UV0\n  uniform vec2 mainTiling;\n  uniform vec2 mainOffset;\n#endif\n\n#ifdef _IS_VERT_SHADER\n  attribute vec3 a_position;\n#endif\n\n#ifndef _NOT_USE_TEXTURE\n\n  #if _USE_ATTRIBUTE_UV0\n    #ifdef _IS_VERT_SHADER\n      attribute mediump vec2 a_uv0;\n    #endif\n\n    varying mediump vec2 v_uv0;\n  #endif\n\n#endif\n\n#if _USE_ATTRIBUTE_COLOR\n\n  #ifdef _IS_VERT_SHADER\n    attribute lowp vec4 a_color;\n  #endif\n\n  varying lowp vec4 v_color;\n#endif\n\n#if _USE_ATTRIBUTE_NORMAL\n  #ifdef _IS_VERT_SHADER\n    attribute vec3 a_normal;\n  #endif\n#endif\n\n#ifdef _IS_VERT_SHADER\n\n  void ATTRIBUTE_TO_VARYING () {\n\n    #if _USE_ATTRIBUTE_COLOR\n        v_color = a_color;\n    #endif\n\n    #ifndef _NOT_USE_TEXTURE\n      #if _USE_ATTRIBUTE_UV0\n        v_uv0 = a_uv0;\n\n        #if USE_TILING_OFFSET\n          v_uv0 = v_uv0 * mainTiling + mainOffset;\n        #endif\n      #endif\n    #endif\n\n  }\n\n#endif\n\nvoid MUL_ATTR_COLOR (inout vec4 color) {\n  #if _USE_ATTRIBUTE_COLOR\n    #ifdef _IS_VERT_SHADER\n      color *= a_color;\n    #else\n      color *= v_color;\n    #endif\n  #endif\n}\n\nvoid MUL_ATTR_NORMAL (inout vec3 normal) {\n  #if _USE_ATTRIBUTE_NORMAL\n    #ifdef _IS_VERT_SHADER\n      normal *= a_normal;\n    #endif\n  #endif\n}\nvoid MUL_ATTR_NORMAL (inout vec4 normal) {\n  #if _USE_ATTRIBUTE_NORMAL\n    #ifdef _IS_VERT_SHADER\n      normal.xyz *= a_normal;\n    #endif\n  #endif\n}\n\n  void main () {\n    gl_Position = cc_matViewProj * cc_matWorld * vec4(a_position, 1);\n    gl_Position.z -= 0.0001;\n  }\n\n\n",
      "frag": "\n#define _IS_FRAG_SHADER 1\n\n  precision highp float;\n  \n  \n\nvec3 gammaToLinearSpaceRGB(in vec3 sRGB) { \n  return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n}\n\nvec3 linearToGammaSpaceRGB(in vec3 RGB) { \n  vec3 S1 = sqrt(RGB);\n  vec3 S2 = sqrt(S1);\n  vec3 S3 = sqrt(S2);\n  return 0.585122381 * S1 + 0.783140355 * S2 - 0.368262736 * S3;\n}\n\nvec4 gammaToLinearSpaceRGBA(in vec4 sRGBA) {\n  return vec4(gammaToLinearSpaceRGB(sRGBA.rgb), sRGBA.a);\n}\n\nvec4 linearToGammaSpaceRGBA(in vec4 RGBA) {\n  return vec4(linearToGammaSpaceRGB(RGBA.rgb), RGBA.a);\n}\n\nvec4 linearToLinear (in vec4 value) {\n  return value;\n}\n\n#if INPUT_IS_GAMMA\n  #define TEXEL_TO_LINEAR gammaToLinearSpaceRGBA\n#else\n  #define TEXEL_TO_LINEAR linearToLinear\n#endif\n\n#if OUTPUT_TO_GAMMA\n  #define LINEAR_TO_OUTPUT_TEXEL linearToGammaSpaceRGBA\n#else\n  #define LINEAR_TO_OUTPUT_TEXEL linearToLinear\n#endif\n\n  uniform vec4 diffuseColor;\n  vec4 front() {\n    return LINEAR_TO_OUTPUT_TEXEL(diffuseColor);\n  }\n  vec4 back() {\n    return LINEAR_TO_OUTPUT_TEXEL(vec4(diffuseColor.rgb, diffuseColor.a * 0.2));\n  }\n\nvoid main() { gl_FragColor = front(); }\n\n\n",
      "defines": [
        {
          "name": "USE_DIFFUSE_TEXTURE",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "USE_EMISSIVE_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE"
          ]
        },
        {
          "name": "USE_SPECULAR_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE",
            "USE_EMISSIVE_TEXTURE"
          ]
        },
        {
          "name": "USE_NORMAL_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE",
            "USE_EMISSIVE_TEXTURE",
            "USE_SPECULAR_TEXTURE"
          ]
        },
        {
          "name": "USE_TILING_OFFSET",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_UV0",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_COLOR",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_NORMAL",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "INPUT_IS_GAMMA",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "OUTPUT_TO_GAMMA",
          "type": "boolean",
          "defines": []
        }
      ],
      "uniforms": [
        {
          "name": "mainTiling",
          "type": 5,
          "property": true,
          "defines": [
            "USE_TILING_OFFSET",
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "mainOffset",
          "type": 5,
          "property": true,
          "defines": [
            "USE_TILING_OFFSET",
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "diffuseColor",
          "type": 7,
          "defines": []
        }
      ],
      "attributes": [
        {
          "name": "a_position",
          "type": 6,
          "defines": []
        },
        {
          "name": "a_uv0",
          "type": 5,
          "defines": [
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "a_color",
          "type": 7,
          "defines": [
            "_USE_ATTRIBUTE_COLOR"
          ]
        },
        {
          "name": "a_normal",
          "type": 6,
          "defines": [
            "_USE_ATTRIBUTE_NORMAL"
          ]
        }
      ],
      "extensions": [],
      "name": "d01ce93c1571ba818f9dee0152bbafa7f60fa54a8cfea3c0f9557188"
    },
    {
      "vert": "\n#define _IS_VERT_SHADER 1\n\n  precision highp float;\n\n  \n\nuniform mat4 cc_matView;\n\nuniform mat4 cc_matViewProj;\n\nuniform vec3 cc_cameraPos;                       \n\nuniform vec3 cc_sceneAmbient;                    \n\n  \n\nuniform mat4 cc_matWorld;\nuniform mat3 cc_matWorldIT;\n\n  \n\n#ifndef USE_DIFFUSE_TEXTURE\n  #ifndef USE_EMISSIVE_TEXTURE\n    #ifndef USE_SPECULAR_TEXTURE\n      #ifndef USE_NORMAL_TEXTURE\n        #define _NOT_USE_TEXTURE 1\n      #endif\n    #endif\n  #endif\n#endif\n\n#if USE_TILING_OFFSET && _USE_ATTRIBUTE_UV0\n  uniform vec2 mainTiling;\n  uniform vec2 mainOffset;\n#endif\n\n#ifdef _IS_VERT_SHADER\n  attribute vec3 a_position;\n#endif\n\n#ifndef _NOT_USE_TEXTURE\n\n  #if _USE_ATTRIBUTE_UV0\n    #ifdef _IS_VERT_SHADER\n      attribute mediump vec2 a_uv0;\n    #endif\n\n    varying mediump vec2 v_uv0;\n  #endif\n\n#endif\n\n#if _USE_ATTRIBUTE_COLOR\n\n  #ifdef _IS_VERT_SHADER\n    attribute lowp vec4 a_color;\n  #endif\n\n  varying lowp vec4 v_color;\n#endif\n\n#if _USE_ATTRIBUTE_NORMAL\n  #ifdef _IS_VERT_SHADER\n    attribute vec3 a_normal;\n  #endif\n#endif\n\n#ifdef _IS_VERT_SHADER\n\n  void ATTRIBUTE_TO_VARYING () {\n\n    #if _USE_ATTRIBUTE_COLOR\n        v_color = a_color;\n    #endif\n\n    #ifndef _NOT_USE_TEXTURE\n      #if _USE_ATTRIBUTE_UV0\n        v_uv0 = a_uv0;\n\n        #if USE_TILING_OFFSET\n          v_uv0 = v_uv0 * mainTiling + mainOffset;\n        #endif\n      #endif\n    #endif\n\n  }\n\n#endif\n\nvoid MUL_ATTR_COLOR (inout vec4 color) {\n  #if _USE_ATTRIBUTE_COLOR\n    #ifdef _IS_VERT_SHADER\n      color *= a_color;\n    #else\n      color *= v_color;\n    #endif\n  #endif\n}\n\nvoid MUL_ATTR_NORMAL (inout vec3 normal) {\n  #if _USE_ATTRIBUTE_NORMAL\n    #ifdef _IS_VERT_SHADER\n      normal *= a_normal;\n    #endif\n  #endif\n}\nvoid MUL_ATTR_NORMAL (inout vec4 normal) {\n  #if _USE_ATTRIBUTE_NORMAL\n    #ifdef _IS_VERT_SHADER\n      normal.xyz *= a_normal;\n    #endif\n  #endif\n}\n\n  void main () {\n    gl_Position = cc_matViewProj * cc_matWorld * vec4(a_position, 1);\n    gl_Position.z -= 0.0001;\n  }\n\n\n",
      "frag": "\n#define _IS_FRAG_SHADER 1\n\n  precision highp float;\n  \n  \n\nvec3 gammaToLinearSpaceRGB(in vec3 sRGB) { \n  return sRGB * (sRGB * (sRGB * 0.305306011 + 0.682171111) + 0.012522878);\n}\n\nvec3 linearToGammaSpaceRGB(in vec3 RGB) { \n  vec3 S1 = sqrt(RGB);\n  vec3 S2 = sqrt(S1);\n  vec3 S3 = sqrt(S2);\n  return 0.585122381 * S1 + 0.783140355 * S2 - 0.368262736 * S3;\n}\n\nvec4 gammaToLinearSpaceRGBA(in vec4 sRGBA) {\n  return vec4(gammaToLinearSpaceRGB(sRGBA.rgb), sRGBA.a);\n}\n\nvec4 linearToGammaSpaceRGBA(in vec4 RGBA) {\n  return vec4(linearToGammaSpaceRGB(RGBA.rgb), RGBA.a);\n}\n\nvec4 linearToLinear (in vec4 value) {\n  return value;\n}\n\n#if INPUT_IS_GAMMA\n  #define TEXEL_TO_LINEAR gammaToLinearSpaceRGBA\n#else\n  #define TEXEL_TO_LINEAR linearToLinear\n#endif\n\n#if OUTPUT_TO_GAMMA\n  #define LINEAR_TO_OUTPUT_TEXEL linearToGammaSpaceRGBA\n#else\n  #define LINEAR_TO_OUTPUT_TEXEL linearToLinear\n#endif\n\n  uniform vec4 diffuseColor;\n  vec4 front() {\n    return LINEAR_TO_OUTPUT_TEXEL(diffuseColor);\n  }\n  vec4 back() {\n    return LINEAR_TO_OUTPUT_TEXEL(vec4(diffuseColor.rgb, diffuseColor.a * 0.2));\n  }\n\nvoid main() { gl_FragColor = back(); }\n\n\n",
      "defines": [
        {
          "name": "USE_DIFFUSE_TEXTURE",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "USE_EMISSIVE_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE"
          ]
        },
        {
          "name": "USE_SPECULAR_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE",
            "USE_EMISSIVE_TEXTURE"
          ]
        },
        {
          "name": "USE_NORMAL_TEXTURE",
          "type": "boolean",
          "defines": [
            "USE_DIFFUSE_TEXTURE",
            "USE_EMISSIVE_TEXTURE",
            "USE_SPECULAR_TEXTURE"
          ]
        },
        {
          "name": "USE_TILING_OFFSET",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_UV0",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_COLOR",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "_USE_ATTRIBUTE_NORMAL",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "INPUT_IS_GAMMA",
          "type": "boolean",
          "defines": []
        },
        {
          "name": "OUTPUT_TO_GAMMA",
          "type": "boolean",
          "defines": []
        }
      ],
      "uniforms": [
        {
          "name": "mainTiling",
          "type": 5,
          "property": true,
          "defines": [
            "USE_TILING_OFFSET",
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "mainOffset",
          "type": 5,
          "property": true,
          "defines": [
            "USE_TILING_OFFSET",
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "diffuseColor",
          "type": 7,
          "defines": []
        }
      ],
      "attributes": [
        {
          "name": "a_position",
          "type": 6,
          "defines": []
        },
        {
          "name": "a_uv0",
          "type": 5,
          "defines": [
            "_USE_ATTRIBUTE_UV0"
          ]
        },
        {
          "name": "a_color",
          "type": 7,
          "defines": [
            "_USE_ATTRIBUTE_COLOR"
          ]
        },
        {
          "name": "a_normal",
          "type": 6,
          "defines": [
            "_USE_ATTRIBUTE_NORMAL"
          ]
        }
      ],
      "extensions": [],
      "name": "ffe1ef43999da460c64b13f374a07f58e34ad3c2e97c7dec55bd13c6"
    }
  ]
}