{
    "Name": "CameraGraph",
    "Targets": [
        {
            "Name" : "ColorTarget",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "DepthTarget",
            "Description" : {
                "Format" : "Depth32Float_Stencil8"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name": "ShadowMapAtlas"
        },
        {
            "Name" : "SegmentationMaskTarget"
        },
        {
            "Name" : "DepthSegmentationMaskTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            }
        },
        {
            "Name" : "NormalsTarget",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "DepthNormalsTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "NormalsGeomTarget",
        },
        {
            "Name" : "DepthNormalsGeomTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
        },
        {
            "Name" : "XYZTarget",
        },
        {
            "Name" : "DepthXYZTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
        },
        {
            "Name" : "MetallicTarget",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "DepthMetallicTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "RoughnessTarget",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "DepthRoughnessTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "AlbedoTarget",
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name" : "DepthAlbedoTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            },
            "Connections" : [
                {
                    "ToMember" : ["sampleCount"],
                    "FromType" : "CameraData",
                    "FromMember" : ["msaaSamples"]
                }
            ]
        },
        {
            "Name": "processDepthTarget"
        },
        {
            "Name" : "DepthProcessDepthTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
                "Type": "MemoryManaged"
            }
        },
        {
            "Name" : "uvBakeAlbedoTarget"
        },
        {
            "Name" : "uvBakeNormalsTarget"
        },
        {
            "Name" : "uvBakeMetallicTarget"
        },
        {
            "Name" : "uvBakeRoughnessTarget"
        },
    ],
    "Nodes": [
        {
            "CameraSetup": {
                "Name": "CameraSetup",
                "FrustumCulling": true
            }
        },
        {
            "Mesh": {
                "Name": "OcclusionNode",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "Occlusion",
                "TargetWrites": [
                    {
                        "TargetHandle": "ColorTarget",
                        "Settings": {
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteDepth"
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    }
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeColor",
                "CullMode": "CullModeBack",
                "FillMode": "Fill",
                "MaterialPassName": "Opaque",
                "TargetReads": [
                    {
                        "TargetHandle": "ShadowMapAtlas",
                        "Settings": {
                            "IsOptional": true
                        }
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "ColorTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "SkyboxNode",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "Skybox",
                "TargetWrites": [
                    {
                        "TargetHandle": "ColorTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteDepth"
                        }
                    },
                    {
                        "TargetHandle" : "DepthTarget",
                        "Settings" : {
                            "Type" : "WriteStencil",
                            "ForceClear" : false,
                            "IsOptional" : true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "TransparentNode",
                "CullMode": "CullModeBack",
                "MaterialPassName": "Transparent",
                "SortMode": "BackToFront",
                "TargetReads": [
                    {
                        "TargetHandle": "ShadowMapAtlas",
                        "Settings": {
                            "IsOptional": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "ColorTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                        }
                    },
                    {
                        "TargetHandle": "DepthTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true,
                        }
                    }
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeSegmentationMask",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "SegmentationMaskMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "SegmentationMaskTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true
                        }
                    },
                    {
                        "TargetHandle": "DepthSegmentationMaskTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthSegmentationMaskTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeNormals",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "NormalsMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "NormalsTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthNormalsTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthNormalsTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeNormalsGeom",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "NormalsGeomMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "NormalsGeomTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthNormalsGeomTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthNormalsGeomTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeXYZ",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "XYZMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "XYZTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthXYZTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthXYZTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeMetallic",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "MetallicMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "MetallicTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthMetallicTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthMetallicTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeRoughness",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "RoughnessMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "RoughnessTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthRoughnessTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": true
                        }
                    },
                    {
                        "TargetHandle": "DepthRoughnessTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeAlbedo",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "AlbedoMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "AlbedoTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthAlbedoTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthAlbedoTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "processDepthNode",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "processDepthMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "processDepthTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                    {
                        "TargetHandle": "DepthProcessDepthTarget",
                        "Settings": {
                            "Type": "WriteDepth",
                            "ForceClear": false
                        }
                    },
                    {
                        "TargetHandle": "DepthProcessDepthTarget",
                        "Settings": {
                            "Type": "WriteStencil",
                            "IsOptional": true
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeAlbedoUV",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "uvBakeAlbedoMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "uvBakeAlbedoTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeNormalsUV",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "uvBakeNormalsMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "uvBakeNormalsTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeMetallicUV",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "uvBakeMetallicMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "uvBakeMetallicTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                ]
            }
        },
        {
            "Mesh": {
                "Name": "OpaqueNodeRoughnessUV",
                "CullMode": "CullModeNone",
                "FillMode": "Fill",
                "MaterialPassName": "uvBakeRoughnessMPN",
                "TargetWrites": [
                    {
                        "TargetHandle": "uvBakeRoughnessTarget",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ForceClear": true,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    },
                ]
            }
        },
    ],
    "Inputs": [
        {
            "Lane": "Color",
            "Target": "ColorTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthTarget"
        },
        {
            "Lane": "ShadowMapAtlasLane",
            "Target": "ShadowMapAtlas",
            "InputOnly": true,
            "GraphScopeOverride": "ShadowMapAtlasScope"
        }
    ],
    "PropertyInheritance": [
        {
            "Lane": "Depth",
            "Target": "DepthSegmentationMaskTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthNormalsTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthNormalsGeomTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthXYZTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthMetallicTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthRoughnessTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthAlbedoTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthProcessDepthTarget"
        },
    ],
    "Outputs": [
        {
            "Lane": "Color",
            "Target": "ColorTarget"
        },
        {
            "Lane": "Depth",
            "Target": "DepthTarget"
        },
        {
            "Lane" : "SegmentationMaskLane",
            "Target" : "SegmentationMaskTarget"
        },
        {
            "Lane" : "NormalsLane",
            "Target" : "NormalsTarget"
        },
        {
            "Lane" : "NormalsGeomLane",
            "Target" : "NormalsGeomTarget"
        },
        {
            "Lane" : "XYZLane",
            "Target" : "XYZTarget"
        },
        {
            "Lane" : "MetallicLane",
            "Target" : "MetallicTarget"
        },
        {
            "Lane" : "RoughnessLane",
            "Target" : "RoughnessTarget"
        },
        {
            "Lane" : "AlbedoLane",
            "Target" : "AlbedoTarget"
        },
        {
            "Lane": "processDepthLane",
            "Target": "processDepthTarget"
        },
        {
            "Lane": "uvBakeAlbedoLane",
            "Target": "uvBakeAlbedoTarget"
        },
        {
            "Lane": "uvBakeNormalsLane",
            "Target": "uvBakeNormalsTarget"
        },
        {
            "Lane": "uvBakeMetallicLane",
            "Target": "uvBakeMetallicTarget"
        },
        {
            "Lane": "uvBakeRoughnessLane",
            "Target": "uvBakeRoughnessTarget"
        },
    ],
}
