{
    "Name": "PbrCommon",
    "OverrideMaterial": "engine:engineDefaults.rematerialdefinition",
    "Parameters": {
        "Constants": {
            "baseColorTint"                   : "[1,1,1,1]",
            "subsurface"                      : "0",
            "metallicScale"                   : "0",
            "specularScale"                   : "0.5",
            "roughnessScale"                  : "1",
            "emissiveColor"                   : "[0,0,0]",
            "emissiveScale"                   : "1",
            "emissiveScaleRGBA"               : "[1,1,1,1]",
            "detailBaseColorIntensity"        : "0.0",
            "detailNormalIntensity"           : "0.0",
            "detailMetallicIntensity"         : "0.0",
            "detailRoughnessIntensity"        : "0.0",
            "detailSpecularIntensity"         : "0.0",
            "lightmapIntensityLV"             : "0.0",
            "uvTransform"                     : "[1,0,0,1]",
            "uvOffset"                        : "[0, 0]",
            "uvTransform1"                    : "[1,0,0,1]",
            "uvOffset1"                       : "[0, 0]",
            "clearcoatScale"                  : "1.0",
            "clearcoatRoughnessScale"         : "0.01",
            "opacityThreshold"                : "0.0",
            "partDebugColor"                  : "[1,1,1]",
            "sheenColor"                      : "[0.04, 0.04, 0.04]",
            "ssoSamplingRadius"               : "0.1",
            "ssoSamplingBias"                 : "0.0025",
            "anisotropyLevelScale"            : "0",
            "anisotropyAngleScale"            : "0",
            "filterCount"                     : "0",
            "meshScale"                       : "1.0"
        },
        "Buffers": {
            "lightConstants"              : "light.lightBuffer",
            "iblConstants"                : "light.iblConstants",
            "envProbeTable"               : "scene.envProbeTable",
            "clippingConstants"           : "scene.clipping",
            "specMaxEssAvgTable"          : "brdf.specMaxEssAvgTable",
            "samplerIndexMap"             : "samplers.dynamicSamplers",
            "clusterConstants"            : "rendergraph.DEPRECATED",
            "clusterIndexTable"           : "rendergraph.DEPRECATED",
            "clusterResultTable"          : "rendergraph.DEPRECATED",
            "ssaoConstants"               : "light.lightBuffer",
            "customBlendFilters"          : "fallback.zeros"
        },
        "Textures": {
            "textureBrdf"                : "brdf.brdfMap",
            "textureClothBrdf"           : "brdf.clothBrdfMap",
            "textureSpecMaxEss"          : "brdf.specMaxEssMap",
            "texturePrefilteredDiffuse"  : "scene.prefilteredDiffuseMap",
            "texturePrefilteredSpecular" : "scene.prefilteredSpecularMap",
            "textureAreaLightMaps"       : "scene.areaLightMaps",
            "textureBaseColor"           : "fallback.white",
            "textureAmbientOcclusion"    : "fallback.white",
            "textureEmissive"            : "fallback.black",
            "textureMetallic"            : "fallback.white",
            "textureRoughness"           : "fallback.white",
            "textureSpecular"            : "fallback.white",
            "textureNormal"              : "fallback.lightBlue",
            "textureOpacity"             : "fallback.white",
            "textureAnisotropyLevel"     : "fallback.white",
            "textureAnisotropyAngle"     : "fallback.white",
            "textureClearcoatRoughness"  : "fallback.white",
            "textureRMAS"                : "fallback.white",
            "textureClearcoat"           : "fallback.white",
            "textureSheenColor"          : "fallback.white",
            "textureBlueNoise"           : "engine:blueNoise64RGBA8.png",
            "envProbeCubeArray"          : "scene.envProbeCubeArray",
            "envProbeTextureArray"       : "scene.envProbeTextureArray",
            "envProbeDiffuseArray"       : "scene.envProbeDiffuseArray",
            "texturePasstroughColor"     : "rendergraph.texturePasstroughColor",
            "ssoGBufferPosition"         : "rendergraph.SSO_GBuffer_Position",
            "ssoGBufferNormal"           : "rendergraph.SSO_GBuffer_Normal",
            "ssoNoiseTexture"            : "fallback.black",
            "textureBlurPlaneDepth"      : "rendergraph.BlurPlaneDepth",
            "texturePlanarReflection"    : "fallback.white"
        },
        "TextureBlocks": {
            "__placeholder": {
                "Texture": "fallback.white",
                "Sampler": "__placeholder",
                "SamplerArray": "dynamicSamplers"
            }
        },
        "Samplers": {
            "__placeholder": {}
        }
    },
    "ParameterProperties" : {
        "baseColorTint"              : {},
        "textureBaseColor"           : { "DisplayName" : "Base Color Texture" },
        "emissiveColor"              : {},
        "textureEmissive"            : { "DisplayName" : "Emissive Texture" },
        "emissiveScale"              : {},
        "textureMetallic"            : { "DisplayName" : "Metallic Texture" },
        "metallicScale"              : {},
        "textureSpecular"            : { "DisplayName" : "Specular Texture" },
        "specularScale"              : {},
        "textureRoughness"           : { "DisplayName" : "Roughness Texture" },
        "roughnessScale"             : {},
        "textureClearcoat"           : { "DisplayName" : "Clear Coat Texture" },
        "clearcoatScale"             : {},
        "textureClearcoatRoughness"  : { "DisplayName" : "Clear Coat Roughness Texture" },
        "clearcoatRoughnessScale"    : {},
        "textureAmbientOcclusion"    : { "DisplayName" : "Ambient Occlusion Texture" },
        "textureNormal"              : { "DisplayName" : "Normal Texture" },
        "sheenColor"                 : {},
        "textureSheenColor"          : { "DisplayName" : "Sheen Color Texture" },
        "opacityThreshold"           : {},
        "textureOpacity"             : { "DisplayName" : "Opacity Texture" },
        "lightmapIntensityLV"        : { "DisplayName" : "Lightmap Intensity LV" },
        "uvTransform"                : { "DisplayName" : "Material UV Transform" },
        "uvOffset"                   : { "DisplayName" : "Material UV Offset" },
    },
    "DebugMappings": [
        {
            "Name": "PbrDebug",
            "Mappings": {
                "NoDebug": 0,
                "BaseColorTexture": 1,
                "RoughnessTexture": 2,
                "MetallicTexture": 3,
                "AmbientOcclusionTexture": 4,
                "SpecularTexture": 5,
                "EmissiveTexture": 6,
                "OpacityTexture": 7,
                "RMASTexture": 8,
                "ClearCoatTexture": 9,
                "ClearCoatRoughnessTexture": 10,
                "ClothSheenTexture": 11,
                "NormalTexture": 12,
                "BaseColorMipLevel": 13,
                "RoughnessMipLevel": 14,
                "MetallicMipLevel": 15,
                "AmbientOcclusionMipLevel": 16,
                "SpecularMipLevel": 17,
                "EmissiveMipLevel": 18,
                "OpacityMipLevel": 19,
                "RMASMipLevel": 20,
                "ClearCoatMipLevel": 21,
                "ClearCoatRoughnessMipLevel": 22,
                "ClothSheenMipLevel": 23,
                "NormalMipLevel": 24,
                "VertexUV": 25,
                "VertexNormal": 26,
                "VertexTangent": 27,
                "VertexBitangent": 28,
                "VertexColor": 29,
                "DerivedNormal": 30,
                "DerivedTangent": 31,
                "DerivedBitangent": 32,
                "DerivedBaseColor": 33,
                "DerivedRoughness": 34,
                "DerivedMetallic": 35,
                "DerivedAmbientOcclusion": 36,
                "DerivedSpecular": 37,
                "DerivedEmissive": 38,
                "DerivedClearcoat": 39,
                "DerivedClearcoatRoughness": 40,
                "IlluminationDiffuse": 41,
                "IlluminationSpecular": 42,
                "FinalColor": 43,
                "FinalAlpha": 44
            }
        }
    ],
    "Techniques": [
        {
            "Name": "Transparent",
            "VertexShader": {
                "Entry": "vsRealityPbr"
            },
            "PixelShader": {
                "Entry": "fsRealityPbr"
            },
            "State" : {
                "WriteDepth"                : true,
                "DepthCompareFunction"      : "GreaterEqual",
                "RenderAttachmentState" : [
                    {
                        "AlphaBlend"                : true,
                        "AlphaBlendOperation"       : "Add",
                        "AlphaSourceFactor"         : "One",
                        "AlphaDestinationFactor"    : "OneMinusSourceAlpha",
                        "RgbBlendOperation"         : "Add",
                        "RgbSourceFactor"           : "One",
                        "RgbDestinationFactor"      : "OneMinusSourceAlpha"
                    },
                    {},
                    {
                        "AlphaBlend"                : true,
                        "AlphaBlendOperation"       : "Add",
                        "AlphaSourceFactor"         : "One",
                        "AlphaDestinationFactor"    : "OneMinusSourceAlpha",
                        "RgbBlendOperation"         : "Add",
                        "RgbSourceFactor"           : "One",
                        "RgbDestinationFactor"      : "OneMinusSourceAlpha"
                    }
                ]
            },
            "FunctionConstants" : {
                "EnableBaseColorMap"    : "true",
                "EnableNormalMap"       : "true",
                "EnableEmissiveMap"     : "true",
                "EnableAreaLight"       : "true",
                "EnableSeparateRMAS"    : "true",
                "EnableSingleRMAS"      : "false",
                "EnableRoughnessMap"    : "true",
                "EnableMetallicMap"     : "true",
                "EnableAOMap"           : "true",
                "EnableSpecularMap"     : "true",
                "EnableTransparency"    : "true",
                "EnableOpacityMap"      : "true",
                "EnableClearcoat"       : "false",
                "VertexColorOption"     : "0",
                "EnableIBL"             : "true",
                "EnableAREnvProbe"      : "false",
                "EnableDynamicLighting" : "false",
                "EnableSSAO"            : "false",
                "EnableSSDO"            : "false",
                "EnableMultiUVs"        : "false",
                "EnableAnisotropy"      : "false",
                "EnableMultiscatter"    : "true"
            },
            "DefaultVariations" : [ "TransparentCommon" ],
            "DebugMapping": "PbrDebug"
        },
        {
            "Name": "Opaque",
            "VertexShader": {
                "Entry": "vsRealityPbr"
            },
            "PixelShader": {
                "Entry": "fsRealityPbr"
            },
            "State" : {
                "AlphaBlend" : false,
                "WriteDepth" : true,
                "DepthCompareFunction" : "GreaterEqual"
            },
            "FunctionConstants" : {
                "EnableBaseColorMap"        : "true",
                "EnableNormalMap"           : "true",
                "EnableEmissiveMap"         : "true",
                "EnableAreaLight"           : "true",
                "EnableSeparateRMAS"        : "true",
                "EnableSingleRMAS"          : "false",
                "EnableRoughnessMap"        : "true",
                "EnableMetallicMap"         : "true",
                "EnableAOMap"               : "true",
                "EnableSpecularMap"         : "true",
                "EnableClearcoat"           : "false",
                "VertexColorOption"         : "0",
                "EnableIBL"                 : "true",
                "UseBaseColorMapAsTintMask" : "false",
                "EnableAREnvProbe"          : "false",
                "EnableDynamicLighting"     : "false",
                "EnableCloth"               : "false",
                "EnableSSAO"                : "false",
                "EnableSSDO"                : "false",
                "EnableMultiUVs"            : "false",
                "EnableAnisotropy"          : "false",
                "EnableMultiscatter"        : "true"
            },
            "DefaultVariations" : [ "OpaqueCommon" ],
            "DebugMapping": "PbrDebug"
        },
        {
            "Name": "Shadow",
            "VertexShader": {
                "Entry": "vsShadow"
            },
            "PixelShader": {
                "Entry": "fsShadow"
            },
            "State" : {
                "ColorWriteMask" : "None"
            }
        },
        {
            "Name": "SSO_GBufferMtl",
            "VertexShader": {
              "Entry": "vsSSO_GBuffer"
            },
            "PixelShader": {
              "Entry": "fsSSO_GBuffer"
            },
            "State" : {
                "AlphaBlend" : false,
                "WriteDepth" : true,
                "DepthCompareFunction" : "GreaterEqual"
            }
        }
    ]
}
