[
    {
        "fragment_shader": "shaders/camodeferred.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            },
            {
                "name": "uOpacityDiffuseDimming",
                "size": 1
            },
            {
                "name": "uOpacityChromaticAberration",
                "size": 1
            },
            {
                "name": "uOpacityMinimum",
                "size": 1
            }
        ],
        "name": "camodeferred",
        "required": true,
        "varyings": 11,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            },
            {
                "name": "aMaterial",
                "size": 1
            },
            {
                "name": "aOpacity",
                "size": 1
            },
            {
                "name": "aOpacitySweep",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/camodeferred.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/camodeferredlow.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            },
            {
                "name": "uOpacityDiffuseDimming",
                "size": 1
            },
            {
                "name": "uOpacityChromaticAberration",
                "size": 1
            },
            {
                "name": "uOpacityMinimum",
                "size": 1
            }
        ],
        "name": "camodeferredlow",
        "required": true,
        "varyings": 11,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            },
            {
                "name": "aMaterial",
                "size": 1
            },
            {
                "name": "aOpacity",
                "size": 1
            },
            {
                "name": "aOpacitySweep",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/camodeferredlow.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/colored.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uBlend",
                "size": 2
            },
            {
                "name": "uIsFont",
                "size": 1
            }
        ],
        "name": "colored",
        "required": true,
        "varyings": 9,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            },
            {
                "name": "aColor",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/colored.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/default.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            }
        ],
        "fragment_uniforms": [],
        "name": "default",
        "required": true,
        "varyings": 2,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/default.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/deferred.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            }
        ],
        "name": "deferred",
        "required": true,
        "varyings": 9,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            },
            {
                "name": "aMaterial",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/deferred.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/deferredlow.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            }
        ],
        "name": "deferredlow",
        "required": true,
        "varyings": 9,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            },
            {
                "name": "aMaterial",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/deferredlow.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/ground.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uFresnel",
                "size": 1
            },
            {
                "name": "uRoughness",
                "size": 1
            },
            {
                "name": "uPixelsPerDepth",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            },
            {
                "name": "uPerturbation",
                "size": 1
            }
        ],
        "name": "ground",
        "required": true,
        "varyings": 2,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/ground.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/lightdirectional.frag",
        "fragment_textures": [
            {
                "name": "uDiffuse",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            },
            {
                "name": "uNormals",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uAmbient",
                "size": 4
            },
            {
                "name": "uLightColor",
                "size": 4
            },
            {
                "name": "uLightDirection",
                "size": 3
            },
            {
                "name": "uHalfVector",
                "size": 3
            },
            {
                "name": "uDiffuseAmount",
                "size": 1
            },
            {
                "name": "uLightIntensity",
                "size": 1
            }
        ],
        "name": "lightdirectional",
        "required": true,
        "varyings": 2,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/lightdirectional.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/lightdirectionalshadow.frag",
        "fragment_textures": [
            {
                "name": "uDiffuse",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            },
            {
                "name": "uNormals",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uAmbient",
                "size": 4
            },
            {
                "name": "uLightColor",
                "size": 4
            },
            {
                "name": "uLightDirection",
                "size": 3
            },
            {
                "name": "uHalfVector",
                "size": 3
            },
            {
                "name": "uDiffuseAmount",
                "size": 1
            },
            {
                "name": "uLightIntensity",
                "size": 1
            },
            {
                "name": "uProjectionScale",
                "size": 3
            }
        ],
        "name": "lightdirectionalshadow",
        "required": false,
        "varyings": 2,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/lightdirectionalshadow.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/lightpoint.frag",
        "fragment_textures": [
            {
                "name": "uDiffuse",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            },
            {
                "name": "uNormals",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uProjectionBias",
                "size": 1
            },
            {
                "name": "uProjectionScale",
                "size": 3
            },
            {
                "name": "uDiffuseAmount",
                "size": 1
            },
            {
                "name": "uLightIntensity",
                "size": 1
            },
            {
                "name": "uVolumetricIntensity",
                "size": 1
            },
            {
                "name": "uVolumetricColor",
                "size": 4
            }
        ],
        "name": "lightpoint",
        "required": true,
        "varyings": 19,
        "vertex_attributes": [
            {
                "name": "aLightPosition",
                "size": 1
            },
            {
                "name": "aLightRadius",
                "size": 1
            },
            {
                "name": "aLightColor",
                "size": 1
            },
            {
                "name": "aLightDirection",
                "size": 1
            },
            {
                "name": "aLightWidth",
                "size": 1
            },
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aRadialFalloff",
                "size": 1
            },
            {
                "name": "aConicalFalloff",
                "size": 1
            },
            {
                "name": "aVolumetricIntensity",
                "size": 1
            },
            {
                "name": "aVolumetricRadialFalloff",
                "size": 1
            },
            {
                "name": "aVolumetricConicalFalloff",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/lightpoint.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/lightpointshadow.frag",
        "fragment_textures": [
            {
                "name": "uDiffuse",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            },
            {
                "name": "uNormals",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uProjectionBias",
                "size": 1
            },
            {
                "name": "uProjectionScale",
                "size": 3
            },
            {
                "name": "uDiffuseAmount",
                "size": 1
            },
            {
                "name": "uLightIntensity",
                "size": 1
            },
            {
                "name": "uVolumetricIntensity",
                "size": 1
            },
            {
                "name": "uVolumetricColor",
                "size": 4
            }
        ],
        "name": "lightpointshadow",
        "required": false,
        "varyings": 19,
        "vertex_attributes": [
            {
                "name": "aLightPosition",
                "size": 1
            },
            {
                "name": "aLightRadius",
                "size": 1
            },
            {
                "name": "aLightColor",
                "size": 1
            },
            {
                "name": "aLightDirection",
                "size": 1
            },
            {
                "name": "aLightWidth",
                "size": 1
            },
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aRadialFalloff",
                "size": 1
            },
            {
                "name": "aConicalFalloff",
                "size": 1
            },
            {
                "name": "aVolumetricIntensity",
                "size": 1
            },
            {
                "name": "aVolumetricRadialFalloff",
                "size": 1
            },
            {
                "name": "aVolumetricConicalFalloff",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/lightpointshadow.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/occluded.frag",
        "fragment_textures": [
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uTapDelta",
                "size": 2
            }
        ],
        "name": "occluded",
        "required": true,
        "varyings": 9,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aOccludedPriority",
                "size": 1
            },
            {
                "name": "aOccludedColor",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/occluded.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/shieldwisps.frag",
        "fragment_textures": [
            {
                "name": "uDepth",
                "size": 1
            },
            {
                "name": "uMaterial",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uProjectionScale",
                "size": 3
            },
            {
                "name": "uProjectionBias",
                "size": 1
            },
            {
                "name": "uBlend",
                "size": 2
            },
            {
                "name": "uColor0",
                "size": 4
            },
            {
                "name": "uColor1",
                "size": 4
            },
            {
                "name": "uColor2",
                "size": 4
            }
        ],
        "name": "shieldwisps",
        "required": true,
        "varyings": 30,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aPosition",
                "size": 1
            },
            {
                "name": "aEllipsoid",
                "size": 1
            },
            {
                "name": "aOrientation",
                "size": 1
            },
            {
                "name": "aColor",
                "size": 1
            },
            {
                "name": "aOpacity",
                "size": 1
            },
            {
                "name": "aProgress",
                "size": 1
            },
            {
                "name": "aPriority",
                "size": 1
            },
            {
                "name": "aHits",
                "size": 4
            }
        ],
        "vertex_shader": "shaders/shieldwisps.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/transfer.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uOffset",
                "size": 2
            },
            {
                "name": "uPlayerPosition",
                "size": 2
            },
            {
                "name": "uBorderColor",
                "size": 4
            },
            {
                "name": "uBorderPenumbra",
                "size": 1
            },
            {
                "name": "uBorderUmbra",
                "size": 1
            }
        ],
        "name": "transfer",
        "required": true,
        "varyings": 2,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/transfer.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    },
    {
        "fragment_shader": "shaders/zdepth.frag",
        "fragment_textures": [
            {
                "name": "uTexture",
                "size": 1
            },
            {
                "name": "uDepth",
                "size": 1
            }
        ],
        "fragment_uniforms": [
            {
                "name": "uDepthConversion",
                "size": 1
            },
            {
                "name": "uBlend",
                "size": 2
            }
        ],
        "name": "zdepth",
        "required": true,
        "varyings": 5,
        "vertex_attributes": [
            {
                "name": "aVertex",
                "size": 1
            },
            {
                "name": "aTextureCoord",
                "size": 1
            },
            {
                "name": "aColorShift",
                "size": 1
            }
        ],
        "vertex_shader": "shaders/zdepth.vert",
        "vertex_textures": [],
        "vertex_uniforms": []
    }
]