You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Gems/Atom/Feature/Common/Assets/Passes/OpaqueParent.pass

509 lines
21 KiB
Plaintext

{
"Type": "JsonSerialization",
"Version": 1,
"ClassName": "PassAsset",
"ClassData": {
"PassTemplate": {
"Name": "OpaqueParentTemplate",
"PassClass": "ParentPass",
"Slots": [
// Inputs...
{
"Name": "DirectionalShadowmap",
"SlotType": "Input"
},
{
"Name": "DirectionalESM",
"SlotType": "Input"
},
{
"Name": "ProjectedShadowmap",
"SlotType": "Input"
},
{
"Name": "ProjectedESM",
"SlotType": "Input"
},
{
"Name": "TileLightData",
"SlotType": "Input"
},
{
"Name": "LightListRemapped",
"SlotType": "Input"
},
{
"Name": "DepthLinear",
"SlotType": "Input"
},
// Input/Outputs...
{
"Name": "DepthStencil",
"SlotType": "InputOutput"
},
// Outputs...
{
"Name": "Output",
"SlotType": "Output"
},
// SwapChain here is only used to reference the frame height and format
{
"Name": "SwapChainOutput",
"SlotType": "InputOutput"
}
],
"Connections": [
{
"LocalSlot": "Output",
"AttachmentRef": {
"Pass": "DiffuseSpecularMergePass",
"Attachment": "Output"
}
}
],
"PassRequests": [
{
"Name": "ForwardMSAAPass",
"TemplateName": "ForwardMSAAPassTemplate",
"Connections": [
// Inputs...
{
"LocalSlot": "DirectionalLightShadowmap",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DirectionalShadowmap"
}
},
{
"LocalSlot": "ExponentialShadowmapDirectional",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DirectionalESM"
}
},
{
"LocalSlot": "ProjectedShadowmap",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "ProjectedShadowmap"
}
},
{
"LocalSlot": "ExponentialShadowmapProjected",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "ProjectedESM"
}
},
{
"LocalSlot": "TileLightData",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "TileLightData"
}
},
{
"LocalSlot": "LightListRemapped",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "LightListRemapped"
}
},
// Input/Outputs...
{
"LocalSlot": "DepthStencilInputOutput",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DepthStencil"
}
}
],
"PassData": {
"$type": "RasterPassData",
"DrawListTag": "forward",
"PipelineViewTag": "MainCamera",
"PassSrgShaderAsset": {
"FilePath": "Shaders/ForwardPassSrg.shader"
}
}
},
{
"Name": "ForwardSubsurfaceMSAAPass",
"TemplateName": "ForwardSubsurfaceMSAAPassTemplate",
"Connections": [
// Inputs...
{
"LocalSlot": "DirectionalLightShadowmap",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DirectionalShadowmap"
}
},
{
"LocalSlot": "ExponentialShadowmapDirectional",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DirectionalESM"
}
},
{
"LocalSlot": "ProjectedShadowmap",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "ProjectedShadowmap"
}
},
{
"LocalSlot": "ExponentialShadowmapProjected",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "ProjectedESM"
}
},
{
"LocalSlot": "TileLightData",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "TileLightData"
}
},
{
"LocalSlot": "LightListRemapped",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "LightListRemapped"
}
},
// Input/Outputs...
{
"LocalSlot": "DepthStencilInputOutput",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DepthStencil"
}
},
{
"LocalSlot": "DiffuseOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "DiffuseOutput"
}
},
{
"LocalSlot": "SpecularOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "SpecularOutput"
}
},
{
"LocalSlot": "AlbedoOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "AlbedoOutput"
}
},
{
"LocalSlot": "SpecularF0Output",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "SpecularF0Output"
}
},
{
"LocalSlot": "NormalOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "NormalOutput"
}
}
],
"PassData": {
"$type": "RasterPassData",
"DrawListTag": "forwardWithSubsurfaceOutput",
"PipelineViewTag": "MainCamera",
"PassSrgShaderAsset": {
"FilePath": "Shaders/ForwardPassSrg.shader"
}
}
},
{
"Name": "DiffuseGlobalIlluminationPass",
"TemplateName": "DiffuseGlobalIlluminationPassTemplate",
"Connections": [
{
"LocalSlot": "DiffuseInputOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "DiffuseOutput"
}
},
{
"LocalSlot": "AlbedoInput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "AlbedoOutput"
}
},
{
"LocalSlot": "NormalInput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "NormalOutput"
}
},
{
"LocalSlot": "DepthStencilInputOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "DepthStencilInputOutput"
}
}
]
},
{
"Name": "ReflectionsPass",
"TemplateName": "ReflectionsParentPassTemplate",
"Enabled": true,
"Connections": [
{
"LocalSlot": "NormalInput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "NormalOutput"
}
},
{
"LocalSlot": "SpecularF0Input",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "SpecularF0Output"
}
},
{
"LocalSlot": "AlbedoInput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "AlbedoOutput"
}
},
{
"LocalSlot": "DepthStencilInputOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "DepthStencilInputOutput"
}
},
{
"LocalSlot": "SpecularInputOutput",
"AttachmentRef": {
"Pass": "ForwardMSAAPass",
"Attachment": "SpecularOutput"
}
}
]
},
{
"Name": "SkyBoxPass",
"TemplateName": "SkyBoxTwoOutputsTemplate",
"Enabled": true,
"Connections": [
{
"LocalSlot": "SpecularInputOutput",
"AttachmentRef": {
"Pass": "ReflectionsPass",
"Attachment": "SpecularInputOutput"
}
},
{
"LocalSlot": "ReflectionInputOutput",
"AttachmentRef": {
"Pass": "ReflectionsPass",
"Attachment": "ReflectionOutput"
}
},
{
"LocalSlot": "SkyBoxDepth",
"AttachmentRef": {
"Pass": "ReflectionsPass",
"Attachment": "DepthStencilInputOutput"
}
}
]
},
{
"Name": "ReflectionCompositePass",
"TemplateName": "ReflectionCompositePassTemplate",
"Connections": [
{
"LocalSlot": "ReflectionInput",
"AttachmentRef": {
"Pass": "SkyBoxPass",
"Attachment": "ReflectionInputOutput"
}
},
{
"LocalSlot": "SpecularInputOutput",
"AttachmentRef": {
"Pass": "SkyBoxPass",
"Attachment": "SpecularInputOutput"
}
},
{
"LocalSlot": "DepthStencilInputOutput",
"AttachmentRef": {
"Pass": "SkyBoxPass",
"Attachment": "SkyBoxDepth"
}
}
],
"PassData": {
"$type": "FullscreenTrianglePassData",
"ShaderAsset": {
"FilePath": "Shaders/Reflections/ReflectionComposite.shader"
},
"StencilRef": 1, // See RenderCommon.h and ReflectionComposite.shader
"PipelineViewTag": "MainCamera"
}
},
{
"Name": "MSAAResolveDiffusePass",
"TemplateName": "MSAAResolveColorTemplate",
"Connections": [
{
"LocalSlot": "Input",
"AttachmentRef": {
"Pass": "DiffuseGlobalIlluminationPass",
"Attachment": "DiffuseInputOutput"
}
}
]
},
{
"Name": "MSAAResolveSpecularPass",
"TemplateName": "MSAAResolveCustomTemplate",
"Connections": [
{
"LocalSlot": "Input",
"AttachmentRef": {
"Pass": "ReflectionCompositePass",
"Attachment": "SpecularInputOutput"
}
}
],
"PassData": {
"$type": "FullscreenTrianglePassData",
"ShaderAsset": {
"FilePath": "Shaders/PostProcessing/MSAAResolveCustom.shader"
},
"PipelineViewTag": "MainCamera",
"ShaderDataMappings": {
"UintMappings": [
{
"Name": "enableNeighborClamping",
"Value": 1
}
],
"FloatMappings": [
{
"Name": "maxNeighborContrast",
"Value": 1.5
}
]
}
}
},
{
"Name": "MSAAResolveScatterDistancePass",
"TemplateName": "MSAAResolveColorTemplate",
"Connections": [
{
"LocalSlot": "Input",
"AttachmentRef": {
"Pass": "ForwardSubsurfaceMSAAPass",
"Attachment": "ScatterDistanceOutput"
}
}
]
},
{
"Name": "SubsurfaceScatteringPass",
"TemplateName": "SubsurfaceScatteringPassTemplate",
"Enabled": true,
"Connections": [
{
"LocalSlot": "InputDiffuse",
"AttachmentRef": {
"Pass": "MSAAResolveDiffusePass",
"Attachment": "Output"
}
},
{
"LocalSlot": "InputLinearDepth",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DepthLinear"
}
},
{
"LocalSlot": "InputScatterDistance",
"AttachmentRef": {
"Pass": "MSAAResolveScatterDistancePass",
"Attachment": "Output"
}
}
],
"PassData": {
"$type": "ComputePassData",
"ShaderAsset": {
"FilePath": "Shaders/PostProcessing/ScreenSpaceSubsurfaceScatteringCS.shader"
},
"Make Fullscreen Pass": true,
"PipelineViewTag": "MainCamera"
}
},
{
"Name": "Ssao",
"TemplateName": "SsaoParentTemplate",
"Connections": [
{
"LocalSlot": "LinearDepth",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DepthLinear"
}
},
{
"LocalSlot": "Modulate",
"AttachmentRef": {
"Pass": "SubsurfaceScatteringPass",
"Attachment": "Output"
}
}
]
},
{
"Name": "DiffuseSpecularMergePass",
"TemplateName": "DiffuseSpecularMergeTemplate",
"Connections": [
{
"LocalSlot": "InputDiffuse",
"AttachmentRef": {
"Pass": "Ssao",
"Attachment": "Output"
}
},
{
"LocalSlot": "InputSpecular",
"AttachmentRef": {
"Pass": "MSAAResolveSpecularPass",
"Attachment": "Output"
}
}
]
}
]
}
}
}