{
    "Name" : "CameraGraph",
    "Targets" : [
        {
            "Name" : "Color0",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                },
                {
                    "ToMember" : ["initialLoadAction"],
                    "FromType" : "CameraData",
                    "FromMember" : ["colorLoadAction"]
                }
            ]
        },
        {
            "Name" : "DepthAsColor",
            "Description" : {
                "Format" : "R16Float",
                "Type" : "MemoryManaged",
                "InitialUsageFlags" : "RenderTarget",
                "ExposeToMaterial" : true
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "Stencil",
            "Description" : {
                "Format" : "Stencil8"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "ShadowMapAtlas"
        }
    ],
    "Nodes" : [
        {
            "CameraSetup" : {
                "Name" : "CameraSetup",
                "FrustumCulling" : true
            }
        },
        {
            "Mesh" : {
                "Name" : "OpaqueNode",
                "CullMode" : "CullModeBack",
                "FillMode" : "Fill",
                "MaterialPassName" : "Opaque",
                "TargetReads" : [
                    {
                        "TargetHandle" : "ShadowMapAtlas",
                        "Settings" : {
                            "IsOptional" : true
                        }
                    }
                ],
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0,
                            "ForceClear" : true
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "ForceClear" : false,
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "Mesh" : {
                "Name" : "Skybox",
                "CullMode" : "CullModeNone",
                "FillMode" : "Fill",
                "MaterialPassName" : "Skybox",
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "ForceClear" : false,
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "Mesh" : {
                "Name" : "TransparentNode",
                "CullMode" : "CullModeBack",
                "MaterialPassName" : "Transparent",
                "SortMode" : "BackToFront",
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIFullscreen" : {
                "Name" : "MXIStencilInterior",
                "Material" : "engine:mxiProxyMaterialIOS_Reprojection.rematerial",
                "TechniqueName" : "StencilInterior",
                "StencilStep" : 1,
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIFullscreen" : {
                "Name" : "MXIStencilTransition",
                "Material" : "engine:mxiProxyMaterialIOS_Reprojection.rematerial",
                "TechniqueName" : "StencilTransition",
                "StencilStep" : 2,
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIMeshCrack" : {
                "Name" : "MXIRenderCracks",
                "CullMode" : "CullModeBack",
                "MaterialPassName" : "MXICrackFill",
                "SortMode" : "BackToFront",
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIFullscreen" : {
                "Name" : "MXIReprojectAndBlend",
                "Material" : "engine:mxiProxyMaterialIOS_Reprojection.rematerial",
                "TechniqueName" : "ReprojectGoodRegion",
                "StencilStep" : 4,
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIFullscreen" : {
                "Name" : "MXICopyOnRenderFrame",
                "Material" : "engine:mxiProxyMaterialIOS_Reprojection.rematerial",
                "TechniqueName" : "FullscreenCopy",
                "StencilStep" : 0,
                "RenderOnReprojectionFrames" : false,
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        },
        {
            "MXIColorConversion" : {
                "Name" : "MXIColorConvert",
                "Library" : "engine:mxi.metallib",
                "TileFunction" : "kernelColorConversion",
                "TargetWrites" : [
                    {
                        "TargetHandle" : "Color0",
                        "Settings" : {
                            "AttachmentIndex" : 0
                        }
                    },
                    {
                        "TargetHandle" : "Stencil",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "IsOptional" : true
                        }
                    },
                    {
                        "TargetHandle" : "DepthAsColor",
                        "Settings" : {
                            "AttachmentIndex" : 4,
                            "ClearColor" : [0,0,0,0]
                        }
                    }
                ]
            }
        }
    ],
    "Inputs" : [
        {
            "Lane" : "Color",
            "Target" : "Color0"
        },
        {
            "Lane" : "Stencil",
            "Target" : "Stencil"
        },
        {
            "Lane" : "ShadowMapAtlasLane",
            "Target": "ShadowMapAtlas",
            "InputOnly" : true,
            "GraphScopeOverride" : "ShadowMapAtlasScope"
        }
    ],
    "PropertyInheritance" : [
        {
            "Lane" : "Color",
            "Target" : "DepthAsColor"
        },
        {
            "Lane" : "Stencil",
            "Target" : "Stencil"
        }
    ],
    "Outputs" : [
        {
            "Lane" : "Color",
            "Target" : "Color0"
        },
        {
            "Lane" : "Stencil",
            "Target" : "Stencil"
        },
        {
            "Lane" : "DepthAsColorLane",
            "Target" : "DepthAsColor"
        }
    ],
    "Connections" : [
        {
            "Name" : "OpaqueNode",
            "Connections" : [
                {
                    "ToMember" : ["TargetWrites", "0", "settings", "clearColor"],
                    "FromType" : "CameraData",
                    "FromMember" : ["clearColor"]
                },
                {
                    "ToMember" : ["TargetWrites", "1", "settings", "clearStencil"],
                    "FromType" : "CameraData",
                    "FromMember" : ["clearStencil"]
                },
                {
                    "ToMember" : ["EnableVRR"],
                    "FromType" : "VRRData",
                    "FromMember" : ["vrrEnabled"]
                },
                {
                  "ToMember" : ["ThreadgroupMemoryLength"],
                  "FromType" : "ThreadGroupMemoryData",
                  "FromMember" : ["totalBytes"]
                }
            ]
        },
        {
            "Name" : "Skybox",
            "Connections" : [
                {
                    "ToMember" : ["EnableVRR"],
                    "FromType" : "VRRData",
                    "FromMember" : ["vrrEnabled"]
                },
                {
                  "ToMember" : ["ThreadgroupMemoryLength"],
                  "FromType" : "ThreadGroupMemoryData",
                  "FromMember" : ["totalBytes"]
                }
            ]
        },
        {
            "Name" : "TransparentNode",
            "Connections" : [
                {
                    "ToMember" : ["EnableVRR"],
                    "FromType" : "VRRData",
                    "FromMember" : ["vrrEnabled"]
                },
                {
                  "ToMember" : ["ThreadgroupMemoryLength"],
                  "FromType" : "ThreadGroupMemoryData",
                  "FromMember" : ["totalBytes"]
                }
            ]
        },
        {
            "Name" : "MXIColorConvert",
            "Connections" : [
                {
                    "ToMember" : ["EnableVRR"],
                    "FromType" : "VRRData",
                    "FromMember" : ["vrrEnabled"]
                },
                {
                  "ToMember" : ["ThreadgroupMemoryLength"],
                  "FromType" : "ThreadGroupMemoryData",
                  "FromMember" : ["totalBytes"]
                }
            ]
        }
    ]
}
