{
    "Name": "MXIMaterialDefinitionBase",
    "OverrideMaterial": "engine:engineDefaults.rematerialdefinition",
    "Parameters": {
        "Textures": {
            "textureBreakthroughDepth": "rendergraph.textureBreakthroughDepth",
            "textureBreakthroughSDFMeshScene" : "rendergraph.BreakthroughTAAInput",
            "textureBtMask" : "rendergraph.textureBtMask",
            "dmWarpedAlphaMask" : "rendergraph.DMWarpedAlphaMask",
            "textureVisualDepth": "rendergraph.VisualDepthTexture",
            "textureSUOcclusionAlphaMask": "rendergraph.SUOcclusionAlphaMask",
            "textureBlueNoise": "engine:blueNoise64RGBA8.ktx",
            "mxiBackground": "fallback.black",
            "mxiGlowray": "fallback.black"
        },
        "Constants": {
            "mxiToProxy" : "[1,0,0,0, 0,1,0,0, 0,0,1,0, 0,0,0,1]",
            "msUVPlaneOrigin" : "[0.0, 0.0, -7.0]",
            "msUVPlaneNormal" : "[0.0, 0.0, 1.0]",
            "msUVNearPlaneOrigin" : "[0.0, 0.0, 0.02]",
            "sampleInset" : "0.1",
            "blendFactor" : "1.0",
            "mixBegin" : "0.1",
            "mixEnd" : "0.0",
            "mixStepFunction" : "0",
            "mixCornerRadius" : "0.1",
            "aspectRatio" : "0.75",
            "spillFalloffExp" : "1.85",
            "spillFalloffBlend" : "1.0",
            "spillFalloffBegin" : "0.0",
            "spillFalloffEnd" : "1.0",
            "spillHeight" : "11.01",
            "spillCornerRadius" : "0.1",
            "spillFalloffStepFunction" : "0",
            "spillColorSampleMode" : "1",
            "nearFalloffBegin" : "-0.1",
            "nearFalloffEnd" : "0.0",
            "nearFalloffStepFunction": "0",
            "nearHeight" : "2.434",
            "nearCornerRadius" : "0.15",
            "spillNear0Far1" : "0.0",
            "debugTintNearFarRectangles" : "0.0",
            "blurOutStrength" : "0.0",
            "enableGlowrayStarburstMitigation" : "0.0",
            "shouldResizeMeshInVertexShader": "false",
            "scaleFactorForCornerRadius": "[1.0, 1.0]"

        }
    },
    "Techniques": [
        {
            "Name": "MXI",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXIProxy"
            },
            "PixelShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "fsMXIProxy"
            },
            "State" : {
                "PreferProgrammableBlending"    : false,
                "AlphaBlend"                    : true,
                "AlphaBlendOperation"           : "Add",
                "AlphaSourceFactor"             : "One",
                "AlphaDestinationFactor"        : "OneMinusSourceAlpha",
                "RgbBlendOperation"             : "Add",
                "RgbSourceFactor"               : "One",
                "RgbDestinationFactor"          : "OneMinusSourceAlpha",
                "WriteDepth"                    : true,
                "DepthCompareFunction"          : "GreaterEqual"
            },
            "FunctionConstants": {
                "EnableMultiUVs"                                : "true",
                "EnableClipping"                                : "false",
                "EnableBtMask"                                  : "false",
                "EnableDepthMitigation"                         : "false",
                "EnableVisualDepthStaticOcclusion"              : "false",
                "EnableSceneUnderstandingStaticOcclusion"  : "false",
                "IsVisualDepthStaticOcclusionTextureAvailable"  : "false",
                "EnableDitherTransitionToRenderFarPlane"        : "false",
                "EnableNearFieldVignetting"                     : "false",
                "EnableSpatialFocus"                            : "false",
                "PerceptualBlendingMode"                        : "0",
                "RenderForBlur"                                 : "false"
            },
            "Variations" : {
                "EnableClipping"                                : ["true", "false"],
                "EnableBtMask"                                  : ["true", "false"],
                "EnableDepthMitigation"                         : ["false", "true"],
                "EnableVisualDepthStaticOcclusion"              : ["false", "true"],
                "EnableSceneUnderstandingStaticOcclusion"  : ["false", "true"],
                "IsVisualDepthStaticOcclusionTextureAvailable"  : ["false", "true"],
                "EnableDitherTransitionToRenderFarPlane"  : ["false", "true"],
                "EnableNearFieldVignetting"                     : ["false", "true"],
                "EnableSpatialFocus"                            : ["false", "true"],
                "PerceptualBlendingMode"                        : ["0", "1", "2", "3"],
                "RenderForBlur"                                 : ["true", "false"]
            },
            "RuntimeFunctionConstantDefaults" : {
                "EnableClipping"                                : "true",
                "EnableBtMask"                                  : "true",
                "EnableDepthMitigation"                         : "true",
                "EnableVisualDepthStaticOcclusion"              : "true",
                "EnableSceneUnderstandingStaticOcclusion": "true",
                "IsVisualDepthStaticOcclusionTextureAvailable"  : "true",
                "EnableDitherTransitionToRenderFarPlane"  : "true",
                "EnableNearFieldVignetting"                     : "true",
                "EnableSpatialFocus"                            : "true",
                "PerceptualBlendingMode"                        : "0",
                "RenderForBlur"                                 : "true"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        },
        {
            "Name": "MXIOpaque",
            "InheritFromTechnique": "MXI",
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending"    : false,
                "AlphaBlend"                    : true,
                "AlphaBlendOperation"           : "Add",
                "AlphaSourceFactor"             : "One",
                "AlphaDestinationFactor"        : "OneMinusSourceAlpha",
                "RgbBlendOperation"             : "Add",
                "RgbSourceFactor"               : "One",
                "RgbDestinationFactor"          : "OneMinusSourceAlpha",
                "WriteDepth"                    : true,
                "DepthCompareFunction"          : "Greater"
            },
            "FunctionConstants": {
                "EnableMultiUVs"        : "true",
                "DisableFadeOpacity"    : "true"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true,
            "PreloadOptions" : {
                "PixelFormat-xros" : [115, 81],
                "SampleCount-xros" : [4, 1]
            }
        },
        {
            "Name": "MXIDepthOnly",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXIProxy"
            },
            "InheritState": false,
            "State" : {
                "ColorWriteMask"                : "None",
                "WriteDepth"                    : true,
                "DepthCompareFunction"          : "Greater"
            },
            "FunctionConstants": {
                "EnableMultiUVs"        : "true"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        },
        {
            "Name": "MXIFadeOpaque",
            "InheritFromTechnique": "MXI",
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending"    : false,
                "AlphaBlend"                    : true,
                "AlphaBlendOperation"           : "Add",
                "AlphaSourceFactor"             : "One",
                "AlphaDestinationFactor"        : "OneMinusSourceAlpha",
                "RgbBlendOperation"             : "Add",
                "RgbSourceFactor"               : "One",
                "RgbDestinationFactor"          : "OneMinusSourceAlpha",
                "WriteDepth"                    : false,
                "DepthCompareFunction"          : "GreaterEqual"
            },
            "FunctionConstants" : {
                "EnableMultiUVs"        : "true",
                "EnableTransparency"    : "false"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        },
        {
            "Name": "MXIFadeOpaque_BackCompat",
            "InheritFromTechnique": "MXIFadeOpaque",
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending"    : false,
                "AlphaBlend"                    : true,
                "AlphaBlendOperation"           : "Add",
                "AlphaSourceFactor"             : "One",
                "AlphaDestinationFactor"        : "OneMinusSourceAlpha",
                "RgbBlendOperation"             : "Add",
                "RgbSourceFactor"               : "One",
                "RgbDestinationFactor"          : "OneMinusSourceAlpha",
                "WriteDepth"                    : true,
                "DepthCompareFunction"          : "GreaterEqual"
            },
            "FunctionConstants" : {
                "EnableMultiUVs"        : "true",
                "EnableTransparency"    : "false"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true,
            "Tags" : {
                "Transparent_BackCompat" : "True"
            }
        },
        {
            "Name": "MXITreatments",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXITreatments"
            },
            "PixelShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "fsMXITreatments"
            },
            "InheritState": false,
            "State" : {
                "PreferProgrammableBlending"    : true,
                "WriteDepth"                    : false,
                "DepthCompareFunction"          : "Always"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true,
            "PreloadOptions" : {
                "PixelFormat-xros" : [115, 81],
                "SampleCount-xros" : [4, 1]
            }
        },
        {
            "Name": "MXIStencil",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXIProxy"
            },
            "InheritState": false,
            "State" : {
                "WriteDepth"                    : false,
                "DepthCompareFunction"          : "Always",
                "WriteStencil"                  : true
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        },
        {
            "Name": "MXISetStencilDepthEqual",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXIProxy"
            },
            "State" : {
                "WriteDepth"                    : false,
                "DepthCompareFunction"          : "Equal",
                "WriteStencil"                  : true
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        },
        {
            "Name": "MXIWriteDepthPatch",
            "VertexShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "vsMXIProxy"
            },
            "PixelShader": {
                "Library" : "engine:mxi.metallib",
                "Entry": "fsMXIWriteDepthPatch"
            },
            "State" : {
                "WriteDepth"                    : true,
                "WriteStencil"                  : false,
                "DepthCompareFunction"          : "Always",
                "ColorWriteMask"                : "None"
            },
            "SupportsRuntimeFunctionConstants"      : true,
            "AllowRuntimeTechniqueStateOverride"    : true
        }
    ],
    "TechniqueGroups" : [
        {
            "Name" : "SpatialSceneDepthPatch",
            "Techniques" : ["MXISetStencilDepthEqual", "MXIWriteDepthPatch"]
        }
    ],
    "TechniqueMapping": {
        "Opaque": "MXIOpaque",
        "MXITreatments" : "MXITreatments",
        "MXIStencil" : "MXIStencil"
    },
    "TechniqueMappingOverrides": {
        "Fade": {
            "FadeDepthPrepass": "MXIDepthOnly",
            "FadeOpaque": "MXIFadeOpaque",
            "Transparent": "MXIFadeOpaque_BackCompat"
        }
    }
}

