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.
509 lines
21 KiB
Plaintext
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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|