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/LightCullingParent.pass

161 lines
6.1 KiB
Plaintext

{
"Type": "JsonSerialization",
"Version": 1,
"ClassName": "PassAsset",
"ClassData": {
"PassTemplate": {
"Name": "LightCullingParentTemplate",
"PassClass": "ParentPass",
"Slots": [
// Inputs...
{
"Name": "SkinnedMeshes",
"SlotType": "Input"
},
{
"Name": "DepthMSAA",
"SlotType": "Input"
},
// Outputs...
{
"Name": "TileLightData",
"SlotType": "Output"
},
{
"Name": "LightListRemapped",
"SlotType": "Output"
},
// SwapChain here is only used to reference the frame height and format
{
"Name": "SwapChainOutput",
"SlotType": "InputOutput"
}
],
"Connections": [
{
"LocalSlot": "TileLightData",
"AttachmentRef": {
"Pass": "LightCullingRemapPass",
"Attachment": "TileLightData"
}
},
{
"LocalSlot": "LightListRemapped",
"AttachmentRef": {
"Pass": "LightCullingRemapPass",
"Attachment": "LightListRemapped"
}
}
],
"PassRequests": [
// The light culling system can do highly accurate culling of transparent objects but it needs
// more depth information than the opaque geometry pass can provide
// Specifically the minimum and maximum depth of transparent objects
{
"Name": "DepthTransparentMinPass",
"TemplateName": "DepthPassTemplate",
"PassData": {
"$type": "RasterPassData",
"DrawListTag": "depthTransparentMin",
"PipelineViewTag": "MainCamera"
},
"Connections": [
{
"LocalSlot": "SkinnedMeshes",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "SkinnedMeshes"
}
}
]
},
{
"Name": "DepthTransparentMaxPass",
"TemplateName": "DepthMaxPassTemplate",
"PassData": {
"$type": "RasterPassData",
"DrawListTag": "depthTransparentMax",
"PipelineViewTag": "MainCamera"
},
"Connections": [
{
"LocalSlot": "SkinnedMeshes",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "SkinnedMeshes"
}
}
]
},
{
"Name": "LightCullingTilePreparePass",
"TemplateName": "LightCullingTilePrepareMSAATemplate",
"Connections": [
{
"LocalSlot": "Depth",
"AttachmentRef": {
"Pass": "Parent",
"Attachment": "DepthMSAA"
}
},
{
"LocalSlot": "DepthTransparentMin",
"AttachmentRef": {
"Pass": "DepthTransparentMinPass",
"Attachment": "Output"
}
},
{
"LocalSlot": "DepthTransparentMax",
"AttachmentRef": {
"Pass": "DepthTransparentMaxPass",
"Attachment": "Output"
}
}
]
},
{
"Name": "LightCullingPass",
"TemplateName": "LightCullingTemplate",
"Connections": [
{
"LocalSlot": "TileLightData",
"AttachmentRef": {
"Pass": "LightCullingTilePreparePass",
"Attachment": "TileLightData"
}
}
]
},
{
"Name": "LightCullingRemapPass",
"TemplateName": "LightCullingRemapTemplate",
"Connections": [
{
"LocalSlot": "TileLightData",
"AttachmentRef": {
"Pass": "LightCullingTilePreparePass",
"Attachment": "TileLightData"
}
},
{
"LocalSlot": "LightCount",
"AttachmentRef": {
"Pass": "LightCullingPass",
"Attachment": "LightCount"
}
},
{
"LocalSlot": "LightList",
"AttachmentRef": {
"Pass": "LightCullingPass",
"Attachment": "LightList"
}
}
]
}
]
}
}
}