diff --git a/code/World/Shared/Passes/PostProcessPass.cpp b/code/World/Shared/Passes/PostProcessPass.cpp index 54d8b76a7f..5f604a63f6 100644 --- a/code/World/Shared/Passes/PostProcessPass.cpp +++ b/code/World/Shared/Passes/PostProcessPass.cpp @@ -166,7 +166,7 @@ void PostProcessPass::setup( uint32_t frameCount, render::RenderGraph& renderGraph, render::handle_t gbufferTargetSetId, - const DoubleBufferedTarget& velocityTargetSetId, + render::handle_t velocityTargetSetId, const DoubleBufferedTarget& visualTargetSetId, render::handle_t outputTargetSetId ) const @@ -192,8 +192,7 @@ void PostProcessPass::setup( igctx.associateTextureTargetSet(s_handleInputColorLast, visualTargetSetId.previous, 0); igctx.associateTextureTargetSet(s_handleInputDepth, gbufferTargetSetId, 0); igctx.associateTextureTargetSet(s_handleInputNormal, gbufferTargetSetId, 1); - igctx.associateTextureTargetSet(s_handleInputVelocity, velocityTargetSetId.current, 0); - igctx.associateTextureTargetSet(s_handleInputVelocityLast, velocityTargetSetId.previous, 0); + igctx.associateTextureTargetSet(s_handleInputVelocity, velocityTargetSetId, 0); igctx.associateTexture(s_handleInputColorGrading, m_colorGrading); // Expose gamma, exposure and jitter. diff --git a/code/World/Shared/Passes/PostProcessPass.h b/code/World/Shared/Passes/PostProcessPass.h index d5f18d09a2..25a15c0849 100644 --- a/code/World/Shared/Passes/PostProcessPass.h +++ b/code/World/Shared/Passes/PostProcessPass.h @@ -51,7 +51,7 @@ class PostProcessPass : public Object uint32_t frameCount, render::RenderGraph& renderGraph, render::handle_t gbufferTargetSetId, - const DoubleBufferedTarget& velocityTargetSetId, + render::handle_t velocityTargetSetId, const DoubleBufferedTarget& visualTargetSetId, render::handle_t outputTargetSetId ) const; diff --git a/code/World/Shared/Passes/VelocityPass.cpp b/code/World/Shared/Passes/VelocityPass.cpp index 7282fc906b..8474ca3bf8 100644 --- a/code/World/Shared/Passes/VelocityPass.cpp +++ b/code/World/Shared/Passes/VelocityPass.cpp @@ -1,6 +1,6 @@ /* * TRAKTOR - * Copyright (c) 2023 Anders Pistol. + * Copyright (c) 2023-2024 Anders Pistol. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this @@ -31,12 +31,6 @@ namespace traktor::world const resource::Id< render::ImageGraph > c_velocityPrime(L"{CB34E98B-55C9-E447-BD59-5A1D91DCA88E}"); -const render::Handle s_handleVelocityTargetSet[] = -{ - render::Handle(L"World_VelocityTargetSet_Even"), - render::Handle(L"World_VelocityTargetSet_Odd") -}; - } T_IMPLEMENT_RTTI_CLASS(L"traktor.world.VelocityPass", VelocityPass, Object) @@ -73,7 +67,7 @@ bool VelocityPass::create(resource::IResourceManager* resourceManager, render::I return true; } -DoubleBufferedTarget VelocityPass::setup( +render::handle_t VelocityPass::setup( const WorldRenderView& worldRenderView, const GatherView& gatheredView, uint32_t frameCount, @@ -91,16 +85,12 @@ DoubleBufferedTarget VelocityPass::setup( rgtd.referenceWidthDenom = 1; rgtd.referenceHeightDenom = 1; rgtd.targets[0].colorFormat = render::TfR16G16F; - const DoubleBufferedTarget velocityTargetSetId = - { - renderGraph.addPersistentTargetSet(L"Velocity Previous", s_handleVelocityTargetSet[frameCount % 2], false, rgtd, outputTargetSetId, outputTargetSetId), - renderGraph.addPersistentTargetSet(L"Velocity Current", s_handleVelocityTargetSet[(frameCount + 1) % 2], false, rgtd, outputTargetSetId, outputTargetSetId) - }; + const render::handle_t velocityTargetSetId = renderGraph.addTransientTargetSet(L"Velocity", rgtd, outputTargetSetId, outputTargetSetId); // Add Velocity render pass. Ref< render::RenderPass > rp = new render::RenderPass(L"Velocity"); rp->addInput(gbufferTargetSetId); - rp->setOutput(velocityTargetSetId.current, render::TfDepth, render::TfColor | render::TfDepth); + rp->setOutput(velocityTargetSetId, render::TfDepth, render::TfColor | render::TfDepth); if (m_velocityPrime) { diff --git a/code/World/Shared/Passes/VelocityPass.h b/code/World/Shared/Passes/VelocityPass.h index 1fc5cd4c36..651b6f4e89 100644 --- a/code/World/Shared/Passes/VelocityPass.h +++ b/code/World/Shared/Passes/VelocityPass.h @@ -45,7 +45,7 @@ class VelocityPass : public Object bool create(resource::IResourceManager* resourceManager, render::IRenderSystem* renderSystem, const WorldCreateDesc& desc); - DoubleBufferedTarget setup( + render::handle_t setup( const WorldRenderView& worldRenderView, const GatherView& gatheredView, uint32_t frameCount, diff --git a/code/World/WorldHandles.cpp b/code/World/WorldHandles.cpp index cb1eece320..1c148e5e47 100644 --- a/code/World/WorldHandles.cpp +++ b/code/World/WorldHandles.cpp @@ -105,7 +105,6 @@ const render::Handle s_handleInputColorLast(L"InputColorLast"); const render::Handle s_handleInputDepth(L"InputDepth"); const render::Handle s_handleInputNormal(L"InputNormal"); const render::Handle s_handleInputVelocity(L"InputVelocity"); -const render::Handle s_handleInputVelocityLast(L"InputVelocityLast"); const render::Handle s_handleInputColorGrading(L"InputColorGrading"); // Persistent targets. diff --git a/code/World/WorldHandles.h b/code/World/WorldHandles.h index 5d4e17846d..e1243e85e0 100644 --- a/code/World/WorldHandles.h +++ b/code/World/WorldHandles.h @@ -115,7 +115,6 @@ extern const render::Handle T_DLLCLASS s_handleInputColorLast; extern const render::Handle T_DLLCLASS s_handleInputDepth; extern const render::Handle T_DLLCLASS s_handleInputNormal; extern const render::Handle T_DLLCLASS s_handleInputVelocity; -extern const render::Handle T_DLLCLASS s_handleInputVelocityLast; extern const render::Handle T_DLLCLASS s_handleInputColorGrading; // Persistent targets. diff --git a/code/World/WorldTypes.cpp b/code/World/WorldTypes.cpp index 9cb3938337..c0ab1f0b51 100644 --- a/code/World/WorldTypes.cpp +++ b/code/World/WorldTypes.cpp @@ -19,11 +19,26 @@ const EntityState EntityState::All = { true, true, true }; Vector2 jitter(int32_t count) { - const Vector2 kernelSize(0.5f, 0.5f); - return Vector2( - (float)((count / 2) & 1) * kernelSize.x - (2.0f * kernelSize.x) / 3.0f, - (float)(count & 1) * kernelSize.y - (2.0f * kernelSize.y) / 3.0f - ); + const static Vector2 c_halton[] = + { + Vector2(0.500000f, 0.333333f), + Vector2(0.250000f, 0.666667f), + Vector2(0.750000f, 0.111111f), + Vector2(0.125000f, 0.444444f), + Vector2(0.625000f, 0.777778f), + Vector2(0.375000f, 0.222222f), + Vector2(0.875000f, 0.555556f), + Vector2(0.062500f, 0.888889f), + Vector2(0.562500f, 0.037037f), + Vector2(0.312500f, 0.370370f), + Vector2(0.812500f, 0.703704f), + Vector2(0.187500f, 0.148148f), + Vector2(0.687500f, 0.481481f), + Vector2(0.437500f, 0.814815f), + Vector2(0.937500f, 0.259259f), + Vector2(0.031250f, 0.592593f) + }; + return c_halton[count % sizeof_array(c_halton)] - Vector2(0.5f, 0.5f); } } diff --git a/data/Source/System/World/Antialias/Shaders/Taa/Taa.xdi b/data/Source/System/World/Antialias/Shaders/Taa/Taa.xdi index 6df39a9dba..621dfee61d 100644 --- a/data/Source/System/World/Antialias/Shaders/Taa/Taa.xdi +++ b/data/Source/System/World/Antialias/Shaders/Taa/Taa.xdi @@ -5,8 +5,8 @@ {563711FC-4CBE-D842-8C2C-91C25DD6891A} - 3913 - 935 + 3249 + 41 Default @@ -48,41 +48,12 @@ 2147483648 Undefined - - {D0C9E36A-0D51-AE40-91E4-6DAE6A84F8B4} - - - 492 - 404 - - FtLinear - FtLinear - FtLinear - AdClamp - AdClamp - AdClamp - CfNone - 0 - true - false - - - {4788F4B4-9A36-B944-974F-CFBC98E7AC4F} - - - 293 - 366 - - Current - Texture2D - Frame - {CCA3BBF6-51D2-BB4B-AE3B-1FF6F4F599BA} - -1497 - -107 + 2095 + 100 {6DE0FC81-3E61-0D45-81F4-8FB4B950B941} @@ -98,65 +69,95 @@ - - {AF3F7C3F-7016-C245-92F9-702C25A11B07} - - - 2540 - 599 - - - - {5DDC7178-F799-1C41-B9B0-F4E8C7D60ED1} - - - 483 - 564 - - FtLinear - FtLinear - FtLinear - AdClamp - AdClamp - AdClamp - CfNone - 0 - true - false - - - {83CC3732-1805-2842-A54E-CED51ABF0829} - - - 316 - 556 - - Last - Texture2D - Frame - - - {7DCE08CC-0DB0-4A44-A346-C353A5B40218} + + {ADFC02EA-3C36-5949-BA66-CED9005184D7} - -133 - 801 + 2320 + 104 + L_TexCoord - - {3971830A-1A64-BA42-B7F7-8D8BC6470ACD} + + {DD1B6462-8F16-B74E-8887-7EDC60F9E483} - -421 - 856 + 2880 + 36 + TAA + + + 1 + 1 + 1 + + + {0364EDD7-171A-BE4F-8FCA-124DB46AE05A} + + + + {B6F31EF6-B6E7-BE44-9733-2999512D38E7} + CurrentFrame + + + {85E326C9-5680-1C44-A824-E2506DA687F9} + PreviousFrame + + + {06BA6D81-837D-7841-A975-7F8686E992EC} + Velocity + + + {A0205531-6F96-8843-80FA-ADF61F76F607} + Depth + + + {12072C08-E204-3446-9E5A-6C7991909AA7} + PointSampler + + + {5CFD3E61-1518-AA44-88AB-61F520BD540F} + Jitter + + + {B2C6362A-7DB1-2B48-B5DE-8E83E09A83E6} + UV + + + {4021708D-BE5D-F345-A530-B9C0CD9C8806} + LinearSampler + + + + + {A094CDC4-B589-E846-8E64-75BB7F4527BF} + Output + Vector + + + - - {8DA5602B-E6F3-F145-A055-E92E4B010D61} + + {9BEA1082-5ABA-E349-803E-8F0C89429CFB} - -717 - 791 + 2578 + 151 FtPoint FtPoint @@ -170,81 +171,79 @@ false - {5E32616E-CA9E-9A49-90E8-F89D78A641C2} + {40658543-2850-D54B-8061-7776F36EA408} - -920 - 793 + 2608 + -21 - Velocity + Current Texture2D Frame - - {45D4C386-83A8-9444-940D-F9CC9DB1B566} - - - -924 - 935 - - -1, 1, 0, 0 - - - {127A1252-8676-A246-9BA7-8731FB9763AA} + + {6970CCDB-C0A0-014F-B8BF-44E801105694} - 1035 - 825 + 2616 + 22 - L_ValidRange + Last + Texture2D + Frame - - {2ECBECBE-88A0-A441-8DAE-938B5723D766} + + {0AB838FE-0EFA-6147-AA40-F0A603BF3BA6} - 2135 - -514 + 2608 + 65 - L_SampleOffset + Velocity + Texture2D + Frame - - {67C77454-3972-174C-BFFA-61A5D8512B8F} + + {F77CC690-64D3-234A-9A17-65785F782009} - 1929 - -491 + 2616 + 108 + Depth + Texture2D + Frame - - {3700E8D6-5E9F-2345-9A47-296440663250} + + {7732D799-0740-AA47-BC7C-9E32A75C9A4D} - 1621 - -448 + 2592 + 194 - -1 - 1 - -1 - 1 + World_Jitter + Vector + Draw - - {9504E289-E91F-B543-B065-A9960F59B73D} + + {3EA1CC8E-51C0-B64C-B4A4-2721B40ABAAA} - 923 - -496 + 2592 + 237 + L_TexCoord - - {CE9A1E12-AA87-9145-A1AA-7DC6235F47EE} + + {96D9F71B-8D6A-5343-B418-EAC9460BAB2B} - 219 - -481 + 2578 + 282 - FtPoint - FtPoint - FtPoint + FtLinear + FtLinear + FtLinear AdClamp AdClamp AdClamp @@ -253,2125 +252,106 @@ true false - - {22EEADFC-D014-074F-8414-D448C86E47A0} - - - 29 - -493 - - Current - Texture2D - Frame - - - {6DDE4ECC-1B78-6549-9561-340AA2D8ADC3} - - - -20 - -439 - - - - {02B47933-D614-8941-9995-9B33C3057053} - - - -279 - -507 - - L_SampleOffset - - - {20A79747-6BED-6545-B77B-EB5D6EEAC6E4} - - - -1040 - -528 - - - - {85686414-8F9F-2448-936F-6C528C9ABE30} - - - -1224 - -538 - - 1 + + + + + + {75B6E28A-E83A-1B4B-9312-590487A95175} + + + + {11585EBC-914D-4E6D-A10D-D01694FF9840} + - - {07425335-55C2-FF46-BB6A-AEC3A729FB4D} - - - -1380 - -472 - + + + + {A094CDC4-B589-E846-8E64-75BB7F4527BF} + + + + {7174FE5A-D079-4452-AFEF-9FC2BCC2900F} + - - {D059DFE7-5001-204A-8032-A9EFD12F561A} - - - -1554 - -428 - - Current - Texture2D - Frame + + + + {82C966B2-7B19-48B2-8FE0-B85FF4E3C504} + + + + {12072C08-E204-3446-9E5A-6C7991909AA7} + - - {E5E80BCA-3538-B245-A242-DD3A8DBFEBAF} - - - 493 - -376 - - L_ValidRange + + + + {1E6639B6-8B58-4694-99E7-C058E3583522} + + + + {B6F31EF6-B6E7-BE44-9733-2999512D38E7} + - - {F176B428-2BB4-2E4C-B071-8335ECB2D3B4} - - - 923 - -392 - + + + + {1E6639B6-8B58-4694-99E7-C058E3583522} + + + + {85E326C9-5680-1C44-A824-E2506DA687F9} + - - {7FD222AD-8997-4B48-8AA6-F03CB2127070} - - - 1286 - -342 - - 1000, 1000, -1000, -1000 + + + + {1E6639B6-8B58-4694-99E7-C058E3583522} + + + + {06BA6D81-837D-7841-A975-7F8686E992EC} + - - {B99D26B3-3E7D-7245-AADF-06B9381C103B} - - - 2032 - -342 - - L_ValidRange + + + + {1E6639B6-8B58-4694-99E7-C058E3583522} + + + + {A0205531-6F96-8843-80FA-ADF61F76F607} + - - {ADFC02EA-3C36-5949-BA66-CED9005184D7} - - - -1272 - -103 - - L_TexCoord + + + + {1E6639B6-8B58-4694-99E7-C058E3583522} + + + + {5CFD3E61-1518-AA44-88AB-61F520BD540F} + - - {044FC55E-4BD5-FB47-B743-5FD23763C53C} - - - -983 - 843 - - L_TexCoordCurrent - - - {7F954C5F-2A98-2D43-9522-65EC63422F4D} - - - 489 - -506 - - {C450866D-F6EE-8443-AC4E-5078D8A6D063} - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - Input - false - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - Output - - - - - - {AD0AB30F-20DB-1045-A55F-378C0F70C169} - - - 702 - -459 - - yz - - - {E570FA6D-B032-4243-A4FE-EAC6254F3D9D} - - - 705 - -403 - - xy - - - {E7ADA07F-8294-A243-BA52-91E942C90DB2} - - - 707 - -342 - - zw - - - {3468ADC9-06F8-B747-8EA6-F4B9C5189D73} - - - - - 1355 - -446 - - - - {561EDE6C-A122-F941-B939-C835ED5C89A4} - - - 1149 - -452 - - xy00 - - - {A054B298-89F0-4D40-8E29-0B1305774260} - - - 1150 - -394 - - 00xy - - - {826A7D47-43FF-834F-A966-0A17A1EA12AF} - - - 794 - 636 - - {C450866D-F6EE-8443-AC4E-5078D8A6D063} - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - Input - false - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - Output - - - - - - {7602FB25-8F9D-CB48-AF40-98D40931C352} - - - 1417 - 729 - - Clip - - - - - {4990718C-4C4E-6C41-A192-06B9DB382674} - Input - - - {43265DB8-F1D3-4790-B4DD-76A5C3F18385} - Min - - - {45CFAC28-9892-4F37-8F71-5441EEB79CEC} - Max - - - - - {EF352FEC-AE3E-0346-905B-4BBADD44DDAE} - Output - Vector - - - - - - {C9F62274-43B1-2044-93F5-5611B2B9A7E1} - - - 1207 - 807 - - xy - - - {1D0358DD-0CA8-5842-A360-B965647CAA08} - - - 1208 - 859 - - zw - - - {34A66F06-B1F7-814C-B2EB-89C2A35C6D72} - - - 1683 - 678 - - {DF2625BA-D796-DD44-999C-B56719B7D3FD} - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - Input - false - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - Output - - - - - - {86BD4AB5-FEF4-594D-95A8-BFE7F2A1C4C7} - - - 1080 - 665 - - xyz0 - - - {C290DAFF-AE1C-8745-BAD3-FE6E5E3745E5} - - - -1200 - -472 - - xy - - - {4C95E01C-0C2B-FF48-8F93-AC3AA0E5DD43} - - - -699 - 936 - - - - {CEDBCA44-0B79-C444-8BC2-9D2BE314B1CC} - - - -896 - 983 - - 0.5 - - - {4623395D-DE71-0845-B833-AFED3B1E3080} - - - -116 - 533 - - FtPoint - FtPoint - FtPoint - AdClamp - AdClamp - AdClamp - CfNone - 0 - true - false - - - {202E8834-18D9-6744-A748-07362A64B818} - - - -236 - -351 - - L_TexCoordCurrent - - - {A564B554-6AEA-DA4F-AA0E-4AF7B3291FAE} - - - 154 - 444 - - L_TexCoordCurrent - - - {16E4D9EC-7D60-1644-BA9B-34609C39445B} - - - 1401 - 1001 - - Edge clip - - - - - {09FABB3A-FD83-F84B-8E45-22F756115DFB} - Input - - - - - {1114DD08-E619-F047-A496-06E0D9A7EFDB} - Output - Scalar - - - - - - {7C2D01BC-DC25-D641-B552-C3F08533A4AA} - - - 2994 - 896 - - BrDynamic - CoGreater - - - {DA60C80A-4BDB-374E-81C5-4A8BE91EA128} - - - 2711 - 947 - - 0.5 - - - {FEF6A900-BA58-4348-B830-340781584B7B} - - - 2321 - 474 - - - - {319500E8-315E-413A-BA30-3811372DE313} - - - -935 - 162 - - L_TexCoordCurrent - - - {B2438A1E-9E12-4D8F-8BF1-CFF95ADA81F9} - - - -1396 - 119 - - L_TexCoord - - - {D4BD688B-09A2-4778-8027-75175DBA1BDE} - - - -1558 - 182 - - zw - - - {3C6B9C67-775F-4C06-8A30-EF0B99CEA8F3} - - - -2056 - 190 - - World_Jitter - Vector - Draw - - - {E96643F5-E645-491D-A243-CC60D87F4BF5} - - - -1169 - 125 - - - - {D2802D68-FF27-4E50-A996-DF1D91138A6F} - - - -392 - 742 - - L_TexCoord - - - {843CAA86-F8CA-4C3F-8C76-9CE8AFDB5A3F} - - - -1823 - 225 - - - - {DC5758C6-E32C-402E-81C2-D462798A9D40} - - - -2054 - 282 - - -1 - - - {0BF975D2-4C48-481B-AFA9-A7EDD5356533} - - - 1660 - 432 - - 4 - - - {7927F1E1-9F03-42F0-B00B-B2BF946EB57A} - - - 1857 - 361 - - {AA010A65-F78F-7447-A6BB-8FBE0A238745} - - - {AF129CBB-A121-0C41-9FC0-F45024F8FEF8} - Input - false - - - - - {8994214F-DDF0-9442-82B0-D2970079A48D} - Output - - - - - - {351074F6-CC34-43DA-8D0A-F55F5D620D24} - - - 2083 - 423 - - - - {D460B0CB-85B9-1E47-AB8F-BB2BA992C3EC} - - - 590 - 1270 - - {F94569E5-AAAB-DC4B-BC80-A499121F0295} - - - {4D17834E-31F4-E84F-A53E-EE7D783BD8F9} - Input - false - - - - - {59A0CAB3-F7AE-5242-8451-C868437381A0} - Output - - - - - - {590A793B-67F7-D24D-BD2A-74A7BB767873} - - - -337 - 1367 - - xy - - - {72AF87B1-DF6F-2B45-B868-38C64B3C12F7} - - - 801 - 1235 - - 0 - 1 - - - {08AE6511-E4FC-D447-B734-52055EB1BAEA} - - - 82 - 1268 - - - - {C4B34836-5488-CB4F-B17E-6945BC587C7E} - - - 104 - 1354 - - 1000 - - - {EB97A494-5988-144A-A653-CC75B37A19F2} - - - 334 - 1292 - - - - {8FE32E53-496F-3E4E-B65A-B7AA9946E810} - - - 1342 - 1379 - - Confidence - - - {731A347D-3149-9440-B1D0-923394344CAB} - - - 2092 - 569 - - Confidence - - - {20646246-A61B-684B-BB08-9DD58D6D8E4F} - - - -854 - 1390 - - VelocityLast - Texture2D - Frame - - - {DEC2D6FB-F855-E841-AF48-FBE487842580} - - - -638 - 1392 - - FtPoint - FtPoint - FtPoint - AdClamp - AdClamp - AdClamp - CfNone - 0 - true - false - - - {AFBEED40-F0CA-DB4D-8D6D-B003E61F631F} - - - -339 - 1314 - - xy - - - {05BF6495-F81D-074D-AB80-551472F6C77C} - - - -172 - 1312 - - - - {80D1CD38-8DD7-CB4B-862D-4293A7B09DAD} - - - -1169 - 270 - - - - {5D3EAE72-9298-284F-B3E4-DB6CDBADB2AA} - - - -1557 - 328 - - xy - - - {95E5F6F1-C897-B640-BDBA-28D78B1EA5CE} - - - -1396 - 264 - - L_TexCoord - - - {E6693509-FDF5-A34F-AC54-F8FC1A8ACA75} - - - -935 - 307 - - L_TexCoordLast - - - {CEF6DFA4-D3F6-6B48-8289-6734D4C74771} - - - -884 - 1450 - - L_TexCoordLast - - - {FF17344D-CC9E-9242-A50F-CC6AC16D2431} - - - 1082 - 546 - - LastDepth - - - {08FD3D43-D7B0-834B-B4AD-9697EC1E22C7} - - - 870 - 524 - - w - - - {1CDDEDC9-4A8E-354E-95BC-27A64546A157} - - - 3110 - 1120 - - CurrentDepth - - - {E3BA92DF-7A69-234F-8877-D9753E9D7F36} - - - 3381 - 956 - - xyz0 - - - {2AD8E854-C5D9-D542-8F74-AD93ADD9C663} - - - 3359 - 1061 - - 000x - - - {633E81C1-EF66-854F-B1CB-51618CC4A53A} - - - 3625 - 992 - - - - {104A0078-4482-CF41-8CF4-5D328BB61771} - - - -305 - 1622 - - CurrentDepth - - - {502E7D98-1B4C-B345-8940-90AC8EB58BDB} - - - -291 - 1676 - - LastDepth - - - {0D355050-878D-0149-9A38-2267B09115B1} - - - -113 - 1626 - - - - {A95977BF-7910-B344-80FC-6442412B39A9} - - - -810 - -452 - - InvTargetSize - - - {35954C42-688A-5349-AADD-74946E2FCA54} - - - -260 - -434 - - InvTargetSize - - - {CEDE9686-4C8C-9B40-B312-53A5C2BEF807} - - - -386 - -984 - - Discontinue - - - {84205440-90DA-2849-B4EE-AAC0B2966422} - - - 91 - 1771 - - Discontinue - - - {EB4F7226-8300-6D40-93B1-3C4234715F57} - - - -712 - -988 - - DepthContinuity - - - - - {1353FCBF-3753-A842-BC6C-E849AE5F14E5} - DepthMap - - - {6C0BA7DB-7745-214B-99F1-99F8258985B4} - DepthSampler - - - {CF9D1DE7-647C-D24D-8F0C-D55FB45B5DBA} - TexCoord - - - - - {5BEE296D-10F7-DB4A-8128-BA2CED5B36F7} - Output - Scalar - - - {CEBA2219-3352-FD48-A9E5-9CE31F71383B} - CurrentDepth - Scalar - - - - - - {DF6ADE36-288B-F045-932E-545B23346B5E} - - - -862 - -1007 - - Depth - Texture2D - Frame - - - {1A0C6550-9843-B14E-BACE-4A475C0362B3} - - - -899 - -964 - - FtPoint - FtPoint - FtPoint - AdClamp - AdClamp - AdClamp - CfNone - 0 - true - false - - - {753A0801-0019-2040-A832-9EF42A6D32E2} - - - -943 - -918 - - L_TexCoordCurrent - - - {1F37AC2B-9D11-7F45-A070-868B14D6F392} - - - -386 - -940 - - CurrentDepth - - - {310C6E87-E695-7046-8C6F-B9C402D3B1F0} - - - 81 - 1644 - - Unnamed - - - - - {A3FA8175-4DBF-534D-A80F-2B72789930D6} - Input - - - - - {A6D4F032-7CF3-FC46-B6AD-291831D6B23F} - Output - Scalar - - - - - - {E71EFFF2-EE1D-E645-B9C7-AF1071036482} - - - 3288 - 700 - - Discontinue - - - {0576E611-DB3A-F145-A96E-848D598ADFFF} - - - 3496 - 746 - - xxx0 - - - {41F8596D-3BB4-E94B-B3F7-F0FEDB42E19C} - - - 3270 - 801 - - Confidence - - - {450986CA-305E-124D-948B-11D93610C571} - - - 1057 - 1334 - - - - {BA6FE810-B108-0C48-9B93-68BA618447DB} - - - 363 - 1692 - - - - {98B758B3-B689-2840-9EF1-9E4DB35C63A4} - - - 1117 - 1569 - - - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {32EB5230-1F0D-40B8-93F6-9C8E5469454E} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {8760B263-C70C-46BA-9E97-A3D6B08941E9} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {32EB5230-1F0D-40B8-93F6-9C8E5469454E} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {32EB5230-1F0D-40B8-93F6-9C8E5469454E} - - - - - - {28E6DBB6-876B-4DB2-9A84-4801CAE6A2C2} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {01C16D15-9227-4FC8-BD1E-E6B55220A259} - - - - {AE1EB082-4A05-45B9-BA6A-7F85D78DCA70} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {32EB5230-1F0D-40B8-93F6-9C8E5469454E} - - - - - - {29BA4386-B838-4550-93DF-F53D8B812C88} - - - - {6D5C5EFE-A35C-4748-B81E-B8EBACE433BC} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {4067F6C8-9404-45CA-9359-D9E2456F7431} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {3E538F69-C85C-44E2-9320-73F876288BAE} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {E2A0DADF-10C2-4699-8EA4-78AC796C5158} - - - - - - {D51E6077-37E9-4B1C-86D2-92DA544DC613} - - - - {F4874E81-9AB1-4AC9-B804-74656FC9B1B5} - - - - - - {53AF6F56-60DD-453C-A082-85C28D9D7520} - - - - {64D2F72D-2607-4893-9F25-B1EA45BB8E7B} - - - - - - {75B6E28A-E83A-1B4B-9312-590487A95175} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {A638D9DC-801B-4225-BD42-C113E75BFCB7} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {1CD3B29D-693D-4635-B49F-EF53300CAA8A} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {18238878-3A1B-43B7-967A-B4BE70B8091E} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {EF189922-9B95-4572-B8C9-E5BE23606F9C} - - - - - - {03ABBB82-6E2D-4FD8-B171-F14ECC9720DA} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {D833DB7F-13CB-42D8-8135-48F35EB1288B} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {9F45B2C3-B513-4646-B0C1-663748FD169C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {3DE04294-4DEA-4A13-A460-2274647357EA} - - - - - - {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2} - - - - {416E14C7-223F-4249-8B99-DF2D33E1925F} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {43265DB8-F1D3-4790-B4DD-76A5C3F18385} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {45CFAC28-9892-4F37-8F71-5441EEB79CEC} - - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {C6373DB1-EC15-47B5-A4B9-D301E446C95A} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {C9CC095B-00C6-4A84-88B5-2455115CAF9C} - - - - - - {EB350BD3-62DC-46F1-8339-24858AA9F964} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {4990718C-4C4E-6C41-A192-06B9DB382674} - - - - - - {D51E6077-37E9-4B1C-86D2-92DA544DC613} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {82C966B2-7B19-48B2-8FE0-B85FF4E3C504} - - - - {10F0235A-9174-4DB8-978C-FC55A07C94A2} - - - - - - {82C966B2-7B19-48B2-8FE0-B85FF4E3C504} - - - - {10F0235A-9174-4DB8-978C-FC55A07C94A2} - - - - - - {82C966B2-7B19-48B2-8FE0-B85FF4E3C504} - - - - {10F0235A-9174-4DB8-978C-FC55A07C94A2} - - - - - - {B22A3C3C-1FA6-2F49-B9B7-492A5BEAB94C} - - - - {7ACEE4C2-A92D-4E50-BFAE-C1D744BEE5E0} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {567A2DC4-F113-4DE2-917A-791917DA5DA5} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {6D5C5EFE-A35C-4748-B81E-B8EBACE433BC} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {09FABB3A-FD83-F84B-8E45-22F756115DFB} - - - - - - {1114DD08-E619-F047-A496-06E0D9A7EFDB} - - - - {70F5921B-7C4D-41E7-88F1-5A71903D2B34} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {E66A382E-EDDD-4790-B93E-5CA128757BCC} - - - - - - {0D78442F-AA88-4B95-A497-E86A86E07FB8} - - - - {6DB78B3B-C272-4243-BCDA-E31CA159D644} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {6BD21B41-32B3-4296-BE06-B5D7734CA0FB} - - - - - - {EF352FEC-AE3E-0346-905B-4BBADD44DDAE} - - - - {7D416EA5-1C2D-BD4B-92C0-3F1A9EF86EE5} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {5A25771B-894F-4D92-8D1E-FBF8449850E8} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {6D5C5EFE-A35C-4748-B81E-B8EBACE433BC} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {6D5C5EFE-A35C-4748-B81E-B8EBACE433BC} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {AF129CBB-A121-0C41-9FC0-F45024F8FEF8} - - - - - - {8994214F-DDF0-9442-82B0-D2970079A48D} - - - - {3E538F69-C85C-44E2-9320-73F876288BAE} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {C9CC095B-00C6-4A84-88B5-2455115CAF9C} - - - - - - {3B01355D-9153-4864-9B56-7D55F801BFF3} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {C55FBCBA-5E27-4B38-ACFE-831F8DB3CCA4} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {4D17834E-31F4-E84F-A53E-EE7D783BD8F9} - - - - - - {D33F8931-C90C-4EBA-8A04-A31D3E08FAB7} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {32EB5230-1F0D-40B8-93F6-9C8E5469454E} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {9E839249-E9B9-4736-8BDD-A95A1C892B42} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {6D5C5EFE-A35C-4748-B81E-B8EBACE433BC} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {AEFD686C-1E92-44B0-81E9-EA26CA3070F7} - - - - - - {AF6C971B-D67A-42EE-A12B-97D36927C89F} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {E6DBE5B6-98AA-419A-92EA-B7D3E76D207C} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {9F45B2C3-B513-4646-B0C1-663748FD169C} - - - - - - {32FD3DAA-16C1-44C8-8A1E-E9ECF97F31D2} - - - - {7174FE5A-D079-4452-AFEF-9FC2BCC2900F} - - - - - - {3B01355D-9153-4864-9B56-7D55F801BFF3} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F95D9BA4-88CC-4001-9948-B8173FDDE6F0} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {1E6639B6-8B58-4694-99E7-C058E3583522} - - - - {1353FCBF-3753-A842-BC6C-E849AE5F14E5} - + + + + {84BF3C26-64A7-4032-B775-1D369052B243} + + + + {B2C6362A-7DB1-2B48-B5DE-8E83E09A83E6} + - + {82C966B2-7B19-48B2-8FE0-B85FF4E3C504} - - {6C0BA7DB-7745-214B-99F1-99F8258985B4} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {CF9D1DE7-647C-D24D-8F0C-D55FB45B5DBA} - - - - - - {5BEE296D-10F7-DB4A-8128-BA2CED5B36F7} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {CEBA2219-3352-FD48-A9E5-9CE31F71383B} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} - - - - - - {59A0CAB3-F7AE-5242-8451-C868437381A0} - - - - {9BA81525-6E53-498C-AA97-B31FB48F3A50} - - - - - - {2D90AB77-694C-4586-AA05-5CF062EFFFAB} - - - - {A3FA8175-4DBF-534D-A80F-2B72789930D6} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - - - {ADB4FC1D-3726-4CC5-B4D5-1E2468274325} - - - - {3DE04294-4DEA-4A13-A460-2274647357EA} - - - - - - {8F2140B5-F4E2-4E8F-8121-13C980250D3C} - - - - {69997292-C813-490C-910C-620B9AD3A2BB} - - - - - - {84BF3C26-64A7-4032-B775-1D369052B243} - - - - {EF189922-9B95-4572-B8C9-E5BE23606F9C} - - - - - - {A6D4F032-7CF3-FC46-B6AD-291831D6B23F} - - - - {1CD3B29D-693D-4635-B49F-EF53300CAA8A} - - - - - - {D833DB7F-13CB-42D8-8135-48F35EB1288B} - - - - {D2D716D6-C4A1-471F-894A-D718515F6281} - - - - - - {8F2140B5-F4E2-4E8F-8121-13C980250D3C} - - - - {1CD3B29D-693D-4635-B49F-EF53300CAA8A} - - - - - - {D833DB7F-13CB-42D8-8135-48F35EB1288B} - - - - {EF189922-9B95-4572-B8C9-E5BE23606F9C} - - - - - - {D833DB7F-13CB-42D8-8135-48F35EB1288B} - - - - {11585EBC-914D-4E6D-A10D-D01694FF9840} + + {4021708D-BE5D-F345-A530-B9C0CD9C8806} diff --git a/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdi b/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdi new file mode 100644 index 0000000000..a1622a70c2 --- /dev/null +++ b/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdi @@ -0,0 +1,70 @@ + + + + 1.0f || uv.y > 1.0f; +} + +vec4 ColorClamp(in texture2D currentFrame, in sampler currentSampler, vec4 currentColor, vec4 historyColor, vec2 uv) +{ + const vec4 n0 = textureOffset(sampler2D(currentFrame, currentSampler), uv, ivec2(-1, 0)); + const vec4 n1 = textureOffset(sampler2D(currentFrame, currentSampler), uv, ivec2( 1, 0)); + const vec4 n2 = textureOffset(sampler2D(currentFrame, currentSampler), uv, ivec2(0, -1)); + const vec4 n3 = textureOffset(sampler2D(currentFrame, currentSampler), uv, ivec2(0, 1)); + + const vec4 bmn = min(currentColor, min(n0, min(n1, min(n2, n3)))); + const vec4 bmx = max(currentColor, max(n0, max(n1, max(n2, n3)))); + + const float e = 0.01f; + const vec4 E = vec4(e, e, e, 0.0f); + + return clamp(historyColor, bmn - E, bmx + E); +} + +vec4 TemporalAntiAlias( + in texture2D currentFrame, + in texture2D previousFrame, + in texture2D velocity, + in texture2D depth, + in sampler pointSampler, + in sampler linearSampler, + vec4 jitter, + vec2 uv +) +{ + const float f = 1.0f / TAPS; + + // Convert current jitter to UV space. + const vec2 Juv = jitter.xy; + + // Get velocity of current pixel, in NDC space. + const vec2 v = texture(sampler2D(velocity, pointSampler), uv - Juv).xy; + + // Convert velocity to UV space. + const vec2 Vuv = v * vec2(-0.5f, 0.5f); + + // Sample current colour. + const vec4 cc = texture(sampler2D(currentFrame, linearSampler), uv - Juv); + + // Blend with previous colour. + if (!Clipped(uv - Vuv)) + { + // Sample previous colour, + const vec4 cp = texture(sampler2D(previousFrame, linearSampler), uv - Vuv); + + // Clamp previous colour to current color neighbourhood. + const vec4 ccp = ColorClamp(currentFrame, linearSampler, cc, cp, uv - Juv); + + return cc * f + ccp * (1.0f - f); + } + + return cc; +} + + ]]> + + diff --git a/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdm b/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdm new file mode 100644 index 0000000000..c3faf224e6 --- /dev/null +++ b/data/Source/System/World/Antialias/Shaders/Taa/Temporal.xdm @@ -0,0 +1,6 @@ + + + {0364EDD7-171A-BE4F-8FCA-124DB46AE05A} + traktor.render.ShaderModule + + diff --git a/data/Source/System/World/Velocity/Shaders/Velocity Prime.xdi b/data/Source/System/World/Velocity/Shaders/Velocity Prime.xdi index 6b9b9b803d..d82f61385e 100644 --- a/data/Source/System/World/Velocity/Shaders/Velocity Prime.xdi +++ b/data/Source/System/World/Velocity/Shaders/Velocity Prime.xdi @@ -458,26 +458,6 @@ {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} - - - - {6B0EBF94-A421-EB45-AE66-6C2ACECEF50D} - - - - {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} - - - - - - {6B0EBF94-A421-EB45-AE66-6C2ACECEF50D} - - - - {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} - - @@ -508,6 +488,26 @@ {F2E22CA6-DFF3-4B20-A70A-0D7A44EACD8C} + + + + {6B0EBF94-A421-EB45-AE66-6C2ACECEF50D} + + + + {8C41D88A-1D17-4237-B720-CCC0B7FF71B9} + + + + + + {6B0EBF94-A421-EB45-AE66-6C2ACECEF50D} + + + + {AA571ACC-7699-4D10-BCD7-4E857EFB35EA} + +