{
    "Name": "UnlitAlphaCutoutPbr",
    "OverrideMaterial": "engine:pbrCommon.rematerialdefinition",
    "Techniques": [
        {
            "Name": "AlphaCutoutUnlitOpaque",
            "VertexShader": {
                "Entry": "vsRealityPbr"
            },
            "PixelShader": {
                "Entry": "fsRealityPbr"
            },
            "State" : {
                "AlphaBlend" : false,
                "WriteDepth" : true,
                "DepthCompareFunction" : "GreaterEqual"
            },
            "FunctionConstants" : {
                "EnableIBL"                 : "false",
                "EnableDynamicLighting"     : "false",
                "EnableAREnvProbe"          : "false",
                "EnableLightmap"            : "false",
                "EnableBaseColorMap"        : "false",
                "EnableNormalMap"           : "false",
                "EnableEmissiveMap"         : "true",
                "EnableAreaLight"           : "false",
                "EnableRoughnessMap"        : "false",
                "EnableMetallicMap"         : "false",
                "EnableAOMap"               : "false",
                "EnableSpecularMap"         : "false",
                "EnableTransparency"        : "true",
                "EnableOpacityMap"          : "true",
                "EnableOpacityThreshold"    : "true"
            },
            "DefaultVariations" : [ "UnlitCommon" ],
            "DebugMapping": "PbrDebug"
        },
        {
            "Name": "AlphaCutoutShadow",
            "VertexShader": {
                "Entry": "vsShadow"
            },
            "PixelShader": {
                "Entry": "fsShadow"
            },
            "State" : {
                "ColorWriteMask" : "None"
            },
            "FunctionConstants" : {
                "EnableAlphaCutoutShadows" : "true",
                "EnableOpacityMap" : "true"
            },
            "DefaultVariations" : [ "ShadowCommon" ],
            "SupportsRuntimeFunctionConstants" : true
        },
        {
            "Name": "AlphaCutoutUnlitFade",
            "InheritFromTechnique": "AlphaCutoutUnlitOpaque",
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending" : true,
                "AlphaBlend"             : true,
                "AlphaBlendOperation"    : "Add",
                "AlphaSourceFactor"      : "One",
                "AlphaDestinationFactor" : "OneMinusSourceAlpha",
                "RgbBlendOperation"      : "Add",
                "RgbSourceFactor"        : "One",
                "RgbDestinationFactor"   : "OneMinusSourceAlpha",
                "DepthCompareFunction"   : "GreaterEqual",
                "WriteDepth"             : true
            }
        },
        {
            "Name": "AlphaCutoutUnlitFadeAfterPrepass",
            "InheritFromTechnique": "AlphaCutoutUnlitOpaque",
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending" : true,
                "AlphaBlend"             : true,
                "AlphaBlendOperation"    : "Add",
                "AlphaSourceFactor"      : "One",
                "AlphaDestinationFactor" : "OneMinusSourceAlpha",
                "RgbBlendOperation"      : "Add",
                "RgbSourceFactor"        : "One",
                "RgbDestinationFactor"   : "OneMinusSourceAlpha",
                "DepthCompareFunction"   : "Equal",
                "WriteDepth"             : false
            },
            "FunctionConstants" : {
                "EnableTransparency"     : "false",
                "EnableOpacityMap"       : "false",
                "EnableOpacityThreshold" : "false"
            }
        },
        {
            "Name": "AlphaCutoutUnlitDepthOnly",
            "InheritFromTechnique": "AlphaCutoutUnlitOpaque",
            "InheritState": false,
            "State" : {
                "ColorWriteMask" : "None",
                "WriteDepth": true,
                "DepthCompareFunction": "Greater"
            },
            "FunctionConstants" : {
                "DisableSystemTreatmentOpacity" : "true"
            }
        },
        {
            "Name": "AlphaCutoutUnlitFade_BackCompat",
            "InheritFromTechnique": "AlphaCutoutUnlitFade",
            "InheritState": true,
            "Tags" : {
                "Transparent_BackCompat" : "True"
            }
        }
    ],
    "TechniqueMapping": {
        "Opaque": "AlphaCutoutUnlitOpaque",
        "OpaqueOverdraw": "OpaqueOverdraw",
        "Shadow": "Shadow"
    },
    "TechniqueMappingOverrides": {
        "Fade": {
            "FadeDepthPrepass": "AlphaCutoutUnlitDepthOnly",
            "FadeOpaqueAfterPrepass": "AlphaCutoutUnlitFadeAfterPrepass",
            "FadeOpaqueNoPrepass": "AlphaCutoutUnlitFade",
            "Transparent": "AlphaCutoutUnlitFade_BackCompat"
        }
    }
}
