{
    "Name": "projectiveMeshShadowCaster",
    "OverrideMaterial": "engine:engineDefaults.rematerialdefinition",
    "Parameters": {
        "Constants": {
            "receiverDecayRateForCaster" : "1",
            "boundsDecayRateForCaster" : "1",
            "belowReceiverDecayRateForCaster" : "10",
            "receiverDepthNormalization" : "1",
            "casterBias" : "0",
            "receiverPlane": "[NAN, NAN, NAN, NAN]",
            "floorPlane": "[NAN, NAN, NAN, NAN]",
            "tileIndex": "-1"
        },
        "Textures": {
            "textureTiledDepthPrepass": "fallback.white",
            "textureMippedDepthPrepass": "fallback.white"
        }
    },
    "Techniques": [
        {
            "Name": "meshShadowCaster",
            "VertexShader": {
                "Entry": "vsMeshShadowCaster"
            },
            "PixelShader": {
                "Entry": "fsMeshShadowCaster"
            },
            "State" : {
                "AlphaBlend" : true,
                "WriteDepth" : false,
                "DepthCompareFunction"      : "Always",
                "AlphaBlendOperation"       : "Max",
                "AlphaSourceFactor"         : "One",
                "AlphaDestinationFactor"    : "One",
                "RgbBlendOperation"         : "Max",
                "RgbSourceFactor"           : "One",
                "RgbDestinationFactor"      : "One"
            },
            "FunctionConstants" : {
                "EnableClipping" : "true"
            }
        },
        {
            "Name": "meshShadowCasterProgrammableBlending",
            "VertexShader": {
                "Entry": "vsMeshShadowCaster"
            },
            "PixelShader": {
                "Entry": "fsMeshShadowCasterProgrammableBlending"
            },
            "State" : {
                "AlphaBlend" : true,
                "WriteDepth" : false,
                "DepthCompareFunction"      : "Always",
                "AlphaBlendOperation"       : "Max",
                "AlphaSourceFactor"         : "One",
                "AlphaDestinationFactor"    : "One",
                "RgbBlendOperation"         : "Max",
                "RgbSourceFactor"           : "One",
                "RgbDestinationFactor"      : "One"
            },
            "FunctionConstants" : {
                "EnableClipping" : "true"
            },
            "DefaultVariations" : [ "ShadowCommon" ],
            "SupportsRuntimeFunctionConstants" : true
        }
    ],
    "TechniqueMapping": {
        "projectiveMeshShadowTechnique": "meshShadowCaster",
        "projectiveMeshShadowTechniqueProgrammableBlending": "meshShadowCasterProgrammableBlending"
    }
}
