{ "Type": "JsonSerialization", "Version": 1, "ClassName": "PassAsset", "ClassData": { "PassTemplate": { "Name": "ForwardSubpassExampleTemplate", "PassClass": "RasterPass", "Slots": [ // Inputs... { "Name": "BRDFTextureInput", "ShaderInputName": "m_brdfMap", "SlotType": "Input", "ScopeAttachmentUsage": "Shader" }, // Outputs... { "Name": "DepthOutput", "SlotType": "Output", "ScopeAttachmentUsage": "DepthStencil", // Specifying the AspectFlags is very important // when using Subpasses because it avoids Validation errors. "ImageViewDesc": { "AspectFlags": [ "Depth" ] }, "LoadStoreAction": { "ClearValue": { "Type": "DepthStencil" }, "LoadAction": "Clear", "LoadActionStencil": "DontCare", "StoreActionStencil": "DontCare" } }, { "Name": "LightingOutput", "SlotType": "Output", "ScopeAttachmentUsage": "RenderTarget", "LoadStoreAction": { "ClearValue": { "Value": [ 0.0, 0.0, 0.0, 0.0 ] }, "LoadAction": "Clear", "StoreAction": "Store" } } ], "ImageAttachments": [ { "Name": "DepthAttachment", "SizeSource": { "Source": { "Pass": "Parent", "Attachment": "PipelineOutput" } }, "ImageDescriptor": { "Format": "D32_FLOAT_S8X24_UINT", "SharedQueueMask": "Graphics" } }, { "Name": "BRDFTexture", "Lifetime": "Imported", "AssetRef": { "FilePath": "Textures/BRDFTexture.attimage" } } ], "Connections": [ { "LocalSlot": "DepthOutput", "AttachmentRef": { "Pass": "This", "Attachment": "DepthAttachment" } }, { "LocalSlot": "LightingOutput", "AttachmentRef": { "Pass": "Parent", "Attachment": "PipelineOutput" } }, { "LocalSlot": "BRDFTextureInput", "AttachmentRef": { "Pass": "This", "Attachment": "BRDFTexture" } } ] } } }