{
    "Name": "PostProcessGraph",
    "Targets": [
        {
            "Name": "DepthTarget",
            "Description": {
                "Format": "Depth32Float_Stencil8",
            }
        },
        {
            "Name": "DownsampledTarget",
            "Description": {
                "Type": "MemoryManaged",
                "Format": "RGBA16Float",
                "WidthMultiplier": 0.5,
                "HeightMultiplier": 0.5,
                "MipLevelCount": 4,
                "SampleCount": 1
            }
        },
        {
            "Name": "PostProcessInputColor"
        },
        {
            "Name": "PostProcessInputMask"
        },
        {
            "Name": "BloomResultColor",
        },
        {
            "Name": "HorizontalGaussianBlurResultColor",
        },
        {
            "Name": "VerticalGaussianBlurResultColor",
        },
        {
            "Name": "MotionBlurResultColor",
        },
        {
            "Name": "TonemapResultColor",
        },
        {
            "Name": "TintResultColor"
        },
        {
            "Name": "CameraNoiseResultColor"
        },
        {
            "Name": "CameraNoiseRectilinearResultColor"
        },
        {
            "Name": "VignetteResultColor"
        },
        {
            "Name": "LensDistortionOutputColor"
        },
        {
            "Name": "LensDistortionOutputMask"
        },
        {
            "Name": "VignetteResultMask"
        },
    ],
    "Buffers": [],
    "Nodes": [
        {
            "RenderGraphUploadBloomParams": {
                "Name": "UploadBloomParams",
                "BloomUserParameters": {
                    "Strength": 0.0,
                    "Threshold": 1.0,
                    "Spread": 1.0,
                    "NumPasses": 1
                }
            }
        },
        {
            "RenderGraphDownsampleThresholdNode": {
                "Name": "DownsampleThresholdNode",
                "DownsampleThresholdMaterial": "../Materials/downsampleThreshold.rematerial",
                "TargetReads": [
                    {
                        "TargetHandle": "PostProcessInputColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "DownsampledTarget",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ]
            }
        },
        {
            "GenerateMipmaps": {
                "Name": "BloomGenerateMips",
                "TargetWrites": [
                    {
                        "TargetHandle": "DownsampledTarget",
                        "Settings": {
                            "Type": "WriteBlit"
                        }
                    }
                ]
            }
        },
        {
            "RenderGraphDownsampleBlur": {
                "Name": "DownsampleBlur",
                "Library": "engine:default.metallib",
                "DownsampledTarget": "DownsampledTarget"
            }
        },
        {
            "RenderGraphBloomNode": {
                "Name": "Bloom",
                "Material": "../Materials/bloom.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "PostProcessInputColor"
                    },
                    {
                        "TargetHandle": "DownsampledTarget"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "BloomResultColor",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "PostProcessInputColor"
                    },
                    {
                        "BindingName": "downsampled",
                        "TargetHandle": "DownsampledTarget"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "HorizontalBlur",
                "Material": "../Materials/davinciGaussianBlur.rematerial",
                "TechniqueName": "ColorBlurHorizontal",
                "TargetReads": [
                    {
                        "TargetHandle": "BloomResultColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "HorizontalGaussianBlurResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "BloomResultColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "VerticalBlur",
                "Material": "../Materials/davinciGaussianBlur.rematerial",
                "TechniqueName": "ColorBlurVertical",
                "TargetReads": [
                    {
                        "TargetHandle": "HorizontalGaussianBlurResultColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "VerticalGaussianBlurResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "HorizontalGaussianBlurResultColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "ImageSpaceMotionBlur",
                "Material": "../Materials/davinciImageSpaceMotionBlur.rematerial",
                "TechniqueName": "ImageSpaceMotionBlur",
                "TargetReads": [
                    {
                        "TargetHandle": "VerticalGaussianBlurResultColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "MotionBlurResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "VerticalGaussianBlurResultColor"
                    }
                ]
            }
        },
        {
            "RenderGraphTonemapNode": {
                "Name": "Tonemap",
                "Material": "../Materials/tonemap.rematerial",
                "TechniqueName": "fullscreen",
                "TonemapUserParameters": {
                    "ToeStrength": 0,
                    "ToeLength": 0,
                    "ShoulderStrength": 0,
                    "ShoulderLength": 0,
                    "ShoulderAngle": 0,
                    "Gamma": 1,
                    "Exposure": 0.0
                },
                "TargetReads": [
                    {
                        "TargetHandle": "MotionBlurResultColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "TonemapResultColor",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "MotionBlurResultColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "CustomTint",
                "Material": "../Materials/customTint.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "TonemapResultColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "TintResultColor",
                        "Settings": {
                            "AttachmentIndex": 0,
                            "ClearColor": [0.0, 0.0, 0.0, 0.0]
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "TonemapResultColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "LensDistortion",
                "Material": "../Materials/lensDistortion.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "TintResultColor"
                    },
                    {
                        "TargetHandle": "DepthTarget"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "LensDistortionOutputColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "TintResultColor"
                    },
                    {
                        "BindingName": "inputDepth",
                        "TargetHandle": "DepthTarget"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "LensDistortionMask",
                "Material": "../Materials/lensDistortionMask.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "PostProcessInputMask"
                    },
                    {
                        "TargetHandle": "DepthTarget"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "LensDistortionOutputMask",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "PostProcessInputMask"
                    },
                    {
                        "BindingName": "inputDepth",
                        "TargetHandle": "DepthTarget"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "Vignette",
                "Material": "../Materials/vignette.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "LensDistortionOutputColor"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "VignetteResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "LensDistortionOutputColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "VignetteMask",
                "Material": "../Materials/vignette.rematerial",
                "TechniqueName": "fullscreen",
                "TargetReads": [
                    {
                        "TargetHandle": "LensDistortionOutputMask"
                    }
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "VignetteResultMask",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "LensDistortionOutputMask"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "cameraNoise",
                "Material": "../Materials/davinciCameraNoise.rematerial",
                "TechniqueName": "arCameraNoiseTechnique",
                "TargetReads": [
                    {
                        "TargetHandle": "VignetteResultColor"
                    },
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "CameraNoiseResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "VignetteResultColor"
                    }
                ]
            }
        },
        {
            "Fullscreen": {
                "Name": "cameraNoiseRectilinear",
                "Material": "../Materials/davinciCameraNoise.rematerial",
                "TechniqueName": "arCameraNoiseTechnique",
                "TargetReads": [
                    {
                        "TargetHandle": "TintResultColor"
                    },
                ],
                "TargetWrites": [
                    {
                        "TargetHandle": "CameraNoiseRectilinearResultColor",
                        "Settings": {
                            "AttachmentIndex": 0
                        }
                    }
                ],
                "RenderGraphTextureCommands": [
                    {
                        "BindingName": "inputColor",
                        "TargetHandle": "TintResultColor"
                    }
                ]
            }
        },
    ],
    "Inputs": [
        {
            "Lane": "Color",
            "Target": "PostProcessInputColor",
            "InputOnly": true
        },
        {
            "Lane": "SegmentationMaskLane",
            "Target": "PostProcessInputMask",
            "InputOnly": true
        },
        {
            "Lane": "Depth",
            "Target": "DepthTarget"
        }
    ],
    "PropertyInheritance": [
        {
            "Lane": "Color",
            "Target": "DownsampledTarget"
        },
        {
            "Lane": "Color",
            "Target": "BloomResultColor"
        },
        {
            "Lane": "Color",
            "Target": "TonemapResultColor"
        },
        {
            "Lane": "Color",
            "Target": "TintResultColor"
        },
        {
            "Lane": "Color",
            "Target": "HorizontalGaussianBlurResultColor"
        },
        {
            "Lane": "Color",
            "Target": "VerticalGaussianBlurResultColor"
        },
        {
            "Lane": "Color",
            "Target": "MotionBlurResultColor"
        },
        {
            "Lane": "Color",
            "Target": "VignetteResultColor"
        },
        {
            "Lane": "Color",
            "Target": "CameraNoiseResultColor"
        },
        {
            "Lane": "Color",
            "Target": "CameraNoiseRectilinearResultColor"
        },
        {
            "Lane": "Color",
            "Target": "LensDistortionOutputColor"
        },
        {
            "Lane": "SegmentationMaskLane",
            "Target": "LensDistortionOutputMask"
        },
        {
            "Lane": "SegmentationMaskLane",
            "Target": "VignetteResultMask"
        },
    ],
    "Outputs": [
        {
            "Lane": "DistortedColorLane",
            "Target": "CameraNoiseResultColor"
        },
        {
            "Lane": "DistortedMaskLane",
            "Target": "VignetteResultMask"
        },
        {
            "Lane": "Color",
            "Target": "CameraNoiseRectilinearResultColor"
        },
        {
            "Lane": "Depth",
            "Target": "DepthTarget"
        },
    ],
    "Operations": [
        {
            "RenderGraphSpecifyLaneOperation": {
                "Lane": "Color"       
            }
        }
    ]
}
