{
    "Name": "PortalMaterialDefinition",
    "OverrideMaterial": "engine:unlitCommon.rematerialdefinition",
    "Techniques": [
    {
        "Name": "StencilIncrement",
        "VertexShader": {
            "Entry": "vsStencilPortal"
        },
        "PixelShader": {
            "Entry": "fsIncrementStencil"
        },
        "State" : {
            "ColorWriteMask" : "None",
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "GreaterEqual",
            "RenderAttachmentState" : [
                {
                    "PreferProgrammableBlending" : true
                }
            ]
        },
        "FunctionConstants" : {
            "EnableClipping"                 : "false",
            "EnableDitherFade"               : "false",
            "EnableBtMask"                   : "false",
            "EnableVisualDepthStaticOcclusion"             : "false",
            "EnableSceneUnderstandingStaticOcclusion": "false",
            "IsVisualDepthStaticOcclusionTextureAvailable" : "false",
            "EnableDitherTransitionToRenderFarPlane" : "false",
            "EnableSpatialFocus"             : "false",
            "RenderForBlur"                  : "false",
            "EnableNearFieldVignetting"      : "false",
            "DitherRange"                    : "0.05"
        },
        "Variations" : {
            "EnableClipping"                 : ["true", "false"],
            "EnableDitherFade"               : ["true", "false"],
            "EnableBtMask"                   : ["true", "false"],
            "EnableVisualDepthStaticOcclusion"             : ["false", "true"],
            "EnableSceneUnderstandingStaticOcclusion" : ["false", "true"],
            "IsVisualDepthStaticOcclusionTextureAvailable" : ["false", "true"],
            "EnableDitherTransitionToRenderFarPlane" : ["false", "true"],
            "EnableSpatialFocus"             : ["true", "false"],
            "RenderForBlur"                  : ["true", "false"],
            "EnableNearFieldVignetting"      : ["true", "false"]
        },
         "RuntimeFunctionConstantDefaults" : {
            "EnableClipping"                 : "true",
            "EnableDitherFade"               : "true",
            "EnableBtMask"                   : "true",
            "EnableVisualDepthStaticOcclusion"             : "true",
            "EnableSceneUnderstandingStaticOcclusion" : "true",
            "IsVisualDepthStaticOcclusionTextureAvailable" : "true",
            "EnableDitherTransitionToRenderFarPlane" : "true",
            "EnableSpatialFocus"             : "true",
            "RenderForBlur"                  : "false",
            "EnableNearFieldVignetting"      : "true"
        },
        "SupportsRuntimeFunctionConstants" : true,
        "PreloadOptions" : {
            "PixelFormat" : [115, 81],
            "SampleCount" : [4, 1]
        }
    },
    {
        "Name": "DepthBufferClear",
        "VertexShader": {
            "Entry": "vsDepthClear"
        },
        "PixelShader": {
            "Entry": "fsClearDepthWithBlack"
        },
        "State" : {
            "AlphaBlend" : false,
            "WriteDepth" : true,
            "DepthCompareFunction" : "Always"
        },
        "FunctionConstants" : {
            "EnableUnlitTexture"             : "false",
            "EnableSRGBToLinearConversion"   : "false",
            "EnableVertexColor"              : "false",
            "EnableOpacityMap"               : "false"
        },
        "SupportsRuntimeFunctionConstants" : true,
        "PreloadOptions" : {
            "PixelFormat" : [115, 81],
            "SampleCount" : [4, 1]
        }
    },
    {
        "Name": "DepthBufferPatchAndStencilDecrement",
        "InheritFromTechnique": "StencilIncrement",
        "PixelShader": {
            "Entry": "fsDecrementStencil"
        },
        "State" : {
            "WriteDepth" : true,
            "DepthCompareFunction" : "Always",
            "RenderAttachmentState" : [
                {
                    "PreferProgrammableBlending" : true,
                    "AlphaBlend"                 : true,
                    "AlphaBlendOperation"        : "Add",
                    "AlphaSourceFactor"          : "Zero",
                    "AlphaDestinationFactor"     : "SourceAlpha",
                    "RgbBlendOperation"          : "Add",
                    "RgbSourceFactor"            : "Zero",
                    "RgbDestinationFactor"       : "SourceAlpha"
                }
            ]
        },
        "FunctionConstants" : {
            "EnableAlphaWhenDithered"        : "true",
            "EnableDepthMitigation"          : "false",
            "DitherRange"                    : "0.05"
        },
        "Variations" : {
            "EnableDepthMitigation"          : ["true", "false"]
        },
         "RuntimeFunctionConstantDefaults" : {
            "EnableDepthMitigation"          : "true"
        }
    },
    {
        "Name": "DepthBufferPatchAndStencilDecrementNoFragmentFunctionTechnique",
        "VertexShader": {
            "Entry": "vsStencilPortal"
        },
        "State" : {
            "WriteDepth" : true,
            "DepthCompareFunction" : "Always"
        }
    },
    {
        "Name": "FadeDepthPrepass",
        "InheritFromTechnique": "StencilIncrement",
        "InheritState" : false,
        "State" : {
            "DepthCompareFunction" : "GreaterEqual",
            "WriteDepth" : true,
            "ColorWriteMask": "None"
        },
        "FunctionConstants" : {
            "EnableDitherFadeOverride"        : "true"
        }
    }],
    "TechniqueMapping": {
        "StencilIncrement": "StencilIncrement",
        "DepthBufferClear": "DepthBufferClear",
        "DepthBufferPatchAndStencilDecrement": "DepthBufferPatchAndStencilDecrement",
        "DepthBufferPatchAndStencilDecrementNoFragmentFunction": "DepthBufferPatchAndStencilDecrementNoFragmentFunctionTechnique",

        "FadeDepthPrepass": "FadeDepthPrepass",
        "Opaque": "Opaque"
    },
    "TechniqueMappingOverrides": {
        "Fade": {
            "Transparent": "Transparent",
            "FadeDepthPrepass": "FadeDepthPrepass"
        }
    }
}

