From 8ed29d5a0c8cabee74184b1d7075f439f12c85c9 Mon Sep 17 00:00:00 2001 From: Jeremy Ong Date: Mon, 25 Oct 2021 12:17:28 -0600 Subject: [PATCH 001/113] Enable lifetime tethering of the AP by default After this change, the AssetProcessor process will be torn down by default after its parent process shuts down (if it was spawned by a parent process). Signed-off-by: Jeremy Ong --- .../AzFramework/Asset/AssetSystemComponentHelper_Windows.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Asset/AssetSystemComponentHelper_Windows.cpp b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Asset/AssetSystemComponentHelper_Windows.cpp index a3782ae081..2e2014df10 100644 --- a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Asset/AssetSystemComponentHelper_Windows.cpp +++ b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Asset/AssetSystemComponentHelper_Windows.cpp @@ -14,7 +14,7 @@ #include -AZ_CVAR(bool, ap_tether_lifetime, false, nullptr, AZ::ConsoleFunctorFlags::Null, +AZ_CVAR(bool, ap_tether_lifetime, true, nullptr, AZ::ConsoleFunctorFlags::Null, "If enabled, a parent process that launches the AP will terminate the AP on exit"); namespace AzFramework::AssetSystem::Platform From a5a42e3268dd3888327630615cf4c8f3cf82e3d8 Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Tue, 30 Nov 2021 14:05:31 -0800 Subject: [PATCH 002/113] Add dialog window for messaging when SC assets fail to save Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- .../Code/Editor/View/Windows/MainWindow.cpp | 60 ++++++++++++++++++- .../Code/Editor/View/Windows/MainWindow.h | 10 +++- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index e61b015aae..778ad9d5b7 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -914,6 +914,12 @@ namespace ScriptCanvasEditor void MainWindow::closeEvent(QCloseEvent* event) { + if (m_forceCloseInProgress) + { + event->accept(); + return; + } + // If we are in the middle of saving a graph. We don't want to close ourselves down and potentially retrigger the saving logic. if (m_queueCloseRequest) { @@ -1981,6 +1987,7 @@ namespace ScriptCanvasEditor EnableAssetView(memoryAsset); + ClearSaveAttempt(); UnblockCloseRequests(); } @@ -1992,6 +1999,7 @@ namespace ScriptCanvasEditor void MainWindow::SaveAsset(AZ::Data::AssetId assetId, const Callbacks::OnSave& onSave) { + MarkSaveAttempt(); PrepareAssetForSave(assetId); auto onSaveCallback = [this, onSave](bool saveSuccess, AZ::Data::AssetPtr asset, AZ::Data::AssetId previousAssetId) @@ -2020,6 +2028,7 @@ namespace ScriptCanvasEditor void MainWindow::SaveNewAsset(AZStd::string_view path, AZ::Data::AssetId inMemoryAssetId, const Callbacks::OnSave& onSave) { + MarkSaveAttempt(); PrepareAssetForSave(inMemoryAssetId); auto onSaveCallback = [this, onSave](bool saveSuccess, AZ::Data::AssetPtr asset, AZ::Data::AssetId previousAssetId) @@ -4213,6 +4222,11 @@ namespace ScriptCanvasEditor void MainWindow::OnSystemTick() { + if (m_saveAttemptInProgress) + { + EvaluateSaveAttempt(); + } + if (HasSystemTickAction(SystemTickActionFlag::RefreshPropertyGrid)) { RemoveSystemTickAction(SystemTickActionFlag::RefreshPropertyGrid); @@ -4246,13 +4260,56 @@ namespace ScriptCanvasEditor RemoveSystemTickAction(SystemTickActionFlag::CloseNextTabAction); CloseNextTab(); } + } - if (m_systemTickActions == 0) + void MainWindow::ClearSaveAttempt() + { + m_saveAttemptInProgress = false; + + if (!m_systemTickActions) { AZ::SystemTickBus::Handler::BusDisconnect(); } } + bool MainWindow::EvaluateSaveAttempt() + { + const AZ::s64 k_saveAttemptSeconds = 20; + + if (m_saveAttemptInProgress) + { + auto saveDuration = AZStd::chrono::seconds(AZStd::chrono::system_clock::now() - m_saveAttemptTime).count(); + + if (saveDuration > k_saveAttemptSeconds) + { + WarnOnFailedSaveAttempt(); + } + } + + return m_forceCloseInProgress; + } + + void MainWindow::MarkSaveAttempt() + { + m_saveAttemptInProgress = true; + m_saveAttemptTime = AZStd::chrono::system_clock::now(); + + if (!AZ::SystemTickBus::Handler::BusIsConnected()) + { + AZ::SystemTickBus::Handler::BusConnect(); + } + } + + void MainWindow::WarnOnFailedSaveAttempt() + { + m_forceCloseInProgress = true; + QMessageBox::critical(this, QString(), QObject::tr + ("The ScriptCanvas Editor has encountered an external bug which prevents it from tracking the file state.

" + "Likely the Asset Processor has crashed. ScriptCanvas files may have saved successfully, but the O3DE Engine and Asset Processor should be restarted before continuing work.")); + AZ::SystemTickBus::Handler::BusDisconnect(); + qobject_cast(parent())->close(); + } + void MainWindow::OnCommandStarted(AZ::Crc32) { PushPreventUndoStateUpdate(); @@ -4486,7 +4543,6 @@ namespace ScriptCanvasEditor { AZ::SystemTickBus::Handler::BusConnect(); } - m_systemTickActions |= action; } diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h index 7672f0a199..d73da41219 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h @@ -51,7 +51,7 @@ #include #include - +//#include #include #if SCRIPTCANVAS_EDITOR @@ -798,5 +798,13 @@ namespace ScriptCanvasEditor Workspace* m_workspace; void OnSaveCallback(bool saveSuccess, AZ::Data::AssetPtr, AZ::Data::AssetId previousFileAssetId); + + bool m_saveAttemptInProgress = false; + bool m_forceCloseInProgress = false; + AZStd::chrono::system_clock::time_point m_saveAttemptTime; + void ClearSaveAttempt(); + bool EvaluateSaveAttempt(); + void MarkSaveAttempt(); + void WarnOnFailedSaveAttempt(); }; } From 850d36130efb5571a63c14255554927333af971b Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Tue, 30 Nov 2021 15:02:06 -0800 Subject: [PATCH 003/113] update error window message and add AP launch request Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- .../Code/Editor/View/Windows/MainWindow.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index 778ad9d5b7..ee36fc4212 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -154,6 +154,7 @@ #include #include +#include namespace ScriptCanvasEditor { @@ -4305,9 +4306,14 @@ namespace ScriptCanvasEditor m_forceCloseInProgress = true; QMessageBox::critical(this, QString(), QObject::tr ("The ScriptCanvas Editor has encountered an external bug which prevents it from tracking the file state.

" - "Likely the Asset Processor has crashed. ScriptCanvas files may have saved successfully, but the O3DE Engine and Asset Processor should be restarted before continuing work.")); + "The ScriptCanvas files in the process of being saved may have saved successfully.

Closing this window will close " + "the ScriptCanvas Editor, and request a launch of the Asset Processor.
" + "Verify that the Asset Processor or is running before launching the ScriptCanvas Editor again.
" + "The status of the Asset Processor can be monitored from the O3DE Editor in the bottom-right corner of the status bar.")); + + AzFramework::AssetSystem::LaunchAssetProcessor(); AZ::SystemTickBus::Handler::BusDisconnect(); - qobject_cast(parent())->close(); + AzToolsFramework::CloseViewPane(LyViewPane::ScriptCanvas); } void MainWindow::OnCommandStarted(AZ::Crc32) From 9e725da597c5a1681d1da73f7d10d2455bed8c7c Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Tue, 30 Nov 2021 15:30:42 -0800 Subject: [PATCH 004/113] removed commented out include Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h index d73da41219..8d84ece968 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.h @@ -51,7 +51,6 @@ #include #include -//#include #include #if SCRIPTCANVAS_EDITOR From a359244c51f85d6d8894b3874cd15c08838388bd Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Tue, 30 Nov 2021 17:18:27 -0800 Subject: [PATCH 005/113] add pane close to system tick bus Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- .../ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index ee36fc4212..4a20c6bc0d 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -4275,13 +4275,13 @@ namespace ScriptCanvasEditor bool MainWindow::EvaluateSaveAttempt() { - const AZ::s64 k_saveAttemptSeconds = 20; + const AZ::s64 SaveAttemptSeconds = 20; if (m_saveAttemptInProgress) { auto saveDuration = AZStd::chrono::seconds(AZStd::chrono::system_clock::now() - m_saveAttemptTime).count(); - if (saveDuration > k_saveAttemptSeconds) + if (saveDuration > SaveAttemptSeconds) { WarnOnFailedSaveAttempt(); } @@ -4313,7 +4313,10 @@ namespace ScriptCanvasEditor AzFramework::AssetSystem::LaunchAssetProcessor(); AZ::SystemTickBus::Handler::BusDisconnect(); - AzToolsFramework::CloseViewPane(LyViewPane::ScriptCanvas); + AZ::SystemTickBus::QueueFunction([]() + { + AzToolsFramework::CloseViewPane(LyViewPane::ScriptCanvas); + }); } void MainWindow::OnCommandStarted(AZ::Crc32) From b70545ad94e35203170985dc8e2d864ecfb993e6 Mon Sep 17 00:00:00 2001 From: carlitosan <82187351+carlitosan@users.noreply.github.com> Date: Thu, 2 Dec 2021 16:07:50 -0800 Subject: [PATCH 006/113] ScriptCanvas --> Script Canvas in comments Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com> --- Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index 4a20c6bc0d..999afd7a9d 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -4305,10 +4305,10 @@ namespace ScriptCanvasEditor { m_forceCloseInProgress = true; QMessageBox::critical(this, QString(), QObject::tr - ("The ScriptCanvas Editor has encountered an external bug which prevents it from tracking the file state.

" - "The ScriptCanvas files in the process of being saved may have saved successfully.

Closing this window will close " - "the ScriptCanvas Editor, and request a launch of the Asset Processor.
" - "Verify that the Asset Processor or is running before launching the ScriptCanvas Editor again.
" + ("The Script Canvas Editor has encountered an external bug which prevents it from tracking the file state.

" + "The Script Canvas files in the process of being saved may have saved successfully.

Closing this window will close " + "the Script Canvas Editor, and request a launch of the Asset Processor.
" + "Verify that the Asset Processor is running before launching the Script Canvas Editor again.
" "The status of the Asset Processor can be monitored from the O3DE Editor in the bottom-right corner of the status bar.")); AzFramework::AssetSystem::LaunchAssetProcessor(); From 15237af23c6637514ebc378bba4fcef7bde6bca5 Mon Sep 17 00:00:00 2001 From: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> Date: Mon, 6 Dec 2021 09:22:03 -0800 Subject: [PATCH 007/113] Refactored ProjectManagerSettings, added tests, changed project built successful to be tracked by project path, added project ids, changed project settings path to use project id and name Signed-off-by: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> --- AutomatedTesting/project.json | 6 +- Code/Tools/ProjectManager/CMakeLists.txt | 3 + .../Source/ExternalLinkDialog.cpp | 10 +- .../Source/GemCatalog/GemInfo.h | 1 - .../ProjectManager/Source/LinkWidget.cpp | 8 +- .../Source/NewProjectSettingsScreen.cpp | 14 +- .../Source/NewProjectSettingsScreen.h | 1 + .../Source/ProjectBuilderController.cpp | 26 +- .../ProjectManager/Source/ProjectInfo.cpp | 10 +- .../Tools/ProjectManager/Source/ProjectInfo.h | 3 +- .../Source/ProjectManagerSettings.cpp | 257 +++++++++++++++--- .../Source/ProjectManagerSettings.h | 27 +- .../Source/ProjectSettingsScreen.cpp | 27 +- .../Source/ProjectSettingsScreen.h | 3 + .../ProjectManager/Source/ProjectsScreen.cpp | 8 +- .../ProjectManager/Source/PythonBindings.cpp | 22 +- .../Source/UpdateProjectCtrl.cpp | 16 +- .../Source/UpdateProjectSettingsScreen.cpp | 4 +- .../project_manager_tests_files.cmake | 3 +- .../tests/ProjectManagerSettingsTests.cpp | 176 ++++++++++++ .../DefaultProject/Template/project.json | 1 + .../MinimalProject/Template/project.json | 1 + q | 48 ++++ scripts/o3de/o3de/engine_template.py | 22 +- scripts/o3de/o3de/project_properties.py | 13 +- scripts/o3de/o3de/register.py | 2 +- scripts/o3de/o3de/validation.py | 17 +- .../tests/unit_test_project_properties.py | 25 +- 28 files changed, 622 insertions(+), 132 deletions(-) create mode 100644 Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp create mode 100644 q diff --git a/AutomatedTesting/project.json b/AutomatedTesting/project.json index 5ee4ee68f8..9222777ef3 100644 --- a/AutomatedTesting/project.json +++ b/AutomatedTesting/project.json @@ -10,5 +10,7 @@ "version_name": "1.0.0.0", "orientation": "landscape" }, - "engine": "o3de" -} \ No newline at end of file + "engine": "o3de", + "display_name": "AutomatedTesting", + "icon_path": "preview.png" +} diff --git a/Code/Tools/ProjectManager/CMakeLists.txt b/Code/Tools/ProjectManager/CMakeLists.txt index 9974125ffb..b0e7ee9697 100644 --- a/Code/Tools/ProjectManager/CMakeLists.txt +++ b/Code/Tools/ProjectManager/CMakeLists.txt @@ -89,6 +89,9 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) 3rdParty::Qt::Widgets 3rdParty::Python 3rdParty::pybind11 + AZ::AzCore + AZ::AzCoreTestCommon + AZ::AzTestShared AZ::AzTest AZ::AzFramework AZ::AzFrameworkTestShared diff --git a/Code/Tools/ProjectManager/Source/ExternalLinkDialog.cpp b/Code/Tools/ProjectManager/Source/ExternalLinkDialog.cpp index 122a5cbf5a..2f3d615863 100644 --- a/Code/Tools/ProjectManager/Source/ExternalLinkDialog.cpp +++ b/Code/Tools/ProjectManager/Source/ExternalLinkDialog.cpp @@ -10,8 +10,6 @@ #include #include -#include - #include #include #include @@ -87,12 +85,6 @@ namespace O3DE::ProjectManager void ExternalLinkDialog::SetSkipDialogSetting(bool state) { - auto settingsRegistry = AZ::SettingsRegistry::Get(); - if (settingsRegistry) - { - QString settingsKey = GetExternalLinkWarningKey(); - settingsRegistry->Set(settingsKey.toStdString().c_str(), state); - SaveProjectManagerSettings(); - } + PMSettings::SetProjectManagerKey(PMSettings::GetExternalLinkWarningKey(), state); } } // namespace O3DE::ProjectManager diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h b/Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h index 23e95cf487..264971428a 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemInfo.h @@ -9,7 +9,6 @@ #pragma once #if !defined(Q_MOC_RUN) -#include #include #include #include diff --git a/Code/Tools/ProjectManager/Source/LinkWidget.cpp b/Code/Tools/ProjectManager/Source/LinkWidget.cpp index f25e38db67..87ccdb9aed 100644 --- a/Code/Tools/ProjectManager/Source/LinkWidget.cpp +++ b/Code/Tools/ProjectManager/Source/LinkWidget.cpp @@ -33,13 +33,7 @@ namespace O3DE::ProjectManager { // Check if user request not to be shown external link warning dialog bool skipDialog = false; - auto settingsRegistry = AZ::SettingsRegistry::Get(); - - if (settingsRegistry) - { - QString settingsKey = GetExternalLinkWarningKey(); - settingsRegistry->Get(skipDialog, settingsKey.toStdString().c_str()); - } + PMSettings::GetProjectManagerKey(skipDialog, PMSettings::GetExternalLinkWarningKey()); if (!skipDialog) { diff --git a/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.cpp b/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.cpp index 4febb65782..4c306fc715 100644 --- a/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.cpp +++ b/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.cpp @@ -16,6 +16,8 @@ #include #include #include + +#include #include #include @@ -41,9 +43,11 @@ namespace O3DE::ProjectManager { const QString defaultName = GetDefaultProjectName(); const QString defaultPath = QDir::toNativeSeparators(GetDefaultProjectPath() + "/" + defaultName); + const QString randomUuid = GenerateNewProjectId(); m_projectName->lineEdit()->setText(defaultName); m_projectPath->lineEdit()->setText(defaultPath); + m_projectId->lineEdit()->setText(randomUuid); // if we don't use a QFrame we cannot "contain" the widgets inside and move them around // as a group @@ -173,6 +177,14 @@ namespace O3DE::ProjectManager return QDir::toNativeSeparators(GetDefaultProjectPath() + "/" + projectName); } + QString NewProjectSettingsScreen::GenerateNewProjectId() + { + AZStd::string uuid; + AZ::Uuid::CreateRandom().ToString(uuid); + + return QString(uuid.c_str()); + } + ProjectManagerScreen NewProjectSettingsScreen::GetScreenEnum() { return ProjectManagerScreen::NewProjectSettings; @@ -225,7 +237,7 @@ namespace O3DE::ProjectManager moreGemsLabel->setObjectName("moreGems"); templateDetailsLayout->addWidget(moreGemsLabel); - QLabel* browseCatalogLabel = new QLabel(tr("Browse the Gems Catalog to further customize your project."), this); + QLabel* browseCatalogLabel = new QLabel(tr("Browse the Gems Catalog to further customize your project."), this); browseCatalogLabel->setObjectName("browseCatalog"); browseCatalogLabel->setWordWrap(true); templateDetailsLayout->addWidget(browseCatalogLabel); diff --git a/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.h b/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.h index 42c47cb1ff..cfb215ba0c 100644 --- a/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.h +++ b/Code/Tools/ProjectManager/Source/NewProjectSettingsScreen.h @@ -47,6 +47,7 @@ namespace O3DE::ProjectManager private: QString GetDefaultProjectName(); QString GetDefaultProjectPath(); + QString GenerateNewProjectId(); QString GetProjectAutoPath(); QFrame* CreateTemplateDetails(int margin); void UpdateTemplateDetails(const ProjectTemplateInfo& templateInfo); diff --git a/Code/Tools/ProjectManager/Source/ProjectBuilderController.cpp b/Code/Tools/ProjectManager/Source/ProjectBuilderController.cpp index ecb125ae4e..4fc188b289 100644 --- a/Code/Tools/ProjectManager/Source/ProjectBuilderController.cpp +++ b/Code/Tools/ProjectManager/Source/ProjectBuilderController.cpp @@ -29,14 +29,8 @@ namespace O3DE::ProjectManager m_worker = new ProjectBuilderWorker(m_projectInfo); m_worker->moveToThread(&m_workerThread); - auto settingsRegistry = AZ::SettingsRegistry::Get(); - if (settingsRegistry) - { - // Remove key here in case Project Manager crashing while building that causes HandleResults to not be called - QString settingsKey = GetProjectBuiltSuccessfullyKey(m_projectInfo.m_projectName); - settingsRegistry->Remove(settingsKey.toStdString().c_str()); - SaveProjectManagerSettings(); - } + // Remove key here in case Project Manager crashing while building that causes HandleResults to not be called + PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, false); connect(&m_workerThread, &QThread::finished, m_worker, &ProjectBuilderWorker::deleteLater); connect(&m_workerThread, &QThread::started, m_worker, &ProjectBuilderWorker::BuildProject); @@ -91,8 +85,6 @@ namespace O3DE::ProjectManager void ProjectBuilderController::HandleResults(const QString& result) { - QString settingsKey = GetProjectBuiltSuccessfullyKey(m_projectInfo.m_projectName); - if (!result.isEmpty()) { if (result.contains(tr("log"))) @@ -122,12 +114,7 @@ namespace O3DE::ProjectManager emit NotifyBuildProject(m_projectInfo); } - auto settingsRegistry = AZ::SettingsRegistry::Get(); - if (settingsRegistry) - { - settingsRegistry->Remove(settingsKey.toStdString().c_str()); - SaveProjectManagerSettings(); - } + PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, false); emit Done(false); return; @@ -136,12 +123,7 @@ namespace O3DE::ProjectManager { m_projectInfo.m_buildFailed = false; - auto settingsRegistry = AZ::SettingsRegistry::Get(); - if (settingsRegistry) - { - settingsRegistry->Set(settingsKey.toStdString().c_str(), true); - SaveProjectManagerSettings(); - } + PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, true); } emit Done(true); diff --git a/Code/Tools/ProjectManager/Source/ProjectInfo.cpp b/Code/Tools/ProjectManager/Source/ProjectInfo.cpp index b4a1e84831..0d19fff74a 100644 --- a/Code/Tools/ProjectManager/Source/ProjectInfo.cpp +++ b/Code/Tools/ProjectManager/Source/ProjectInfo.cpp @@ -9,14 +9,13 @@ #include #include -#include - namespace O3DE::ProjectManager { ProjectInfo::ProjectInfo( const QString& path, const QString& projectName, const QString& displayName, + const QString& id, const QString& origin, const QString& summary, const QString& iconPath, @@ -26,6 +25,7 @@ namespace O3DE::ProjectManager : m_path(path) , m_projectName(projectName) , m_displayName(displayName) + , m_id(id) , m_origin(origin) , m_summary(summary) , m_iconPath(iconPath) @@ -49,6 +49,10 @@ namespace O3DE::ProjectManager { return false; } + if (m_id != rhs.m_id) + { + return false; + } if (m_origin != rhs.m_origin) { return false; @@ -80,7 +84,7 @@ namespace O3DE::ProjectManager bool ProjectInfo::IsValid() const { - return !m_path.isEmpty() && !m_projectName.isEmpty(); + return !m_path.isEmpty() && !m_projectName.isEmpty() && !m_id.isEmpty(); } const QString& ProjectInfo::GetProjectDisplayName() const diff --git a/Code/Tools/ProjectManager/Source/ProjectInfo.h b/Code/Tools/ProjectManager/Source/ProjectInfo.h index 2ce1e8c491..4dcb21aa24 100644 --- a/Code/Tools/ProjectManager/Source/ProjectInfo.h +++ b/Code/Tools/ProjectManager/Source/ProjectInfo.h @@ -9,7 +9,6 @@ #pragma once #if !defined(Q_MOC_RUN) -#include #include #include #include @@ -26,6 +25,7 @@ namespace O3DE::ProjectManager const QString& path, const QString& projectName, const QString& displayName, + const QString& id, const QString& origin, const QString& summary, const QString& iconPath, @@ -45,6 +45,7 @@ namespace O3DE::ProjectManager // From project.json QString m_projectName; QString m_displayName; + QString m_id; QString m_origin; QString m_summary; QString m_iconPath; diff --git a/Code/Tools/ProjectManager/Source/ProjectManagerSettings.cpp b/Code/Tools/ProjectManager/Source/ProjectManagerSettings.cpp index 66480aab3e..12dd569ad5 100644 --- a/Code/Tools/ProjectManager/Source/ProjectManagerSettings.cpp +++ b/Code/Tools/ProjectManager/Source/ProjectManagerSettings.cpp @@ -14,46 +14,235 @@ namespace O3DE::ProjectManager { - void SaveProjectManagerSettings() + namespace PMSettings { - auto settingsRegistry = AZ::SettingsRegistry::Get(); - AZ::SettingsRegistryMergeUtils::DumperSettings dumperSettings; - dumperSettings.m_prettifyOutput = true; - dumperSettings.m_jsonPointerPrefix = ProjectManagerKeyPrefix; - - AZStd::string stringBuffer; - AZ::IO::ByteContainerStream stringStream(&stringBuffer); - if (!AZ::SettingsRegistryMergeUtils::DumpSettingsRegistryToStream( - *settingsRegistry, ProjectManagerKeyPrefix, stringStream, dumperSettings)) + bool SaveProjectManagerSettings() { - AZ_Warning("ProjectManager", false, "Could not save Project Manager settings to stream"); - return; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + AZ::SettingsRegistryMergeUtils::DumperSettings dumperSettings; + dumperSettings.m_prettifyOutput = true; + dumperSettings.m_jsonPointerPrefix = ProjectManagerKeyPrefix; + + AZStd::string stringBuffer; + AZ::IO::ByteContainerStream stringStream(&stringBuffer); + if (!AZ::SettingsRegistryMergeUtils::DumpSettingsRegistryToStream( + *settingsRegistry, ProjectManagerKeyPrefix, stringStream, dumperSettings)) + { + AZ_Warning("ProjectManager", false, "Could not save Project Manager settings to stream"); + return false; + } + + AZ::IO::FixedMaxPath o3deUserPath = AZ::Utils::GetO3deManifestDirectory(); + o3deUserPath /= AZ::SettingsRegistryInterface::RegistryFolder; + o3deUserPath /= "ProjectManager.setreg"; + + bool saved = false; + constexpr auto configurationMode = + AZ::IO::SystemFile::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY; + + AZ::IO::SystemFile outputFile; + if (outputFile.Open(o3deUserPath.c_str(), configurationMode)) + { + saved = outputFile.Write(stringBuffer.data(), stringBuffer.size()) == stringBuffer.size(); + } + + AZ_Warning("ProjectManager", saved, "Unable to save Project Manager registry file to path: %s", o3deUserPath.c_str()); + return saved; } - AZ::IO::FixedMaxPath o3deUserPath = AZ::Utils::GetO3deManifestDirectory(); - o3deUserPath /= AZ::SettingsRegistryInterface::RegistryFolder; - o3deUserPath /= "ProjectManager.setreg"; - - bool saved = false; - constexpr auto configurationMode = - AZ::IO::SystemFile::SF_OPEN_CREATE | AZ::IO::SystemFile::SF_OPEN_CREATE_PATH | AZ::IO::SystemFile::SF_OPEN_WRITE_ONLY; - - AZ::IO::SystemFile outputFile; - if (outputFile.Open(o3deUserPath.c_str(), configurationMode)) + bool GetProjectManagerKey(QString& result, const QString& settingsKey) { - saved = outputFile.Write(stringBuffer.data(), stringBuffer.size()) == stringBuffer.size(); + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + AZStd::string settingsValue; + success = settingsRegistry->Get(settingsValue, settingsKey.toStdString().c_str()); + + result = settingsValue.c_str(); + } + + return success; } - AZ_Warning("ProjectManager", saved, "Unable to save Project Manager registry file to path: %s", o3deUserPath.c_str()); - } + bool GetProjectManagerKey(bool& result, const QString& settingsKey) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + success = settingsRegistry->Get(result, settingsKey.toStdString().c_str()); + } - QString GetProjectBuiltSuccessfullyKey(const QString& projectName) - { - return QString("%1/Projects/%2/BuiltSuccessfully").arg(ProjectManagerKeyPrefix).arg(projectName); - } + return success; + } - QString GetExternalLinkWarningKey() - { - return QString("%1/SkipExternalLinkWarning").arg(ProjectManagerKeyPrefix); - } -} + bool SetProjectManagerKey(const QString& settingsKey, const QString& settingsValue, bool saveToDisk) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + success = settingsRegistry->Set(settingsKey.toStdString().c_str(), settingsValue.toStdString().c_str()); + + if (saveToDisk) + { + SaveProjectManagerSettings(); + } + } + + return success; + } + + bool SetProjectManagerKey(const QString& settingsKey, bool settingsValue, bool saveToDisk) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + success = settingsRegistry->Set(settingsKey.toStdString().c_str(), settingsValue); + + if (saveToDisk) + { + SaveProjectManagerSettings(); + } + } + + return success; + } + + bool RemoveProjectManagerKey(const QString& settingsKey, bool saveToDisk) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + success = settingsRegistry->Remove(settingsKey.toStdString().c_str()); + + if (saveToDisk) + { + SaveProjectManagerSettings(); + } + } + + return success; + } + + bool CopyProjectManagerKeyString(const QString& settingsKeyOrig, const QString& settingsKeyDest, bool removeOrig, bool saveToDisk) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + AZStd::string settingsValue; + success = settingsRegistry->Get(settingsValue, settingsKeyOrig.toStdString().c_str()); + + if (success) + { + success = settingsRegistry->Set(settingsKeyDest.toStdString().c_str(), settingsValue); + if (success) + { + if (removeOrig) + { + success = settingsRegistry->Remove(settingsKeyOrig.toStdString().c_str()); + } + + if (saveToDisk) + { + SaveProjectManagerSettings(); + } + } + } + } + + return success; + } + + QString GetProjectKey(const ProjectInfo& projectInfo) + { + return QString("%1/Projects/%2/%3").arg(ProjectManagerKeyPrefix, projectInfo.m_id, projectInfo.m_projectName); + } + + QString GetExternalLinkWarningKey() + { + return QString("%1/SkipExternalLinkWarning").arg(ProjectManagerKeyPrefix); + } + + QString GetProjectsBuiltSuccessfullyKey() + { + return QString("%1/SuccessfulBuildPaths").arg(ProjectManagerKeyPrefix); + } + + bool GetBuiltSuccessfullyPaths(AZStd::set& result) + { + bool success = false; + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + QString builtKey = GetProjectsBuiltSuccessfullyKey(); + success = settingsRegistry->GetObject>(result, builtKey.toStdString().c_str()); + } + + return success; + } + + bool GetProjectBuiltSuccessfully(bool& result, const ProjectInfo& projectInfo) + { + AZStd::set builtPathsResult; + bool success = GetBuiltSuccessfullyPaths(builtPathsResult); + if (success) + { + // Check if buildPath is listed as successfully built + AZStd::string projectPath = projectInfo.m_path.toStdString().c_str(); + if (builtPathsResult.contains(projectPath)) + { + result = true; + } + } + // No project built statuses known + else + { + result = false; + } + + return success; + } + + bool SetProjectBuiltSuccessfully(const ProjectInfo& projectInfo, bool successfullyBuilt, bool saveToDisk) + { + AZStd::set builtPathsResult; + bool success = GetBuiltSuccessfullyPaths(builtPathsResult); + + AZStd::string projectPath = projectInfo.m_path.toStdString().c_str(); + if (successfullyBuilt) + { + //Add successfully built path to set + builtPathsResult.insert(projectPath); + } + else + { + // Remove unsuccessfully built path from set + builtPathsResult.erase(projectPath); + } + + auto settingsRegistry = AZ::SettingsRegistry::Get(); + if (settingsRegistry) + { + QString builtKey = GetProjectsBuiltSuccessfullyKey(); + success = settingsRegistry->SetObject>(builtKey.toStdString().c_str(), builtPathsResult); + + if (saveToDisk) + { + SaveProjectManagerSettings(); + } + } + else + { + success = false; + } + + return success; + } + + } // namespace PMSettings +} // namespace O3DE::ProjectManager diff --git a/Code/Tools/ProjectManager/Source/ProjectManagerSettings.h b/Code/Tools/ProjectManager/Source/ProjectManagerSettings.h index 93cfbc5ceb..2a92fcab0f 100644 --- a/Code/Tools/ProjectManager/Source/ProjectManagerSettings.h +++ b/Code/Tools/ProjectManager/Source/ProjectManagerSettings.h @@ -9,14 +9,29 @@ #pragma once #if !defined(Q_MOC_RUN) -#include +#include +#include #endif namespace O3DE::ProjectManager { - static constexpr char ProjectManagerKeyPrefix[] = "/O3DE/ProjectManager"; + namespace PMSettings + { + static constexpr char ProjectManagerKeyPrefix[] = "/O3DE/ProjectManager"; - void SaveProjectManagerSettings(); - QString GetProjectBuiltSuccessfullyKey(const QString& projectName); - QString GetExternalLinkWarningKey(); -} + bool SaveProjectManagerSettings(); + bool GetProjectManagerKey(QString& result, const QString& settingsKey); + bool GetProjectManagerKey(bool& result, const QString& settingsKey); + bool SetProjectManagerKey(const QString& settingsKey, const QString& settingsValue, bool saveToDisk = true); + bool SetProjectManagerKey(const QString& settingsKey, bool settingsValue, bool saveToDisk = true); + bool RemoveProjectManagerKey(const QString& settingsKey, bool saveToDisk = true); + bool CopyProjectManagerKeyString( + const QString& settingsKeyOrig, const QString& settingsKeyDest, bool removeOrig = false, bool saveToDisk = true); + + QString GetProjectKey(const ProjectInfo& projectInfo); + QString GetExternalLinkWarningKey(); + + bool GetProjectBuiltSuccessfully(bool& result, const ProjectInfo& projectInfo); + bool SetProjectBuiltSuccessfully(const ProjectInfo& projectInfo, bool successfullyBuilt, bool saveToDisk = true); + } // namespace PMSettings +} // namespace O3DE::ProjectManager diff --git a/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.cpp b/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.cpp index d4ac43d655..cf15cb5bbc 100644 --- a/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.cpp +++ b/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.cpp @@ -60,6 +60,10 @@ namespace O3DE::ProjectManager connect(m_projectPath->lineEdit(), &QLineEdit::textChanged, this, &ProjectSettingsScreen::OnProjectPathUpdated); m_verticalLayout->addWidget(m_projectPath); + m_projectId = new FormLineEditWidget(tr("Project ID"), "", this); + connect(m_projectId->lineEdit(), &QLineEdit::textChanged, this, &ProjectSettingsScreen::OnProjectIdUpdated); + m_verticalLayout->addWidget(m_projectId); + projectSettingsFrame->setLayout(m_verticalLayout); m_horizontalLayout->addWidget(projectSettingsFrame); @@ -94,6 +98,7 @@ namespace O3DE::ProjectManager // currently we don't have separate fields for changing the project name and display name projectInfo.m_displayName = projectInfo.m_projectName; projectInfo.m_path = m_projectPath->lineEdit()->text(); + projectInfo.m_id = m_projectId->lineEdit()->text(); return projectInfo; } @@ -142,6 +147,19 @@ namespace O3DE::ProjectManager return projectPathIsValid; } + bool ProjectSettingsScreen::ValidateProjectId() + { + bool projectIdIsValid = true; + if (m_projectId->lineEdit()->text().isEmpty()) + { + projectIdIsValid = false; + m_projectId->setErrorLabelText(tr("Project ID cannot be empty.")); + } + + m_projectId->setErrorLabelVisible(!projectIdIsValid); + return projectIdIsValid; + } + void ProjectSettingsScreen::OnProjectNameUpdated() { ValidateProjectName(); @@ -149,11 +167,16 @@ namespace O3DE::ProjectManager void ProjectSettingsScreen::OnProjectPathUpdated() { - Validate(); + ValidateProjectName() && ValidateProjectPath(); + } + + void ProjectSettingsScreen::OnProjectIdUpdated() + { + ValidateProjectId(); } bool ProjectSettingsScreen::Validate() { - return ValidateProjectName() && ValidateProjectPath(); + return ValidateProjectName() && ValidateProjectPath() && ValidateProjectId(); } } // namespace O3DE::ProjectManager diff --git a/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.h b/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.h index 752e286ce1..928cde833e 100644 --- a/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.h +++ b/Code/Tools/ProjectManager/Source/ProjectSettingsScreen.h @@ -35,10 +35,12 @@ namespace O3DE::ProjectManager protected slots: virtual void OnProjectNameUpdated(); virtual void OnProjectPathUpdated(); + virtual void OnProjectIdUpdated(); protected: bool ValidateProjectName(); virtual bool ValidateProjectPath(); + bool ValidateProjectId(); QString GetDefaultProjectPath(); @@ -46,6 +48,7 @@ namespace O3DE::ProjectManager QVBoxLayout* m_verticalLayout; FormLineEditWidget* m_projectName; FormBrowseEditWidget* m_projectPath; + FormLineEditWidget* m_projectId; }; } // namespace O3DE::ProjectManager diff --git a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp index acd753a1cb..9816595548 100644 --- a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp +++ b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp @@ -291,13 +291,9 @@ namespace O3DE::ProjectManager // Check whether project manager has successfully built the project if (currentButton) { - auto settingsRegistry = AZ::SettingsRegistry::Get(); bool projectBuiltSuccessfully = false; - if (settingsRegistry) - { - QString settingsKey = GetProjectBuiltSuccessfullyKey(project.m_projectName); - settingsRegistry->Get(projectBuiltSuccessfully, settingsKey.toStdString().c_str()); - } + PMSettings::GetProjectBuiltSuccessfully(projectBuiltSuccessfully, project); + if (!projectBuiltSuccessfully) { currentButton->ShowBuildRequired(); diff --git a/Code/Tools/ProjectManager/Source/PythonBindings.cpp b/Code/Tools/ProjectManager/Source/PythonBindings.cpp index 12f97e6d2e..8d11028af6 100644 --- a/Code/Tools/ProjectManager/Source/PythonBindings.cpp +++ b/Code/Tools/ProjectManager/Source/PythonBindings.cpp @@ -687,8 +687,24 @@ namespace O3DE::ProjectManager auto createProjectResult = m_engineTemplate.attr("create_project")( projectPath, - QString_To_Py_String(projectInfo.m_projectName), - QString_To_Py_Path(projectTemplatePath) + QString_To_Py_String(projectInfo.m_projectName), // project_path + QString_To_Py_Path(projectTemplatePath), // template_path + pybind11::none(), // template_name + pybind11::none(), // project_restricted_path + pybind11::none(), // project_restricted_name + pybind11::none(), // template_restricted_path + pybind11::none(), // template_restricted_name + pybind11::none(), // project_restricted_platform_relative_path + pybind11::none(), // template_restricted_platform_relative_path + pybind11::none(), // keep_restricted_in_project + pybind11::none(), // keep_license_text + pybind11::none(), // replace + pybind11::none(), // force + pybind11::none(), // no_register + pybind11::none(), // system_component_class_id + pybind11::none(), // editor_system_component_class_id + pybind11::none(), // module_id + QString_To_Py_String(projectInfo.m_id) // project_id ); if (createProjectResult.cast() == 0) { @@ -822,6 +838,7 @@ namespace O3DE::ProjectManager { projectInfo.m_projectName = Py_To_String(projectData["project_name"]); projectInfo.m_displayName = Py_To_String_Optional(projectData, "display_name", projectInfo.m_projectName); + projectInfo.m_id = Py_To_String_Optional(projectData, "project_id", projectInfo.m_id); projectInfo.m_origin = Py_To_String_Optional(projectData, "origin", projectInfo.m_origin); projectInfo.m_summary = Py_To_String_Optional(projectData, "summary", projectInfo.m_summary); projectInfo.m_iconPath = Py_To_String_Optional(projectData, "icon", ProjectPreviewImagePath); @@ -926,6 +943,7 @@ namespace O3DE::ProjectManager QString_To_Py_Path(projectInfo.m_path), pybind11::none(), // proj_name not used QString_To_Py_String(projectInfo.m_projectName), + QString_To_Py_String(projectInfo.m_id), QString_To_Py_String(projectInfo.m_origin), QString_To_Py_String(projectInfo.m_displayName), QString_To_Py_String(projectInfo.m_summary), diff --git a/Code/Tools/ProjectManager/Source/UpdateProjectCtrl.cpp b/Code/Tools/ProjectManager/Source/UpdateProjectCtrl.cpp index 36d78ed2ac..71dae91a81 100644 --- a/Code/Tools/ProjectManager/Source/UpdateProjectCtrl.cpp +++ b/Code/Tools/ProjectManager/Source/UpdateProjectCtrl.cpp @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -306,17 +305,10 @@ namespace O3DE::ProjectManager if (newProjectSettings.m_projectName != m_projectInfo.m_projectName) { - // update reg key - QString oldSettingsKey = GetProjectBuiltSuccessfullyKey(m_projectInfo.m_projectName); - QString newSettingsKey = GetProjectBuiltSuccessfullyKey(newProjectSettings.m_projectName); - - auto settingsRegistry = AZ::SettingsRegistry::Get(); - bool projectBuiltSuccessfully = false; - if (settingsRegistry && settingsRegistry->Get(projectBuiltSuccessfully, oldSettingsKey.toStdString().c_str())) - { - settingsRegistry->Set(newSettingsKey.toStdString().c_str(), projectBuiltSuccessfully); - SaveProjectManagerSettings(); - } + // Remove project build successfully paths for both old and new project names + // because a full rebuild is required when moving projects + PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, false); + PMSettings::SetProjectBuiltSuccessfully(newProjectSettings, false); } if (!newProjectSettings.m_newPreviewImagePath.isEmpty()) diff --git a/Code/Tools/ProjectManager/Source/UpdateProjectSettingsScreen.cpp b/Code/Tools/ProjectManager/Source/UpdateProjectSettingsScreen.cpp index a430102c27..7c8f981f59 100644 --- a/Code/Tools/ProjectManager/Source/UpdateProjectSettingsScreen.cpp +++ b/Code/Tools/ProjectManager/Source/UpdateProjectSettingsScreen.cpp @@ -56,6 +56,7 @@ namespace O3DE::ProjectManager { m_projectInfo.m_displayName = m_projectName->lineEdit()->text(); m_projectInfo.m_path = m_projectPath->lineEdit()->text(); + m_projectInfo.m_id = m_projectId->lineEdit()->text(); if (m_userChangedPreview) { @@ -70,8 +71,9 @@ namespace O3DE::ProjectManager m_projectInfo = projectInfo; m_projectName->lineEdit()->setText(projectInfo.GetProjectDisplayName()); - m_projectPath->lineEdit()->setText(projectInfo.m_path); + m_projectId->lineEdit()->setText(projectInfo.m_id); + UpdateProjectPreviewPath(); } diff --git a/Code/Tools/ProjectManager/project_manager_tests_files.cmake b/Code/Tools/ProjectManager/project_manager_tests_files.cmake index 2bfe343038..df9a0070a1 100644 --- a/Code/Tools/ProjectManager/project_manager_tests_files.cmake +++ b/Code/Tools/ProjectManager/project_manager_tests_files.cmake @@ -10,8 +10,9 @@ set(FILES Resources/ProjectManager.qrc Resources/ProjectManager.qss tests/ApplicationTests.cpp - tests/PythonBindingsTests.cpp tests/GemCatalogTests.cpp + tests/ProjectManagerSettingsTests.cpp + tests/PythonBindingsTests.cpp tests/main.cpp tests/UtilsTests.cpp ) diff --git a/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp b/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp new file mode 100644 index 0000000000..7ab93f798c --- /dev/null +++ b/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp @@ -0,0 +1,176 @@ +/* + * Copyright (c) Contributors to the Open 3D Engine Project. + * For complete copyright and license terms please see the LICENSE at the root of this distribution. + * + * SPDX-License-Identifier: Apache-2.0 OR MIT + * + */ + +#include +#include +#include +#include +#include + +#include + +namespace O3DE::ProjectManager +{ + class ProjectManagerSettingsTests + : public ::UnitTest::ScopedAllocatorSetupFixture + { + public: + ~ProjectManagerSettingsTests() override = default; + void SetUp() override + { + UnitTest::ScopedAllocatorSetupFixture::SetUp(); + + m_registry = AZStd::make_unique(); + // Store off the old global settings registry to restore after each test + m_oldSettingsRegistry = AZ::SettingsRegistry::Get(); + if (m_oldSettingsRegistry != nullptr) + { + AZ::SettingsRegistry::Unregister(m_oldSettingsRegistry); + } + AZ::SettingsRegistry::Register(m_registry.get()); + + m_serializeContext = AZStd::make_unique(); + m_registrationContext = AZStd::make_unique(); + + m_registry->SetContext(m_serializeContext.get()); + m_registry->SetContext(m_registrationContext.get()); + + m_projectInfo.m_path = "Z:/ProjectTestPath"; + } + + void TearDown() override + { + m_registrationContext.reset(); + m_serializeContext.reset(); + + // Restore the old global settings registry + AZ::SettingsRegistry::Unregister(m_registry.get()); + if (m_oldSettingsRegistry != nullptr) + { + AZ::SettingsRegistry::Register(m_oldSettingsRegistry); + m_oldSettingsRegistry = nullptr; + } + m_registry.reset(); + + UnitTest::ScopedAllocatorSetupFixture::TearDown(); + } + + protected: + const QString m_settingsPath = "/Testing/TestKey"; + const QString m_newSettingsPath = "/Testing/NewTestKey"; + ProjectInfo m_projectInfo; + + private: + AZ::SettingsRegistryInterface* m_oldSettingsRegistry = nullptr; + AZStd::unique_ptr m_registry; + AZStd::unique_ptr m_serializeContext; + AZStd::unique_ptr m_registrationContext; + }; + + TEST_F(ProjectManagerSettingsTests, PMSettings_GetUnsetPathBool_ReturnsFalse) + { + bool settingsResult = false; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + EXPECT_FALSE(settingsResult); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_SetAndGetValueBool_Success) + { + bool settingsResult = false; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectManagerKey(m_settingsPath, true, /*saveToDisk*/ false)); + + settingsResult = false; + EXPECT_TRUE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + EXPECT_TRUE(settingsResult); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_GetUnsetPathString_ReturnsFalse) + { + QString settingsResult; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + EXPECT_TRUE(settingsResult.isEmpty()); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_SetAndGetValueString_Success) + { + QString settingsResult; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + + QString settingsValue = "TestValue"; + + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectManagerKey(m_settingsPath, settingsValue, /*saveToDisk*/ false)); + + EXPECT_TRUE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + EXPECT_TRUE(settingsResult == settingsValue); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_CopyStringRemoveOriginal_SuccessAndRemovesOriginal) + { + QString settingsResult; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_newSettingsPath)); + + QString settingsValue = "TestValue"; + + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectManagerKey(m_settingsPath, settingsValue, /*saveToDisk*/ false)); + + EXPECT_TRUE(PMSettings::CopyProjectManagerKeyString(m_settingsPath, m_newSettingsPath, /*removeOrig*/ true, /*saveToDisk*/ false)); + + // Check that old path value is removed + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + + EXPECT_TRUE(PMSettings::GetProjectManagerKey(settingsResult, m_newSettingsPath)); + EXPECT_TRUE(settingsResult == settingsValue); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_RemoveProjectManagerKey_RemovesKey) + { + QString settingsResult; + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + + QString settingsValue = "TestValue"; + + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectManagerKey(m_settingsPath, settingsValue, /*saveToDisk*/ false)); + EXPECT_TRUE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + + EXPECT_TRUE(PMSettings::RemoveProjectManagerKey(m_settingsPath, /*saveToDisk*/ false)); + EXPECT_FALSE(PMSettings::GetProjectManagerKey(settingsResult, m_settingsPath)); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_GetUnsetBuildPath_ReturnsFalse) + { + bool buildResult = true; + EXPECT_FALSE(PMSettings::GetProjectBuiltSuccessfully(buildResult, m_projectInfo)); + EXPECT_FALSE(buildResult); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_SetProjectBuiltSuccessfully_ReturnsTrue) + { + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, true, /*saveToDisk*/ false)); + + bool buildResult = false; + EXPECT_TRUE(PMSettings::GetProjectBuiltSuccessfully(buildResult, m_projectInfo)); + EXPECT_TRUE(buildResult); + } + + TEST_F(ProjectManagerSettingsTests, PMSettings_SetProjectBuiltUnsuccessfully_ReturnsFalse) + { + // Don't save to disk in test + EXPECT_TRUE(PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, true, /*saveToDisk*/ false)); + + bool buildResult = true; + EXPECT_TRUE(PMSettings::GetProjectBuiltSuccessfully(buildResult, m_projectInfo)); + EXPECT_FALSE(buildResult); + } +} diff --git a/Templates/DefaultProject/Template/project.json b/Templates/DefaultProject/Template/project.json index b52b0baf27..f8d4643ce9 100644 --- a/Templates/DefaultProject/Template/project.json +++ b/Templates/DefaultProject/Template/project.json @@ -1,5 +1,6 @@ { "project_name": "${Name}", + "project_id": "${ProjectId}", "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", diff --git a/Templates/MinimalProject/Template/project.json b/Templates/MinimalProject/Template/project.json index b52b0baf27..f8d4643ce9 100644 --- a/Templates/MinimalProject/Template/project.json +++ b/Templates/MinimalProject/Template/project.json @@ -1,5 +1,6 @@ { "project_name": "${Name}", + "project_id": "${ProjectId}", "origin": "The primary repo for ${Name} goes here: i.e. http://www.mydomain.com", "license": "What license ${Name} uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "${Name}", diff --git a/q b/q new file mode 100644 index 0000000000..fc1c268aef --- /dev/null +++ b/q @@ -0,0 +1,48 @@ + Prism/AddEditGemsButton + Prism/AddLicenseToGemCatalog + Prism/AddRemoveRepoWorkingUI + Prism/AddRepoDialog +* Prism/CmakeVariablesPerProject + Prism/CreateRepositoryScreen + Prism/CustomBuildParameters + Prism/CustomTabWidgetForEngine + Prism/DeleteUpdateGemsUI + Prism/DisplayAddGemInfo + Prism/EnterInFileDialog + Prism/ExternalLinkWarning + Prism/FasterBuildTimes + Prism/FixGemCart + Prism/FixGemCatalogHyperlinks + Prism/FixGemSelectedFilter + Prism/FixRemovedProjectStillShown + Prism/FixTabOverlayOnStartup + Prism/GemCatalogMenu + Prism/GemCatalogTests + Prism/GemCatalogWithoutProject + Prism/GemRepoInspector + Prism/RefreshAfterDownload + Prism/RefreshGemRepos + Prism/RefreshOnDownload + Prism/RefreshRepoButtonDisablesRepo + Prism/RemoteGemWarning + Prism/RemoveTabFocus + Prism/ResetBuildAndCacheAfterProjectMove + Prism/SearchForGemsFromTags + Prism/ShowGemDownloadStatus + Prism/ShowGemPreview + Prism/ShowGemRepoGems + Prism/ShowGemsInRepo + Prism/ShowRepoGems + Prism/ShowRepoList + Prism/UpdateTemplatePics + Prism/UseGemDisplayNames + Prism/VS2019InstallInstructions + Prism/WarnExternalLink + Prism/WarnVSNotInstalled + Prism/cherry-pick-gem-catalog-fix + Prism/gitRepos + development + new-feature + racoonteurs + stabilization/2110 + stabilization/2111RTE diff --git a/scripts/o3de/o3de/engine_template.py b/scripts/o3de/o3de/engine_template.py index e93f972301..963ee3eb84 100755 --- a/scripts/o3de/o3de/engine_template.py +++ b/scripts/o3de/o3de/engine_template.py @@ -1113,7 +1113,7 @@ def create_from_template(destination_path: pathlib.Path, try: template_json_data = json.load(s) except KeyError as e: - logger.error(f'Could read template json {template_json}: {str(e)}.') + logger.error(f'Could not read template json {template_json}: {str(e)}.') return 1 # read template name from the json @@ -1338,7 +1338,8 @@ def create_project(project_path: pathlib.Path, no_register: bool = False, system_component_class_id: str = None, editor_system_component_class_id: str = None, - module_id: str = None) -> int: + module_id: str = None, + project_id: str = None) -> int: """ Template instantiation specialization that makes all default assumptions for a Project template instantiation, reducing the effort needed in instancing a project @@ -1366,6 +1367,7 @@ def create_project(project_path: pathlib.Path, :param editor_system_component_class_id: optionally specify a uuid for the editor system component class, default is random uuid :param module_id: optionally specify a uuid for the module class, default is random uuid + :param project_id: optionally specify a str for the project id, default is random uuid :return: 0 for success or non 0 failure code """ if template_name and template_path: @@ -1405,7 +1407,7 @@ def create_project(project_path: pathlib.Path, try: template_json_data = json.load(s) except json.JSONDecodeError as e: - logger.error(f'Could read template json {template_json}: {str(e)}.') + logger.error(f'Could not read template json {template_json}: {str(e)}.') return 1 # read template name from the json @@ -1577,6 +1579,12 @@ def create_project(project_path: pathlib.Path, replacements.append(("${NameLower}", project_name.lower())) replacements.append(("${SanitizedCppName}", sanitized_cpp_name)) + # was a project id specified + if project_id: + replacements.append(("${ProjectId}", project_id)) + else: + replacements.append(("${ProjectId}", '{' + str(uuid.uuid4()) + '}')) + # module id is a uuid with { and - if module_id: replacements.append(("${ModuleClassId}", module_id)) @@ -1784,7 +1792,7 @@ def create_gem(gem_path: pathlib.Path, try: template_json_data = json.load(s) except json.JSONDecodeError as e: - logger.error(f'Could read template json {template_json}: {str(e)}.') + logger.error(f'Could not read template json {template_json}: {str(e)}.') return 1 # read template name from the json @@ -2123,7 +2131,8 @@ def _run_create_project(args: argparse) -> int: args.no_register, args.system_component_class_id, args.editor_system_component_class_id, - args.module_id) + args.module_id, + args.project_id) def _run_create_gem(args: argparse) -> int: @@ -2404,6 +2413,9 @@ def add_args(subparsers) -> None: create_project_subparser.add_argument('--module-id', type=uuid.UUID, required=False, help='The uuid you want to associate with the module, default is a random' ' uuid Ex. {b60c92eb-3139-454b-a917-a9d3c5819594}') + create_project_subparser.add_argument('--project-id', type=str, required=False, + help='The str id you want to associate with the project, default is a random uuid' + ' Ex. {b60c92eb-3139-454b-a917-a9d3c5819594}') create_project_subparser.add_argument('-f', '--force', action='store_true', default=False, help='Copies over instantiated template directory even if it exist.') create_project_subparser.add_argument('--no-register', action='store_true', default=False, diff --git a/scripts/o3de/o3de/project_properties.py b/scripts/o3de/o3de/project_properties.py index 04731ad3de..88c05537e9 100644 --- a/scripts/o3de/o3de/project_properties.py +++ b/scripts/o3de/o3de/project_properties.py @@ -29,6 +29,7 @@ def get_project_props(name: str = None, path: pathlib.Path = None) -> dict: def edit_project_props(proj_path: pathlib.Path = None, proj_name: str = None, new_name: str = None, + new_id: str = None, new_origin: str = None, new_display: str = None, new_summary: str = None, @@ -40,14 +41,15 @@ def edit_project_props(proj_path: pathlib.Path = None, if not proj_json: return 1 - - if new_origin: - proj_json['origin'] = new_origin if new_name: if not utils.validate_identifier(new_name): logger.error(f'Project name must be fewer than 64 characters, contain only alphanumeric, "_" or "-" characters, and start with a letter. {new_name}') return 1 - proj_json['project_name'] = new_name + proj_json['project_name'] = new_name + if new_id: + proj_json['project_id'] = new_id + if new_origin: + proj_json['origin'] = new_origin if new_display: proj_json['display_name'] = new_display if new_summary: @@ -78,6 +80,7 @@ def _edit_project_props(args: argparse) -> int: return edit_project_props(args.project_path, args.project_name, args.project_new_name, + args.project_id, args.project_origin, args.project_display, args.project_summary, @@ -95,6 +98,8 @@ def add_parser_args(parser): group = parser.add_argument_group('properties', 'arguments for modifying individual project properties.') group.add_argument('-pnn', '--project-new-name', type=str, required=False, help='Sets the name for the project.') + group.add_argument('-pid', '--project-id', type=str, required=False, + help='Sets the ID for the project.') group.add_argument('-po', '--project-origin', type=str, required=False, help='Sets description or url for project origin (such as project host, repository, owner...etc).') group.add_argument('-pd', '--project-display', type=str, required=False, diff --git a/scripts/o3de/o3de/register.py b/scripts/o3de/o3de/register.py index 2500df1568..aaadfb5709 100644 --- a/scripts/o3de/o3de/register.py +++ b/scripts/o3de/o3de/register.py @@ -570,7 +570,7 @@ def remove_invalid_o3de_projects(manifest_path: pathlib.Path = None) -> int: result = 0 for project in json_data.get('projects', []): - if not validation.valid_o3de_project_json(pathlib.Path(project).resolve() / 'project.json'): + if not validation.valid_o3de_project_json(pathlib.Path(project).resolve() / 'project.json', generate_uuid=True): logger.warning(f"Project path {project} is invalid.") # Attempt to unregister all invalid projects even if previous projects failed to unregister # but combine the result codes of each command. diff --git a/scripts/o3de/o3de/validation.py b/scripts/o3de/o3de/validation.py index 5c683f0667..a671e88edf 100644 --- a/scripts/o3de/o3de/validation.py +++ b/scripts/o3de/o3de/validation.py @@ -10,6 +10,7 @@ This file validating o3de object json files """ import json import pathlib +import uuid def valid_o3de_json_dict(json_data: dict, key: str) -> bool: return key in json_data @@ -44,7 +45,7 @@ def valid_o3de_engine_json(file_name: str or pathlib.Path) -> bool: return True -def valid_o3de_project_json(file_name: str or pathlib.Path) -> bool: +def valid_o3de_project_json(file_name: str or pathlib.Path, generate_uuid: bool = True) -> bool: file_name = pathlib.Path(file_name).resolve() if not file_name.is_file(): return False @@ -53,8 +54,22 @@ def valid_o3de_project_json(file_name: str or pathlib.Path) -> bool: try: json_data = json.load(f) test = json_data['project_name'] + + if not generate_uuid: + test = json_data['project_id'] + else: + test = json_data.get('project_id', 'No ID') + generate_new_id = test == 'No ID' + except (json.JSONDecodeError, KeyError) as e: return False + + # Generate a random uuid for the project json if it is missing instead of failing if generate_uuid is true + if generate_uuid and generate_new_id: + with file_name.open('w') as f: + new_uuid = '{' + str(uuid.uuid4()) + '}' + json_data.update({'project_id': new_uuid}) + f.write(json.dumps(json_data, indent=4) + '\n') return True diff --git a/scripts/o3de/tests/unit_test_project_properties.py b/scripts/o3de/tests/unit_test_project_properties.py index 0236e6cf90..1bcc6dcef3 100644 --- a/scripts/o3de/tests/unit_test_project_properties.py +++ b/scripts/o3de/tests/unit_test_project_properties.py @@ -16,6 +16,7 @@ from o3de import project_properties TEST_PROJECT_JSON_PAYLOAD = ''' { "project_name": "TestProject", + "project_id": "{24114e69-306d-4de6-b3b4-4cb1a3eca58e}" "origin": "The primary repo for TestProject goes here: i.e. http://www.mydomain.com", "license": "What license TestProject uses goes here: i.e. https://opensource.org/licenses/MIT", "display_name": "TestProject", @@ -45,20 +46,20 @@ def init_project_json_data(request): @pytest.mark.usefixtures('init_project_json_data') class TestEditProjectProperties: - @pytest.mark.parametrize("project_path, project_name, project_new_name, project_origin, project_display,\ - project_summary, project_icon, add_tags, delete_tags,\ - replace_tags, expected_result", [ + @pytest.mark.parametrize("project_path, project_name, project_new_name, project_id, project_origin,\ + project_display, project_summary, project_icon,\ + add_tags, delete_tags, replace_tags, expected_result", [ pytest.param(pathlib.PurePath('E:/TestProject'), - 'test', 'test', 'editing by pytest', 'Unit Test', 'pyTest project', 'pytest.bmp', 'A B C', + 'test', 'test', 'editing by pytest', 'ID', 'Unit Test', 'pyTest project', 'pytest.bmp', 'A B C', 'B', 'D E F', 0), pytest.param('', - 'test', 'test', 'editing by pytest', 'Unit Test', 'pyTest project', 'pytest.bmp', 'A B C', + 'test', 'test', 'editing by pytest', 'ID', 'Unit Test', 'pyTest project', 'pytest.bmp', 'A B C', 'B', 'D E F', 1) ] ) - def test_edit_project_properties(self, project_path, project_name, project_new_name, project_origin, project_display, - project_summary, project_icon, add_tags, delete_tags, - replace_tags, expected_result): + def test_edit_project_properties(self, project_path, project_name, project_new_name, project_origin, project_id, + project_display,project_summary, project_icon, add_tags, + delete_tags, replace_tags, expected_result): def get_project_json_data(project_name: str, project_path) -> dict: if not project_path: @@ -72,12 +73,14 @@ class TestEditProjectProperties: with patch('o3de.manifest.get_project_json_data', side_effect=get_project_json_data) as get_project_json_data_patch, \ patch('o3de.manifest.save_o3de_manifest', side_effect=save_o3de_manifest) as save_o3de_manifest_patch: - result = project_properties.edit_project_props(project_path, project_name, project_new_name, project_origin, - project_display, project_summary, project_icon, - add_tags, delete_tags, replace_tags) + result = project_properties.edit_project_props(project_path, project_name, project_new_name, project_id, + project_origin, project_display, project_summary, project_icon, + add_tags, delete_tags, replace_tags) assert result == expected_result if project_path: assert self.project_json.data + assert self.project_json.data.get('project_name', '') == project_new_name + assert self.project_json.data.get('project_id', '') == project_id assert self.project_json.data.get('origin', '') == project_origin assert self.project_json.data.get('display_name', '') == project_display assert self.project_json.data.get('summary', '') == project_summary From 1348b6e8258aa02302f1cc872a1f46629c023819 Mon Sep 17 00:00:00 2001 From: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> Date: Mon, 6 Dec 2021 09:52:52 -0800 Subject: [PATCH 008/113] Removed q file Signed-off-by: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> --- Code/Tools/ProjectManager/CMakeLists.txt | 2 - q | 48 ------------------------ 2 files changed, 50 deletions(-) delete mode 100644 q diff --git a/Code/Tools/ProjectManager/CMakeLists.txt b/Code/Tools/ProjectManager/CMakeLists.txt index b0e7ee9697..e76547ab5d 100644 --- a/Code/Tools/ProjectManager/CMakeLists.txt +++ b/Code/Tools/ProjectManager/CMakeLists.txt @@ -90,8 +90,6 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) 3rdParty::Python 3rdParty::pybind11 AZ::AzCore - AZ::AzCoreTestCommon - AZ::AzTestShared AZ::AzTest AZ::AzFramework AZ::AzFrameworkTestShared diff --git a/q b/q deleted file mode 100644 index fc1c268aef..0000000000 --- a/q +++ /dev/null @@ -1,48 +0,0 @@ - Prism/AddEditGemsButton - Prism/AddLicenseToGemCatalog - Prism/AddRemoveRepoWorkingUI - Prism/AddRepoDialog -* Prism/CmakeVariablesPerProject - Prism/CreateRepositoryScreen - Prism/CustomBuildParameters - Prism/CustomTabWidgetForEngine - Prism/DeleteUpdateGemsUI - Prism/DisplayAddGemInfo - Prism/EnterInFileDialog - Prism/ExternalLinkWarning - Prism/FasterBuildTimes - Prism/FixGemCart - Prism/FixGemCatalogHyperlinks - Prism/FixGemSelectedFilter - Prism/FixRemovedProjectStillShown - Prism/FixTabOverlayOnStartup - Prism/GemCatalogMenu - Prism/GemCatalogTests - Prism/GemCatalogWithoutProject - Prism/GemRepoInspector - Prism/RefreshAfterDownload - Prism/RefreshGemRepos - Prism/RefreshOnDownload - Prism/RefreshRepoButtonDisablesRepo - Prism/RemoteGemWarning - Prism/RemoveTabFocus - Prism/ResetBuildAndCacheAfterProjectMove - Prism/SearchForGemsFromTags - Prism/ShowGemDownloadStatus - Prism/ShowGemPreview - Prism/ShowGemRepoGems - Prism/ShowGemsInRepo - Prism/ShowRepoGems - Prism/ShowRepoList - Prism/UpdateTemplatePics - Prism/UseGemDisplayNames - Prism/VS2019InstallInstructions - Prism/WarnExternalLink - Prism/WarnVSNotInstalled - Prism/cherry-pick-gem-catalog-fix - Prism/gitRepos - development - new-feature - racoonteurs - stabilization/2110 - stabilization/2111RTE From a2fec5c367eb2f047493e5a504fcd1512a502660 Mon Sep 17 00:00:00 2001 From: Tobias Alexander Franke Date: Tue, 26 Oct 2021 09:48:50 +0800 Subject: [PATCH 009/113] keyword bug fixed Signed-off-by: T.J. McGrath-Daly --- .../ComponentEntityEditorPlugin/UI/Outliner/OutlinerWidget.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Code/Editor/Plugins/ComponentEntityEditorPlugin/UI/Outliner/OutlinerWidget.cpp b/Code/Editor/Plugins/ComponentEntityEditorPlugin/UI/Outliner/OutlinerWidget.cpp index af58ac4b6b..15bdfa9bf2 100644 --- a/Code/Editor/Plugins/ComponentEntityEditorPlugin/UI/Outliner/OutlinerWidget.cpp +++ b/Code/Editor/Plugins/ComponentEntityEditorPlugin/UI/Outliner/OutlinerWidget.cpp @@ -1281,6 +1281,8 @@ void OutlinerWidget::OnSearchTextChanged(const QString& activeTextFilter) m_listModel->SearchStringChanged(filterString); m_proxyModel->UpdateFilter(); + + m_gui->m_objectTree->expandAll(); } void OutlinerWidget::OnFilterChanged(const AzQtComponents::SearchTypeFilterList& activeTypeFilters) From 08cf53a3f663476307fb59f9d0d1c91353672017 Mon Sep 17 00:00:00 2001 From: mrieggeramzn Date: Tue, 7 Dec 2021 16:37:53 -0800 Subject: [PATCH 010/113] Fix warnings, add branch notifier Signed-off-by: mrieggeramzn --- .../Assets/ShaderLib/Atom/Features/LightCulling/NVLC.azsli | 4 ++-- .../Common/Assets/ShaderLib/Atom/Features/PBR/Decals.azsli | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/LightCulling/NVLC.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/LightCulling/NVLC.azsli index f6dfc0aab4..7878d946b8 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/LightCulling/NVLC.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/LightCulling/NVLC.azsli @@ -74,7 +74,7 @@ struct TileLightData bool Light_IsInsideBin(uint package, uint bin) { - return (package & (1 << bin)) != 0; + return (package & (1u << bin)) != 0; } uint PackLightIndexWithBinMask(uint ind, uint bins) @@ -130,7 +130,7 @@ uint NVLC_GetBin(const float viewZ, const TileLightData data) const float zFarCoordSystemAdjusted = data.zFar * RH_COORD_SYSTEM_REVERSE; float f = saturate( (abs(viewZCoordSystemAdjusted) - zNearCoordSystemAdjusted) / (zFarCoordSystemAdjusted - zNearCoordSystemAdjusted) ); - float bin = min(f, 0.999999) * float(1 << data.logMaxBins); + float bin = min(f, 0.999999) * float(1u << data.logMaxBins); return uint(bin); } diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Decals.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Decals.azsli index aecb89eb92..1863c749b0 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Decals.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/PBR/Decals.azsli @@ -54,6 +54,8 @@ void ApplyDecal(uint currDecalIndex, inout Surface surface) localPos = mul(decalRot, localPos); float3 decalUVW = localPos * rcp(decal.m_halfSize); + + [branch] if(decalUVW.x >= -1.0f && decalUVW.x <= 1.0f && decalUVW.y >= -1.0f && decalUVW.y <= 1.0f && decalUVW.z >= -1.0f && decalUVW.z <= 1.0f) @@ -72,6 +74,7 @@ void ApplyDecal(uint currDecalIndex, inout Surface surface) float2 normalMap = 0; // Each texture array handles a size permutation. // e.g. it could be that tex array 0 handles 256x256 and tex array 1 handles 512x64, etc. + [branch] switch(textureArrayIndex) { case 0: From 28e5e8b217b4f59fcb4791800e1c59adb4f6cbcc Mon Sep 17 00:00:00 2001 From: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> Date: Wed, 8 Dec 2021 05:43:10 -0800 Subject: [PATCH 011/113] Fix Project Built Tests Signed-off-by: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> --- .../tests/ProjectManagerSettingsTests.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp b/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp index 7ab93f798c..ba0cebd035 100644 --- a/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp +++ b/Code/Tools/ProjectManager/tests/ProjectManagerSettingsTests.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -40,11 +41,19 @@ namespace O3DE::ProjectManager m_registry->SetContext(m_serializeContext.get()); m_registry->SetContext(m_registrationContext.get()); + AZ::JsonSystemComponent::Reflect(m_registrationContext.get()); + + m_serializeContext->RegisterGenericType>(); + m_projectInfo.m_path = "Z:/ProjectTestPath"; } void TearDown() override { + m_registrationContext->EnableRemoveReflection(); + AZ::JsonSystemComponent::Reflect(m_registrationContext.get()); + m_registrationContext->DisableRemoveReflection(); + m_registrationContext.reset(); m_serializeContext.reset(); @@ -167,9 +176,9 @@ namespace O3DE::ProjectManager TEST_F(ProjectManagerSettingsTests, PMSettings_SetProjectBuiltUnsuccessfully_ReturnsFalse) { // Don't save to disk in test - EXPECT_TRUE(PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, true, /*saveToDisk*/ false)); + EXPECT_TRUE(PMSettings::SetProjectBuiltSuccessfully(m_projectInfo, false, /*saveToDisk*/ false)); - bool buildResult = true; + bool buildResult = false; EXPECT_TRUE(PMSettings::GetProjectBuiltSuccessfully(buildResult, m_projectInfo)); EXPECT_FALSE(buildResult); } From c7893e0386179b49c0011fe0f96492817cad016f Mon Sep 17 00:00:00 2001 From: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> Date: Wed, 8 Dec 2021 05:54:41 -0800 Subject: [PATCH 012/113] Remove unecessary change to CMakeLists.txt Signed-off-by: nggieber <52797929+AMZN-nggieber@users.noreply.github.com> --- Code/Tools/ProjectManager/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/Code/Tools/ProjectManager/CMakeLists.txt b/Code/Tools/ProjectManager/CMakeLists.txt index e76547ab5d..9974125ffb 100644 --- a/Code/Tools/ProjectManager/CMakeLists.txt +++ b/Code/Tools/ProjectManager/CMakeLists.txt @@ -89,7 +89,6 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED) 3rdParty::Qt::Widgets 3rdParty::Python 3rdParty::pybind11 - AZ::AzCore AZ::AzTest AZ::AzFramework AZ::AzFrameworkTestShared From 7f9ba0d0b62fa2a6211dbaea1900fbdd177b17f6 Mon Sep 17 00:00:00 2001 From: nwidmaie Date: Wed, 8 Dec 2021 12:43:38 -0800 Subject: [PATCH 013/113] Converting PbrMaterialChart to prefab, and moving to AutomatedTesting project Signed-off-by: nwidmaie --- .../PbrMaterialChart/PbrMaterialChart.prefab | 5361 +++++++++++++++++ .../PbrMaterialChart/materials/basic.material | 32 + .../materials/basic_m00_r00.material | 13 + .../materials/basic_m00_r01.material | 13 + .../materials/basic_m00_r02.material | 13 + .../materials/basic_m00_r03.material | 13 + .../materials/basic_m00_r04.material | 13 + .../materials/basic_m00_r05.material | 13 + .../materials/basic_m00_r06.material | 13 + .../materials/basic_m00_r07.material | 13 + .../materials/basic_m00_r08.material | 13 + .../materials/basic_m00_r09.material | 13 + .../materials/basic_m00_r10.material | 13 + .../materials/basic_m10_r00.material | 13 + .../materials/basic_m10_r01.material | 13 + .../materials/basic_m10_r02.material | 13 + .../materials/basic_m10_r03.material | 13 + .../materials/basic_m10_r04.material | 13 + .../materials/basic_m10_r05.material | 13 + .../materials/basic_m10_r06.material | 13 + .../materials/basic_m10_r07.material | 13 + .../materials/basic_m10_r08.material | 13 + .../materials/basic_m10_r09.material | 13 + .../materials/basic_m10_r10.material | 13 + .../Levels/PbrMaterialChart/tags.txt | 12 + AutomatedTesting/Objects/sphere.fbx | 3 + 26 files changed, 5694 insertions(+) create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/PbrMaterialChart.prefab create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r00.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r01.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r02.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r03.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r04.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r05.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r06.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r07.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r08.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r09.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r10.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r00.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r01.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r02.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r03.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r04.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r05.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r06.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r07.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r08.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r09.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r10.material create mode 100644 AutomatedTesting/Levels/PbrMaterialChart/tags.txt create mode 100644 AutomatedTesting/Objects/sphere.fbx diff --git a/AutomatedTesting/Levels/PbrMaterialChart/PbrMaterialChart.prefab b/AutomatedTesting/Levels/PbrMaterialChart/PbrMaterialChart.prefab new file mode 100644 index 0000000000..faa93597de --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/PbrMaterialChart.prefab @@ -0,0 +1,5361 @@ +{ + "ContainerEntity": { + "Id": "ContainerEntity", + "Name": "PbrMaterialChart", + "Components": { + "Component_[10182366347512475253]": { + "$type": "EditorPrefabComponent", + "Id": 10182366347512475253 + }, + "Component_[12917798267488243668]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12917798267488243668 + }, + "Component_[3261249813163778338]": { + "$type": "EditorOnlyEntityComponent", + "Id": 3261249813163778338 + }, + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 + }, + "Component_[4272963378099646759]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 4272963378099646759, + "Parent Entity": "" + }, + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 + }, + "Component_[5787060997243919943]": { + "$type": "EditorInspectorComponent", + "Id": 5787060997243919943 + }, + "Component_[7804170251266531779]": { + "$type": "EditorLockComponent", + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { + "$type": "EditorEntitySortComponent", + "Id": 7874177159288365422 + }, + "Component_[8018146290632383969]": { + "$type": "EditorEntityIconComponent", + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 + } + } + }, + "Entities": { + "Entity_[1579029125278]": { + "Id": "Entity_[1579029125278]", + "Name": "PointLights", + "Components": { + "Component_[12510478104502833762]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 12510478104502833762 + }, + "Component_[13423580362045259926]": { + "$type": "EditorOnlyEntityComponent", + "Id": 13423580362045259926 + }, + "Component_[13763004328692227859]": { + "$type": "EditorEntityIconComponent", + "Id": 13763004328692227859 + }, + "Component_[2520589158620366474]": { + "$type": "EditorInspectorComponent", + "Id": 2520589158620366474, + "ComponentOrderEntryArray": [ + { + "ComponentId": 534931914642899990 + } + ] + }, + "Component_[534931914642899990]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 534931914642899990, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + -0.02220340073108673, + 0.013456299901008606, + -0.00310519989579916 + ] + } + }, + "Component_[5737862213737495371]": { + "$type": "EditorEntitySortComponent", + "Id": 5737862213737495371, + "Child Entity Order": [ + "Entity_[1656338536606]", + "Entity_[1660633503902]", + "Entity_[1664928471198]", + "Entity_[1669223438494]", + "Entity_[1673518405790]", + "Entity_[1677813373086]", + "Entity_[1686403307678]", + "Entity_[1690698274974]", + "Entity_[1694993242270]", + "Entity_[1699288209566]", + "Entity_[1703583176862]", + "Entity_[1707878144158]", + "Entity_[1712173111454]", + "Entity_[1716468078750]", + "Entity_[464906102212]", + "Entity_[494970873284]", + "Entity_[460611134916]", + "Entity_[490675905988]", + "Entity_[456316167620]", + "Entity_[486380938692]", + "Entity_[452021200324]", + "Entity_[482085971396]", + "Entity_[447726233028]", + "Entity_[477791004100]", + "Entity_[443431265732]", + "Entity_[473496036804]", + "Entity_[439136298436]", + "Entity_[469201069508]" + ] + }, + "Component_[5835050117930709038]": { + "$type": "EditorLockComponent", + "Id": 5835050117930709038 + }, + "Component_[6088690331735476148]": { + "$type": "EditorVisibilityComponent", + "Id": 6088690331735476148 + }, + "Component_[749445421357843144]": { + "$type": "EditorPendingCompositionComponent", + "Id": 749445421357843144 + }, + "Component_[7514335123333124112]": { + "$type": "SelectionComponent", + "Id": 7514335123333124112 + } + } + }, + "Entity_[1656338536606]": { + "Id": "Entity_[1656338536606]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + 0.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5730069629780503964]": { + "$type": "EditorSphereShapeComponent", + "Id": 5730069629780503964, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1660633503902]": { + "Id": "Entity_[1660633503902]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + 12.0, + 6.0 + ] + } + }, + "Component_[12938187889472820644]": { + "$type": "EditorSphereShapeComponent", + "Id": 12938187889472820644, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1664928471198]": { + "Id": "Entity_[1664928471198]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + -10.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[15916755507523201463]": { + "$type": "EditorSphereShapeComponent", + "Id": 15916755507523201463, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1669223438494]": { + "Id": "Entity_[1669223438494]", + "Name": "Light", + "Components": { + "Component_[11441320324927657842]": { + "$type": "EditorSphereShapeComponent", + "Id": 11441320324927657842, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 0.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1673518405790]": { + "Id": "Entity_[1673518405790]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 12.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5078442133583813661]": { + "$type": "EditorSphereShapeComponent", + "Id": 5078442133583813661, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1677813373086]": { + "Id": "Entity_[1677813373086]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + -10.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + }, + "Component_[9989753495273560981]": { + "$type": "EditorSphereShapeComponent", + "Id": 9989753495273560981, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + } + } + }, + "Entity_[1686403307678]": { + "Id": "Entity_[1686403307678]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + -5.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[16566594251448483688]": { + "$type": "EditorSphereShapeComponent", + "Id": 16566594251448483688, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1690698274974]": { + "Id": "Entity_[1690698274974]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + -5.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + }, + "Component_[7725312483818004226]": { + "$type": "EditorSphereShapeComponent", + "Id": 7725312483818004226, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + } + } + }, + "Entity_[1694993242270]": { + "Id": "Entity_[1694993242270]", + "Name": "Light", + "Components": { + "Component_[11871171122135615232]": { + "$type": "EditorSphereShapeComponent", + "Id": 11871171122135615232, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + 5.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1699288209566]": { + "Id": "Entity_[1699288209566]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 5.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + }, + "Component_[946758060659896190]": { + "$type": "EditorSphereShapeComponent", + "Id": 946758060659896190, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + } + } + }, + "Entity_[1703583176862]": { + "Id": "Entity_[1703583176862]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + -15.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18375465984866315036]": { + "$type": "EditorSphereShapeComponent", + "Id": 18375465984866315036, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1707878144158]": { + "Id": "Entity_[1707878144158]", + "Name": "Light", + "Components": { + "Component_[10544885903241229342]": { + "$type": "EditorSphereShapeComponent", + "Id": 10544885903241229342, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + -15.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1712173111454]": { + "Id": "Entity_[1712173111454]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998569488525, + 15.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[2820371548226138928]": { + "$type": "EditorSphereShapeComponent", + "Id": 2820371548226138928, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[1716468078750]": { + "Id": "Entity_[1716468078750]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 15.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17202118748985219545]": { + "$type": "EditorSphereShapeComponent", + "Id": 17202118748985219545, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[220034968733]": { + "Id": "Entity_[220034968733]", + "Name": "Ball00", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{1FD47684-2E9E-5525-BBCA-251795F9033C}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r00.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]" + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[224329936029]": { + "Id": "Entity_[224329936029]", + "Name": "Ball01", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{B5660D78-818E-5273-AF3D-EC8189E2E6CB}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r01.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 1.9999995231628418, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[224935554679]": { + "Id": "Entity_[224935554679]", + "Name": "Readme", + "Components": { + "Component_[10181355386221924165]": { + "$type": "EditorEntitySortComponent", + "Id": 10181355386221924165 + }, + "Component_[13072143045335196472]": { + "$type": "EditorVisibilityComponent", + "Id": 13072143045335196472 + }, + "Component_[16296166970503880418]": { + "$type": "EditorLockComponent", + "Id": 16296166970503880418 + }, + "Component_[18321120872779505013]": { + "$type": "SelectionComponent", + "Id": 18321120872779505013 + }, + "Component_[1837311764425750149]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1837311764425750149 + }, + "Component_[1974029438267401978]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1974029438267401978 + }, + "Component_[6189137928773010292]": { + "$type": "EditorCommentComponent", + "Id": 6189137928773010292, + "Configuration": "This level shows StandardPBR materials on a metallic/roughness grid. We only use metallic=0 and metallic=1 for now because we don't have material scripting yet and we don't have 121 separate material files." + }, + "Component_[6233037103326923418]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 6233037103326923418, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + 1014.3161010742188, + 1031.1007080078125, + -12.083206176757813 + ] + } + }, + "Component_[8021470524138221046]": { + "$type": "EditorOnlyEntityComponent", + "Id": 8021470524138221046 + }, + "Component_[869896445061711038]": { + "$type": "EditorInspectorComponent", + "Id": 869896445061711038, + "ComponentOrderEntryArray": [ + { + "ComponentId": 6233037103326923418 + }, + { + "ComponentId": 6189137928773010292, + "SortIndex": 1 + } + ] + }, + "Component_[8844687677689032541]": { + "$type": "EditorEntityIconComponent", + "Id": 8844687677689032541 + } + } + }, + "Entity_[227116497304]": { + "Id": "Entity_[227116497304]", + "Name": "IBL", + "Components": { + "Component_[10348929778265892995]": { + "$type": "EditorEntityIconComponent", + "Id": 10348929778265892995 + }, + "Component_[10541730177588140472]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 10541730177588140472, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + -3.0222034454345703, + 6.013456344604492, + -51.00310516357422 + ] + } + }, + "Component_[11641917065646729270]": { + "$type": "SelectionComponent", + "Id": 11641917065646729270 + }, + "Component_[11941991254095032209]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 11941991254095032209 + }, + "Component_[16341934394936873930]": { + "$type": "EditorPendingCompositionComponent", + "Id": 16341934394936873930 + }, + "Component_[17356140692640757864]": { + "$type": "AZ::Render::EditorImageBasedLightComponent", + "Id": 17356140692640757864, + "Controller": { + "Configuration": { + "diffuseImageAsset": { + "assetId": { + "guid": "{AA144B9D-68F6-5191-9DD1-211B8D72802C}", + "subId": 3000 + }, + "assetHint": "materialeditor/lightingpresets/konzerthaus_latlong_iblskyboxcm_ibldiffuse.exr.streamingimage" + }, + "specularImageAsset": { + "assetId": { + "guid": "{AA144B9D-68F6-5191-9DD1-211B8D72802C}", + "subId": 2000 + }, + "assetHint": "materialeditor/lightingpresets/konzerthaus_latlong_iblskyboxcm_iblspecular.exr.streamingimage" + } + } + } + }, + "Component_[1774390999207442542]": { + "$type": "EditorEntitySortComponent", + "Id": 1774390999207442542 + }, + "Component_[18079152973233625329]": { + "$type": "EditorLockComponent", + "Id": 18079152973233625329 + }, + "Component_[5784619194218092681]": { + "$type": "EditorVisibilityComponent", + "Id": 5784619194218092681 + }, + "Component_[948613077222456118]": { + "$type": "EditorOnlyEntityComponent", + "Id": 948613077222456118 + }, + "Component_[9509912405166426602]": { + "$type": "EditorInspectorComponent", + "Id": 9509912405166426602, + "ComponentOrderEntryArray": [ + { + "ComponentId": 10541730177588140472 + }, + { + "ComponentId": 17356140692640757864, + "SortIndex": 1 + } + ] + } + } + }, + "Entity_[228624903325]": { + "Id": "Entity_[228624903325]", + "Name": "Ball02", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{512443BD-9511-5F13-A84A-3ED5DB9E9B5A}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r02.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 3.9999992847442627, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[232919870621]": { + "Id": "Entity_[232919870621]", + "Name": "Ball03", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{E28A5CC5-4B8B-5B90-877A-3D92C75DC75A}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r03.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 5.999998569488525, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[237214837917]": { + "Id": "Entity_[237214837917]", + "Name": "Ball04", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{1495BCCF-3F96-5D0B-8176-228DB22CEC82}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r04.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[241509805213]": { + "Id": "Entity_[241509805213]", + "Name": "Ball05", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{40494612-0ABF-55B5-9C56-E968763FCFDE}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r05.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 9.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[245804772509]": { + "Id": "Entity_[245804772509]", + "Name": "Ball06", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{76CF9D4A-009F-5494-83AB-6E3D4D1B4A36}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r06.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 11.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[250099739805]": { + "Id": "Entity_[250099739805]", + "Name": "Ball07", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{8431B792-E6CC-51DD-B82E-F3E4A12FCB4A}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r07.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 13.99999713897705, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[254394707101]": { + "Id": "Entity_[254394707101]", + "Name": "Ball08", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{4B1F29FF-7971-5524-AA1B-0DC2392A33C4}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r08.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 15.99999713897705, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[258689674397]": { + "Id": "Entity_[258689674397]", + "Name": "Ball09", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{785BE6DE-C0EB-5B47-9438-4F9ECFC34A96}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r09.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 17.999996185302734, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[262984641693]": { + "Id": "Entity_[262984641693]", + "Name": "Ball10", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{C40DE9AE-6756-57E7-B3B4-FB0542B5CD0F}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m00_r10.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[267279608989]", + "Transform Data": { + "Translate": [ + 19.999996185302734, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[267279608989]": { + "Id": "Entity_[267279608989]", + "Name": "Row", + "Components": { + "Component_[10431128421533587390]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 10431128421533587390 + }, + "Component_[12384319735386528488]": { + "$type": "EditorInspectorComponent", + "Id": 12384319735386528488, + "ComponentOrderEntryArray": [ + { + "ComponentId": 2138630967603263484 + } + ] + }, + "Component_[12698663999690413529]": { + "$type": "EditorVisibilityComponent", + "Id": 12698663999690413529 + }, + "Component_[13267882596040987058]": { + "$type": "EditorOnlyEntityComponent", + "Id": 13267882596040987058 + }, + "Component_[15031093406648363268]": { + "$type": "EditorLockComponent", + "Id": 15031093406648363268 + }, + "Component_[15177069797419761403]": { + "$type": "EditorEntitySortComponent", + "Id": 15177069797419761403, + "Child Entity Order": [ + "Entity_[220034968733]", + "Entity_[224329936029]", + "Entity_[228624903325]", + "Entity_[232919870621]", + "Entity_[237214837917]", + "Entity_[241509805213]", + "Entity_[245804772509]", + "Entity_[250099739805]", + "Entity_[254394707101]", + "Entity_[258689674397]", + "Entity_[262984641693]" + ] + }, + "Component_[17955329409582714617]": { + "$type": "SelectionComponent", + "Id": 17955329409582714617 + }, + "Component_[2138630967603263484]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 2138630967603263484, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + -0.02220340073108673, + -9.986543655395508, + -1.0031051635742188 + ], + "Rotate": [ + 0.0, + 0.0, + 90.00000762939453 + ] + } + }, + "Component_[3786501212457578744]": { + "$type": "EditorEntityIconComponent", + "Id": 3786501212457578744 + }, + "Component_[6440613696530771175]": { + "$type": "EditorPendingCompositionComponent", + "Id": 6440613696530771175 + } + } + }, + "Entity_[271574576285]": { + "Id": "Entity_[271574576285]", + "Name": "Row", + "Components": { + "Component_[10431128421533587390]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 10431128421533587390 + }, + "Component_[12384319735386528488]": { + "$type": "EditorInspectorComponent", + "Id": 12384319735386528488, + "ComponentOrderEntryArray": [ + { + "ComponentId": 2138630967603263484 + } + ] + }, + "Component_[12698663999690413529]": { + "$type": "EditorVisibilityComponent", + "Id": 12698663999690413529 + }, + "Component_[13267882596040987058]": { + "$type": "EditorOnlyEntityComponent", + "Id": 13267882596040987058 + }, + "Component_[15031093406648363268]": { + "$type": "EditorLockComponent", + "Id": 15031093406648363268 + }, + "Component_[15177069797419761403]": { + "$type": "EditorEntitySortComponent", + "Id": 15177069797419761403, + "Child Entity Order": [ + "Entity_[293049412765]", + "Entity_[301639347357]", + "Entity_[310229281949]", + "Entity_[318819216541]", + "Entity_[275869543581]", + "Entity_[280164510877]", + "Entity_[284459478173]", + "Entity_[288754445469]", + "Entity_[297344380061]", + "Entity_[305934314653]", + "Entity_[314524249245]" + ] + }, + "Component_[17955329409582714617]": { + "$type": "SelectionComponent", + "Id": 17955329409582714617 + }, + "Component_[2138630967603263484]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 2138630967603263484, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + -0.02220340073108673, + -9.986543655395508, + 0.9968947768211365 + ], + "Rotate": [ + 0.0, + 0.0, + 90.00000762939453 + ] + } + }, + "Component_[3786501212457578744]": { + "$type": "EditorEntityIconComponent", + "Id": 3786501212457578744 + }, + "Component_[6440613696530771175]": { + "$type": "EditorPendingCompositionComponent", + "Id": 6440613696530771175 + } + } + }, + "Entity_[275869543581]": { + "Id": "Entity_[275869543581]", + "Name": "Ball04", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{251C4C29-4ECD-5763-AF4F-20675EAC048B}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r04.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 7.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[280164510877]": { + "Id": "Entity_[280164510877]", + "Name": "Ball05", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{02D082C4-5032-57CC-A081-BC4D8518BCF0}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r05.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 9.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[284459478173]": { + "Id": "Entity_[284459478173]", + "Name": "Ball06", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{FA9D8842-95B2-5371-8352-CBEEEAABE676}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r06.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 11.999998092651367, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[288754445469]": { + "Id": "Entity_[288754445469]", + "Name": "Ball07", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{522A9626-FF4C-561A-A44A-64B68F7274D2}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r07.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 13.99999713897705, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[293049412765]": { + "Id": "Entity_[293049412765]", + "Name": "Ball00", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{06DDFD66-D7F5-5D55-8972-6D61276E88F6}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r00.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]" + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[297344380061]": { + "Id": "Entity_[297344380061]", + "Name": "Ball08", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{060EF1B7-1029-5227-B03B-1415C74E9D65}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r08.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 15.99999713897705, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[301639347357]": { + "Id": "Entity_[301639347357]", + "Name": "Ball01", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{7B7BC6F8-150A-518F-816E-2F7DBE786461}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r01.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 1.9999995231628418, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[305934314653]": { + "Id": "Entity_[305934314653]", + "Name": "Ball09", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{270881B6-21E9-509D-A6CD-1046674FB0BE}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r09.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 17.999996185302734, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[310229281949]": { + "Id": "Entity_[310229281949]", + "Name": "Ball02", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{C0538953-C56E-5C1A-BBE2-E6BE04764C20}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r02.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 3.9999992847442627, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[311518247264]": { + "Id": "Entity_[311518247264]", + "Name": "PbrMaterialChart_Assets", + "Components": { + "Component_[10482364804718329021]": { + "$type": "EditorPendingCompositionComponent", + "Id": 10482364804718329021 + }, + "Component_[10942888141582930027]": { + "$type": "EditorLockComponent", + "Id": 10942888141582930027 + }, + "Component_[13540203629041536166]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 13540203629041536166, + "Parent Entity": "ContainerEntity", + "Transform Data": { + "Rotate": [ + 0.0, + 0.0, + -90.0 + ] + } + }, + "Component_[13907911826554124970]": { + "$type": "EditorEntityIconComponent", + "Id": 13907911826554124970 + }, + "Component_[14302898759905097452]": { + "$type": "EditorEntitySortComponent", + "Id": 14302898759905097452, + "Child Entity Order": [ + "Entity_[224935554679]", + "Entity_[323114183837]", + "Entity_[267279608989]", + "Entity_[271574576285]", + "Entity_[227116497304]", + "Entity_[1579029125278]" + ] + }, + "Component_[6734926751345496430]": { + "$type": "EditorOnlyEntityComponent", + "Id": 6734926751345496430 + }, + "Component_[7859927512474268451]": { + "$type": "EditorInspectorComponent", + "Id": 7859927512474268451, + "ComponentOrderEntryArray": [ + { + "ComponentId": 13540203629041536166 + } + ] + }, + "Component_[8550690899908144218]": { + "$type": "SelectionComponent", + "Id": 8550690899908144218 + }, + "Component_[9251711315131563801]": { + "$type": "EditorVisibilityComponent", + "Id": 9251711315131563801 + }, + "Component_[9755014032434689168]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 9755014032434689168 + } + } + }, + "Entity_[314524249245]": { + "Id": "Entity_[314524249245]", + "Name": "Ball10", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{5EA26E09-E3D6-5181-8E7A-F2E98A24247C}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r10.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 19.999996185302734, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[318819216541]": { + "Id": "Entity_[318819216541]", + "Name": "Ball03", + "Components": { + "Component_[11750162722213114821]": { + "$type": "SelectionComponent", + "Id": 11750162722213114821 + }, + "Component_[12608893098077724053]": { + "$type": "EditorEntitySortComponent", + "Id": 12608893098077724053 + }, + "Component_[13797422028724928908]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13797422028724928908, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{61D16161-9F39-5A29-B927-ADF58E7E573B}", + "subId": 284780167 + }, + "assetHint": "objects/sphere.azmodel" + }, + "LodOverride": 255 + } + } + }, + "Component_[1492865274047869171]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 1492865274047869171 + }, + "Component_[15252998008739701164]": { + "$type": "EditorVisibilityComponent", + "Id": 15252998008739701164 + }, + "Component_[15365333384879292339]": { + "$type": "EditorInspectorComponent", + "Id": 15365333384879292339, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5985506260224649992 + }, + { + "ComponentId": 13797422028724928908, + "SortIndex": 1 + }, + { + "ComponentId": 5200514760734239788, + "SortIndex": 2 + } + ] + }, + "Component_[18296307565715962470]": { + "$type": "EditorPendingCompositionComponent", + "Id": 18296307565715962470 + }, + "Component_[1940145586700385602]": { + "$type": "EditorOnlyEntityComponent", + "Id": 1940145586700385602 + }, + "Component_[4820397163316962417]": { + "$type": "EditorEntityIconComponent", + "Id": 4820397163316962417 + }, + "Component_[5200514760734239788]": { + "$type": "EditorMaterialComponent", + "Id": 5200514760734239788, + "Controller": { + "Configuration": { + "materials": { + "{}": { + "MaterialAsset": { + "assetId": { + "guid": "{E1A5D708-7A49-5CCA-81C3-4CB337C47703}" + }, + "assetHint": "levels/pbrmaterialchart/materials/basic_m10_r03.azmaterial" + } + } + } + } + }, + "materialSlotsByLodEnabled": true + }, + "Component_[5985506260224649992]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5985506260224649992, + "Parent Entity": "Entity_[271574576285]", + "Transform Data": { + "Translate": [ + 5.999998569488525, + 0.0, + 0.0 + ] + } + }, + "Component_[7650403257628455609]": { + "$type": "EditorLockComponent", + "Id": 7650403257628455609 + } + } + }, + "Entity_[323114183837]": { + "Id": "Entity_[323114183837]", + "Name": "Camera1", + "Components": { + "Component_[10006292826835803540]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 10006292826835803540 + }, + "Component_[10455519191869797]": { + "$type": "EditorVisibilityComponent", + "Id": 10455519191869797 + }, + "Component_[11437375554946967375]": { + "$type": "EditorEntitySortComponent", + "Id": 11437375554946967375 + }, + "Component_[12353408053920436955]": { + "$type": "SelectionComponent", + "Id": 12353408053920436955 + }, + "Component_[13096751172875321905]": { + "$type": "EditorEntityIconComponent", + "Id": 13096751172875321905 + }, + "Component_[14346079281461734018]": { + "$type": "EditorLockComponent", + "Id": 14346079281461734018 + }, + "Component_[14601767610059792758]": { + "$type": "EditorPendingCompositionComponent", + "Id": 14601767610059792758 + }, + "Component_[1752468310352442380]": { + "$type": "GenericComponentWrapper", + "Id": 1752468310352442380, + "m_template": { + "$type": "FlyCameraInputComponent" + } + }, + "Component_[18443771986481731838]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 18443771986481731838, + "Parent Entity": "Entity_[311518247264]", + "Transform Data": { + "Translate": [ + 49.97779846191406, + 0.013456299901008606, + -0.00310519989579916 + ], + "Rotate": [ + 0.0, + 0.0, + 90.00000762939453 + ], + "Scale": [ + 1.0, + 1.0, + 0.9999998807907104 + ] + } + }, + "Component_[646706054417436776]": { + "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent", + "Id": 646706054417436776, + "Controller": { + "Configuration": { + "EditorEntityId": 323114183837 + } + } + }, + "Component_[8037556047509300929]": { + "$type": "EditorOnlyEntityComponent", + "Id": 8037556047509300929 + }, + "Component_[9357115853003317593]": { + "$type": "EditorInspectorComponent", + "Id": 9357115853003317593, + "ComponentOrderEntryArray": [ + { + "ComponentId": 18443771986481731838 + }, + { + "ComponentId": 646706054417436776, + "SortIndex": 1 + }, + { + "ComponentId": 1752468310352442380, + "SortIndex": 2 + } + ] + } + } + }, + "Entity_[439136298436]": { + "Id": "Entity_[439136298436]", + "Name": "Light", + "Components": { + "Component_[11029917022661117076]": { + "$type": "EditorSphereShapeComponent", + "Id": 11029917022661117076, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 15.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[443431265732]": { + "Id": "Entity_[443431265732]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -10.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18059889152590511471]": { + "$type": "EditorSphereShapeComponent", + "Id": 18059889152590511471, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[447726233028]": { + "Id": "Entity_[447726233028]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -15.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3116905989016577951]": { + "$type": "EditorSphereShapeComponent", + "Id": 3116905989016577951, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[452021200324]": { + "Id": "Entity_[452021200324]", + "Name": "Light", + "Components": { + "Component_[11880996669921269387]": { + "$type": "EditorSphereShapeComponent", + "Id": 11880996669921269387, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 12.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[456316167620]": { + "Id": "Entity_[456316167620]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -15.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[15861630875009954708]": { + "$type": "EditorSphereShapeComponent", + "Id": 15861630875009954708, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[460611134916]": { + "Id": "Entity_[460611134916]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 0.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[2667740107500775267]": { + "$type": "EditorSphereShapeComponent", + "Id": 2667740107500775267, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[464906102212]": { + "Id": "Entity_[464906102212]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 5.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + }, + "Component_[9077284412210882947]": { + "$type": "EditorSphereShapeComponent", + "Id": 9077284412210882947, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + } + } + }, + "Entity_[469201069508]": { + "Id": "Entity_[469201069508]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -10.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[2210433037075578051]": { + "$type": "EditorSphereShapeComponent", + "Id": 2210433037075578051, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[473496036804]": { + "Id": "Entity_[473496036804]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 5.0, + 6.0 + ] + } + }, + "Component_[12980894623939584115]": { + "$type": "EditorSphereShapeComponent", + "Id": 12980894623939584115, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[477791004100]": { + "Id": "Entity_[477791004100]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 12.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18236955021241851736]": { + "$type": "EditorSphereShapeComponent", + "Id": 18236955021241851736, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[482085971396]": { + "Id": "Entity_[482085971396]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -5.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + }, + "Component_[868225960524074909]": { + "$type": "EditorSphereShapeComponent", + "Id": 868225960524074909, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + } + } + }, + "Entity_[486380938692]": { + "Id": "Entity_[486380938692]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 0.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[232169833717435589]": { + "$type": "EditorSphereShapeComponent", + "Id": 232169833717435589, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[490675905988]": { + "Id": "Entity_[490675905988]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + -5.0, + 6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18055528880793132775]": { + "$type": "EditorSphereShapeComponent", + "Id": 18055528880793132775, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + }, + "Entity_[494970873284]": { + "Id": "Entity_[494970873284]", + "Name": "Light", + "Components": { + "Component_[12284008075844705430]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12284008075844705430, + "Parent Entity": "Entity_[1579029125278]", + "Transform Data": { + "Translate": [ + -7.999996662139893, + 15.0, + -6.0 + ] + } + }, + "Component_[13457184847449496840]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 13457184847449496840 + }, + "Component_[14431842353830635996]": { + "$type": "EditorLockComponent", + "Id": 14431842353830635996 + }, + "Component_[1473579476469110229]": { + "$type": "EditorPendingCompositionComponent", + "Id": 1473579476469110229 + }, + "Component_[17008596888127953988]": { + "$type": "EditorEntitySortComponent", + "Id": 17008596888127953988 + }, + "Component_[17246196475221723560]": { + "$type": "EditorInspectorComponent", + "Id": 17246196475221723560, + "ComponentOrderEntryArray": [ + { + "ComponentId": 12284008075844705430 + }, + { + "ComponentId": 7864910209001174169, + "SortIndex": 1 + } + ] + }, + "Component_[18388752482036682870]": { + "$type": "EditorOnlyEntityComponent", + "Id": 18388752482036682870 + }, + "Component_[3917765902796274739]": { + "$type": "EditorEntityIconComponent", + "Id": 3917765902796274739 + }, + "Component_[4143676462074671972]": { + "$type": "AZ::Render::EditorAreaLightComponent", + "Id": 4143676462074671972, + "Controller": { + "Configuration": { + "LightType": 1, + "IntensityMode": 1, + "Intensity": 50.0, + "AttenuationRadius": 79.26654815673828 + } + } + }, + "Component_[4863305662794796025]": { + "$type": "EditorVisibilityComponent", + "Id": 4863305662794796025 + }, + "Component_[565296772593396698]": { + "$type": "EditorSphereShapeComponent", + "Id": 565296772593396698, + "ShapeColor": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "SphereShape": { + "Configuration": { + "Radius": 0.05000000074505806 + } + } + }, + "Component_[5902189275159544426]": { + "$type": "SelectionComponent", + "Id": 5902189275159544426 + } + } + } + } +} \ No newline at end of file diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic.material new file mode 100644 index 0000000000..32ac8dfd10 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic.material @@ -0,0 +1,32 @@ +{ + "materialType": "Materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "baseColor": { + "color": [ 1.0, 1.0, 1.0 ], + "factor": 0.75, + "useTexture": false, + "textureMap": "" + }, + "metallic": { + "factor": 0.0, + "useTexture": false, + "textureMap": "" + }, + "roughness": { + "factor": 0.0, + "useTexture": false, + "textureMap": "" + }, + "specularF0": { + "factor": 0.5, + "useTexture": false, + "textureMap": "" + }, + "normal": { + "factor": 1.0, + "useTexture": false, + "textureMap": "" + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r00.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r00.material new file mode 100644 index 0000000000..dcadcb9bfe --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r00.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.0 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r01.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r01.material new file mode 100644 index 0000000000..0c2b3e62b3 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r01.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.1 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r02.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r02.material new file mode 100644 index 0000000000..8d29890384 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r02.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.2 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r03.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r03.material new file mode 100644 index 0000000000..bb9557241b --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r03.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.3 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r04.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r04.material new file mode 100644 index 0000000000..e14e2899fa --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r04.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.4 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r05.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r05.material new file mode 100644 index 0000000000..344ce084e5 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r05.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.5 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r06.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r06.material new file mode 100644 index 0000000000..0f8195653f --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r06.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.6 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r07.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r07.material new file mode 100644 index 0000000000..d5d95ff285 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r07.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.7 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r08.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r08.material new file mode 100644 index 0000000000..801b138831 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r08.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.8 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r09.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r09.material new file mode 100644 index 0000000000..0710a320cb --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r09.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 0.9 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r10.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r10.material new file mode 100644 index 0000000000..d1cc781c61 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m00_r10.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 0.0 + }, + "roughness": { + "factor": 1.0 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r00.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r00.material new file mode 100644 index 0000000000..945cd1e9eb --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r00.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.0 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r01.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r01.material new file mode 100644 index 0000000000..85f6008782 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r01.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.1 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r02.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r02.material new file mode 100644 index 0000000000..5abedc34e2 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r02.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.2 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r03.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r03.material new file mode 100644 index 0000000000..50b37a647d --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r03.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.3 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r04.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r04.material new file mode 100644 index 0000000000..ad74ddf08b --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r04.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.4 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r05.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r05.material new file mode 100644 index 0000000000..f7f3260b97 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r05.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.5 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r06.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r06.material new file mode 100644 index 0000000000..fc982f9c22 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r06.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.6 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r07.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r07.material new file mode 100644 index 0000000000..c4526dfd2c --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r07.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.7 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r08.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r08.material new file mode 100644 index 0000000000..f756a36ded --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r08.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.8 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r09.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r09.material new file mode 100644 index 0000000000..a853979d6d --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r09.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 0.9 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r10.material b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r10.material new file mode 100644 index 0000000000..e4528d45fd --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/materials/basic_m10_r10.material @@ -0,0 +1,13 @@ +{ + "parentMaterial": "./basic.material", + "materialType": "materials/Types/StandardPBR.materialtype", + "propertyLayoutVersion": 1, + "properties": { + "metallic": { + "factor": 1.0 + }, + "roughness": { + "factor": 1.0 + } + } +} diff --git a/AutomatedTesting/Levels/PbrMaterialChart/tags.txt b/AutomatedTesting/Levels/PbrMaterialChart/tags.txt new file mode 100644 index 0000000000..0d6c1880e7 --- /dev/null +++ b/AutomatedTesting/Levels/PbrMaterialChart/tags.txt @@ -0,0 +1,12 @@ +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 +0,0,0,0,0,0 diff --git a/AutomatedTesting/Objects/sphere.fbx b/AutomatedTesting/Objects/sphere.fbx new file mode 100644 index 0000000000..5c8f550c8c --- /dev/null +++ b/AutomatedTesting/Objects/sphere.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a476e99b55cf2a76fef6775c5a57dad29f8ffcb942c625bab04c89051a72a560 +size 62626 From a6b2e2cabd99ce4d0b140e3a2186d11bce1f744c Mon Sep 17 00:00:00 2001 From: lsemp3d <58790905+lsemp3d@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:59:57 -0800 Subject: [PATCH 014/113] Enabled the Script Canvas Minimap. It will be tested and any performance concerns will be addressed Signed-off-by: lsemp3d <58790905+lsemp3d@users.noreply.github.com> --- .../Code/Editor/View/Windows/MainWindow.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp index fa13681879..4379d7ed47 100644 --- a/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp +++ b/Gems/ScriptCanvas/Code/Editor/View/Windows/MainWindow.cpp @@ -791,11 +791,7 @@ namespace ScriptCanvasEditor // View menu connect(ui->action_ViewNodePalette, &QAction::triggered, this, &MainWindow::OnViewNodePalette); - - // Disabling the Minimap since it does not play nicely with the Qt caching solution - // And causing some weird visual issues. connect(ui->action_ViewMiniMap, &QAction::triggered, this, &MainWindow::OnViewMiniMap); - ui->action_ViewMiniMap->setVisible(false); connect(ui->action_ViewProperties, &QAction::triggered, this, &MainWindow::OnViewProperties); connect(ui->action_ViewBookmarks, &QAction::triggered, this, &MainWindow::OnBookmarks); @@ -2774,14 +2770,12 @@ namespace ScriptCanvasEditor m_logPanel->hide(); } - /* Disable Mini-map until we fix rendering performance if (m_minimap) { addDockWidget(Qt::LeftDockWidgetArea, m_minimap); m_minimap->setFloating(false); - m_minimap->hide(); + m_minimap->show(); } - */ if (m_nodePalette) { @@ -2825,14 +2819,12 @@ namespace ScriptCanvasEditor m_bookmarkDockWidget->hide(); } - /* Disable mini-map until we fix rendering performance if (m_minimap) { addDockWidget(Qt::RightDockWidgetArea, m_minimap); m_minimap->setFloating(false); - m_minimap->hide(); + m_minimap->show(); } - */ resizeDocks( { m_nodePalette, m_propertyGrid }, From 4992bce4c2ab03e93c715e7abdc93298bf9ed171 Mon Sep 17 00:00:00 2001 From: evanchia Date: Wed, 8 Dec 2021 14:09:48 -0800 Subject: [PATCH 015/113] Modified Jenkinsfile to upload test artifacts on failure Signed-off-by: evanchia --- scripts/build/Jenkins/Jenkinsfile | 55 ++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/scripts/build/Jenkins/Jenkinsfile b/scripts/build/Jenkins/Jenkinsfile index 98011503af..8114d7e062 100644 --- a/scripts/build/Jenkins/Jenkinsfile +++ b/scripts/build/Jenkins/Jenkinsfile @@ -76,11 +76,11 @@ def palRm(path) { def palRmDir(path) { if (env.IS_UNIX) { sh label: "Removing ${path}", - script: "rm -rf ${path}" + script: "if [ -d ${path} ]; then rm -rf ${path}; fi" } else { def win_path = path.replace('/','\\') bat label: "Removing ${win_path}", - script: "rd /s /q ${win_path}" + script: "IF exist ${win_path} rd /s /q ${win_path}" } } @@ -406,10 +406,6 @@ def ExportTestResults(Map options, String platform, String type, String workspac def o3deroot = "${workspace}/${ENGINE_REPOSITORY_NAME}" dir("${o3deroot}/${params.OUTPUT_DIRECTORY}") { junit testResults: "Testing/**/*.xml" - palRmDir("Testing") - // Recreate test runner xml directories that need to be pre generated - palMkdir("Testing/Pytest") - palMkdir("Testing/Gtest") } } } @@ -461,9 +457,26 @@ def UploadAPLogs(String platformName, String jobName, String workspace, Map para } } -def PostBuildCommonSteps(String workspace, boolean mount = true) { - echo 'Starting post-build common steps...' +def UploadTestArtifacts(String jobName, String workspace, String outputDirectory) { + catchError(message: "Error archiving test artifacts (this won't fail the build)", buildResult: 'UNSTABLE', stageResult: 'FAILURE') { + def cmakeBuildDir = [workspace, ENGINE_REPOSITORY_NAME, outputDirectory].join('/') + echo "Uploading Test Artifacts: ${cmakeBuildDir}/Testing" + ArchiveArtifactsOnS3("${cmakeBuildDir}/Testing", "test_artifacts/${jobName}", true) + } +} +def PostBuildCommonSteps(String workspace, Map params, boolean mount = true) { + echo 'Starting post-build common steps...' + if (params && params.containsKey('OUTPUT_DIRECTORY')){ + dir([workspace, ENGINE_REPOSITORY_NAME, params.OUTPUT_DIRECTORY].join('/')){ + // Clean up Testing directory + palRmDir("Testing") + // Recreate test runner xml directories that need to be pre generated + palMkdir("Testing/Pytest") + palMkdir("Testing/Gtest") + } + } + if (mount) { def pythonCmd = '' if(env.IS_UNIX) pythonCmd = 'sudo -E python3 -u ' @@ -532,10 +545,18 @@ def CreateUploadAPLogsStage(String platformName, String jobName, String workspac } } -def CreateTeardownStage(Map environmentVars) { +def CreateUploadTestArtifactStage(String jobName, String workspace, String outputDirectory) { + return { + stage("${jobName}_upload_test_artifacts") { + UploadTestArtifacts(jobName, workspace, outputDirectory) + } + } +} + +def CreateTeardownStage(Map environmentVars, Map params) { return { stage('Teardown') { - PostBuildCommonSteps(environmentVars['WORKSPACE'], environmentVars['MOUNT_VOLUME']) + PostBuildCommonSteps(environmentVars['WORKSPACE'], params, environmentVars['MOUNT_VOLUME']) } } } @@ -552,6 +573,7 @@ def CreateSingleNode(Map pipelineConfig, def platform, def build_job, Map envVar } withEnv(GetEnvStringList(envVars)) { def build_job_name = build_job.key + def params = platform.value.build_types[build_job_name].PARAMETERS try { CreateSetupStage(pipelineConfig, snapshot, repositoryName, projectName, pipelineName, branchName, platform.key, build_job.key, envVars, onlyMountEBSVolume).call() @@ -559,6 +581,7 @@ def CreateSingleNode(Map pipelineConfig, def platform, def build_job, Map envVar pipelineEnvVars = GetBuildEnvVars(platform.value.PIPELINE_ENV ?: EMPTY_JSON, build_job.value.PIPELINE_ENV ?: EMPTY_JSON, pipelineName) build_job.value.steps.each { build_step -> build_job_name = build_step + params = platform.value.build_types[build_job_name].PARAMETERS // This addition of maps makes it that the right operand will override entries if they overlap with the left operand envVars = pipelineEnvVars + GetBuildEnvVars(platform.value.PIPELINE_ENV ?: EMPTY_JSON, platform.value.build_types[build_step].PIPELINE_ENV ?: EMPTY_JSON, pipelineName) try { @@ -586,16 +609,18 @@ def CreateSingleNode(Map pipelineConfig, def platform, def build_job, Map envVar if (build_job_name.toLowerCase().contains('asset') && env.IS_UPLOAD_AP_LOGS?.toBoolean()) { CreateUploadAPLogsStage(platform.key, build_job_name, envVars['WORKSPACE'], platform.value.build_types[build_job_name].PARAMETERS).call() } + // Upload test artifacts only on builds that failed and ran test suites + if (params.containsKey('CMAKE_TARGET') && params.CMAKE_TARGET.contains("TEST_SUITE")) { + CreateUploadTestArtifactStage(build_job_name, envVars['WORKSPACE'], params.OUTPUT_DIRECTORY).call() + } // All other errors will be raised outside the retry block currentResult = envVars['ON_FAILURE_MARK'] ?: 'FAILURE' currentException = e.toString() } finally { - def params = platform.value.build_types[build_job_name].PARAMETERS + if (env.MARS_REPO && params && params.containsKey('TEST_METRICS') && params.TEST_METRICS == 'True') { - def output_directory = params.OUTPUT_DIRECTORY - def configuration = params.CONFIGURATION - CreateTestMetricsStage(pipelineConfig, branchName, envVars, build_job_name, output_directory, configuration).call() + CreateTestMetricsStage(pipelineConfig, branchName, envVars, build_job_name, params.OUTPUT_DIRECTORY, params.CONFIGURATION).call() } if (params && params.containsKey('TEST_RESULTS') && params.TEST_RESULTS == 'True') { CreateExportTestResultsStage(pipelineConfig, platform.key, build_job_name, envVars, params).call() @@ -603,7 +628,7 @@ def CreateSingleNode(Map pipelineConfig, def platform, def build_job, Map envVar if (params && params.containsKey('TEST_SCREENSHOTS') && params.TEST_SCREENSHOTS == 'True' && currentResult == 'FAILURE') { CreateExportTestScreenshotsStage(pipelineConfig, branchName, platform.key, build_job_name, envVars, params).call() } - CreateTeardownStage(envVars).call() + CreateTeardownStage(envVars, params).call() } } } From c58a742296eac19e2f936c20d4ec17b57f7e4441 Mon Sep 17 00:00:00 2001 From: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com> Date: Wed, 8 Dec 2021 18:35:45 -0700 Subject: [PATCH 016/113] Switched to a single merged ProbeData texture instead of separate textures for Relocation and Classification. Switched to HDR irradiance. SDK Update. Fixed a Vulkan validation error on RayTracingSceneSrg::MeshInfo. Improvements to DiffuseProbeGrid blending. Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com> --- .../RayTracing/RayTracingSceneSrg.azsli | 14 +- .../RayTracing/RayTracingSceneUtils.azsli | 2 +- .../DiffuseComposite.azsl | 37 ++- .../diffuseprobegridblenddistance.azshader | Bin 77447 -> 79451 bytes ...begridblenddistance_dx12_0.azshadervariant | Bin 8258 -> 8338 bytes ...begridblenddistance_null_0.azshadervariant | Bin 486 -> 486 bytes ...gridblenddistance_vulkan_0.azshadervariant | Bin 8286 -> 12618 bytes .../diffuseprobegridblendirradiance.azshader | Bin 77491 -> 79495 bytes ...gridblendirradiance_dx12_0.azshadervariant | Bin 9034 -> 9314 bytes ...gridblendirradiance_null_0.azshadervariant | Bin 486 -> 486 bytes ...idblendirradiance_vulkan_0.azshadervariant | Bin 10002 -> 15030 bytes ...iffuseprobegridborderupdatecolumn.azshader | Bin 27583 -> 27583 bytes ...dborderupdatecolumn_dx12_0.azshadervariant | Bin 4522 -> 4522 bytes ...dborderupdatecolumn_null_0.azshadervariant | Bin 486 -> 486 bytes ...orderupdatecolumn_vulkan_0.azshadervariant | Bin 2701 -> 2701 bytes .../diffuseprobegridborderupdaterow.azshader | Bin 27580 -> 27580 bytes ...gridborderupdaterow_dx12_0.azshadervariant | Bin 4338 -> 4338 bytes ...gridborderupdaterow_null_0.azshadervariant | Bin 486 -> 486 bytes ...idborderupdaterow_vulkan_0.azshadervariant | Bin 2222 -> 2222 bytes .../diffuseprobegridclassification.azshader | Bin 74952 -> 76956 bytes ...egridclassification_dx12_0.azshadervariant | Bin 6166 -> 6994 bytes ...egridclassification_null_0.azshadervariant | Bin 486 -> 486 bytes ...ridclassification_vulkan_0.azshadervariant | Bin 4962 -> 10274 bytes .../diffuseprobegridraytracing.azshader | Bin 142100 -> 141617 bytes ...probegridraytracing_dx12_0.azshadervariant | Bin 32042 -> 31886 bytes ...probegridraytracing_null_0.azshadervariant | Bin 486 -> 486 bytes ...obegridraytracing_vulkan_0.azshadervariant | Bin 34600 -> 36188 bytes ...fuseprobegridraytracingclosesthit.azshader | Bin 142110 -> 141627 bytes ...aytracingclosesthit_dx12_0.azshadervariant | Bin 13094 -> 13174 bytes ...aytracingclosesthit_null_0.azshadervariant | Bin 486 -> 486 bytes ...tracingclosesthit_vulkan_0.azshadervariant | Bin 5404 -> 5364 bytes .../diffuseprobegridraytracingmiss.azshader | Bin 142104 -> 141621 bytes ...egridraytracingmiss_dx12_0.azshadervariant | Bin 13262 -> 13314 bytes ...egridraytracingmiss_null_0.azshadervariant | Bin 486 -> 486 bytes ...ridraytracingmiss_vulkan_0.azshadervariant | Bin 6396 -> 6396 bytes .../diffuseprobegridrelocation.azshader | Bin 77960 -> 79904 bytes ...probegridrelocation_dx12_0.azshadervariant | Bin 8046 -> 7994 bytes ...probegridrelocation_null_0.azshadervariant | Bin 486 -> 486 bytes ...obegridrelocation_vulkan_0.azshadervariant | Bin 9442 -> 11362 bytes .../diffuseprobegridrender.azshader | Bin 240486 -> 240003 bytes ...fuseprobegridrender_dx12_0.azshadervariant | Bin 32739 -> 32631 bytes ...fuseprobegridrender_null_0.azshadervariant | Bin 589 -> 589 bytes ...seprobegridrender_vulkan_0.azshadervariant | Bin 23141 -> 24581 bytes ...iffuseProbeGridFeatureProcessorInterface.h | 24 +- .../DiffuseProbeGrid.cpp | 224 ++++++------------ .../DiffuseProbeGrid.h | 39 +-- .../DiffuseProbeGridBlendDistancePass.cpp | 6 +- .../DiffuseProbeGridBlendIrradiancePass.cpp | 18 +- .../DiffuseProbeGridClassificationPass.cpp | 6 +- .../DiffuseProbeGridFeatureProcessor.cpp | 15 +- .../DiffuseProbeGridFeatureProcessor.h | 6 +- .../DiffuseProbeGridRayTracingPass.cpp | 23 +- .../DiffuseProbeGridRelocationPass.cpp | 6 +- .../DiffuseProbeGridRenderPass.cpp | 33 +-- .../DiffuseProbeGridTextureReadback.cpp | 22 +- .../DiffuseProbeGridTextureReadback.h | 6 +- .../RayTracing/RayTracingFeatureProcessor.cpp | 3 +- .../RayTracing/RayTracingFeatureProcessor.h | 8 +- .../DiffuseProbeGridComponentController.cpp | 45 ++-- .../DiffuseProbeGridComponentController.h | 6 +- .../EditorDiffuseProbeGridComponent.cpp | 42 +--- 61 files changed, 197 insertions(+), 388 deletions(-) diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneSrg.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneSrg.azsli index c4141c6eb2..1ef06b3219 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneSrg.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneSrg.azsli @@ -134,15 +134,13 @@ ShaderResourceGroup RayTracingSceneSrg : SRG_RayTracingScene uint m_normalOffset; uint m_tangentOffset; uint m_bitangentOffset; - uint m_uvOffset; - float m_padding0[2]; - - float4 m_irradianceColor; - float3x3 m_worldInvTranspose; - float m_padding1; - + uint m_uvOffset; + uint m_bufferFlags; uint m_bufferStartIndex; + + float4 m_irradianceColor; + float3x4 m_worldInvTranspose; }; // hit shaders can retrieve the MeshInfo for a mesh hit using: RayTracingSceneSrg::m_meshInfo[InstanceIndex()] @@ -163,4 +161,4 @@ ShaderResourceGroup RayTracingSceneSrg : SRG_RayTracingScene // - Optional stream buffers such as Tangent, Bitangent, and UV are indicated in the MeshInfo.m_bufferFlags field // - Buffers for a particular mesh start at MeshInfo.m_bufferStartIndex ByteAddressBuffer m_meshBuffers[]; -} \ No newline at end of file +} diff --git a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneUtils.azsli b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneUtils.azsli index 9e34edf048..e203a0d425 100644 --- a/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneUtils.azsli +++ b/Gems/Atom/Feature/Common/Assets/ShaderLib/Atom/Features/RayTracing/RayTracingSceneUtils.azsli @@ -124,4 +124,4 @@ VertexData GetHitInterpolatedVertexData(RayTracingSceneSrg::MeshInfo meshInfo, f vertexData.m_bitangent = normalize(vertexData.m_bitangent); return vertexData; -} \ No newline at end of file +} diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseComposite.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseComposite.azsl index 64ee955a46..9aa169beea 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseComposite.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/DiffuseComposite.azsl @@ -68,9 +68,7 @@ float3 SampleProbeIrradiance(uint sampleIndex, uint2 probeIrradianceCoords, floa if (abs(depth - downsampledDepth) <= DepthTolerance) { // use this irradiance sample - float3 probeIrradiance = PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords, sampleIndex).rgb; - probeIrradiance = saturate(probeIrradiance); - return probeIrradiance; + return PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords, sampleIndex).rgb; } } @@ -99,9 +97,7 @@ float3 SampleProbeIrradiance(uint sampleIndex, uint2 probeIrradianceCoords, floa float downsampledDepth = PassSrg::m_downsampledDepth.Load(probeIrradianceCoords + int2(x, y), sampleIndex).r; if (abs(depth - downsampledDepth) <= DepthTolerance) { - float3 probeIrradiance = PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords + int2(x, y), sampleIndex).rgb; - probeIrradiance = saturate(probeIrradiance); - return probeIrradiance; + return PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords + int2(x, y), sampleIndex).rgb; } closestDot = normalDot; @@ -111,9 +107,7 @@ float3 SampleProbeIrradiance(uint sampleIndex, uint2 probeIrradianceCoords, floa } } - float3 probeIrradiance = PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords + closestOffset, sampleIndex).rgb; - probeIrradiance = saturate(probeIrradiance); - return probeIrradiance; + return PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords + closestOffset, sampleIndex).rgb; } // retrieve irradiance from the global IBL diffuse cubemap @@ -156,22 +150,23 @@ PSOutput MainPS(VSOutput IN, in uint sampleIndex : SV_SampleIndex) float4 encodedNormal = PassSrg::m_normal.Load(screenCoords, sampleIndex); float3 normal = DecodeNormalSignedOctahedron(encodedNormal.rgb); float4 albedo = PassSrg::m_albedo.Load(screenCoords, sampleIndex); - float useProbeIrradiance = PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords, sampleIndex).a; + float probeIrradianceBlendWeight = PassSrg::m_downsampledProbeIrradiance.Load(probeIrradianceCoords, sampleIndex).a; float3 diffuse = float3(0.0f, 0.0f, 0.0f); - if (useProbeIrradiance > 0.0f) - { - float3 irradiance = SampleProbeIrradiance(sampleIndex, probeIrradianceCoords, depth, normal, albedo, PassSrg::m_imageScale); - diffuse = (albedo.rgb / PI) * irradiance; - } - else + if (probeIrradianceBlendWeight > 0.0f) { - float3 irradiance = SampleGlobalIBL(sampleIndex, screenCoords, depth, normal); - diffuse = albedo * irradiance; + float3 probeIrradiance = SampleProbeIrradiance(sampleIndex, probeIrradianceCoords, depth, normal, albedo, PassSrg::m_imageScale); + diffuse = (albedo.rgb / PI) * probeIrradiance * probeIrradianceBlendWeight; + } - // adjust IBL lighting by exposure. - float iblExposureFactor = pow(2.0, SceneSrg::m_iblExposure); - diffuse *= iblExposureFactor; + if (probeIrradianceBlendWeight < 1.0f) + { + float3 globalIrradiance = SampleGlobalIBL(sampleIndex, screenCoords, depth, normal); + + // adjust IBL lighting by exposure + float3 globalDiffuse = (albedo * globalIrradiance) * pow(2.0, SceneSrg::m_iblExposure); + + diffuse += globalDiffuse * (1.0f - probeIrradianceBlendWeight); } PSOutput OUT; diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance.azshader index a9b5567f6b19d075222ab9881cf3b3ff0aae7994..cf40e7fc4cc08f13f34748a97ef8c81c8788286a 100644 GIT binary patch delta 7009 zcmeI0T}+!*7{_IGs%?Lf`?;Mr4n7^taX2V`Q!{aB|n@1g+J{+#~jW zJJOFl6`1a{Y+jWF_|%UHF7B1XWjq6IK`Nd#s!^fPU`B3HsJdI+y)H+4U9YoE-wkti zA>3&i7~~dZOqVbSRhPBI2v3?FGa3cQ^w6A^hf}*XaQ9h=3M-*3&SrnU56wqkL@=cD zPZBESGaZ<}RtR&M3iGsG`JfU$ODZN7Rq$Og!mZY0Oi_wESwbIaeCyi+c(*z-)zP~X zwr~)xty(Bv5VnYO*6mm>QIV%nmC@(dD##WbHW!dC`Z}XMyljnq% zHfSa*8-euP zO<(vw(vWR9U;RFMtUSFan}1SCcv!EO(MgUEm%;sW5^02Q(1c(OFW&NIY9XxbFd$^* z6JAr*&Jz6D$Rp&5+80)IJQ`o+A=>%Nx3lRwEvf{T^E_%m+AvRjNQn_smfw&@^nSOB za2Ommu?R{mIwiT$h6WYJZMo)oM+{TiR>1)EQl5YF#WksNyQIM$q< z{K?BYk7m=QAV!Qp`Qriw9hD+M9jSApsSvn2WYPe(fyTriU>qVHqKfy*EttYt zVZOw4i0vU35r}k1G<-}?BvW$40h(w+G`OPn@n6_NK9mU2|Bw)USL2n9%K8@t zLNsT-QThimhA1J*!|7kY30GuNREopXQdEjCYbh#8-1=YO)`_E1xvj~C@A;pv z=Q+=L`kY^{-xeKT6gib5k>uhfx$6m0J=uQ9P*uIJ2WuS}u4{WPlK41NbGN0-U~K5o z_ZY3HGqt(In#ygF?XwSa5Nkv(&%u6z?&`RBv&~em@3ZQR79AaqfdUzM1X_t6&DIY@ z6_)l^?6E2E$|)IiCoApQQp_BBlBj48t52P^rK3BKSK&=8Bt=wu2OgWuUQ(H)@NbIE zqvp4_?=`)-4NFCjlV|x=bW>84JgOp<{8#Ofa*V%kNai+-d*0k@v{=z{M2ni!2C!kL z^HtDD3}{Kqz@6S?dx0T-SLir1#D$L`b<{vji6g!6_9<|<&ybcH+KJ!Pe!Zn#Z|F4Y z^sO2!$xJpCSwhLIF$k2 zn1QzClPN6O^mJoVJo8Z&G;#wHl1j+e%tlFK*z)?;R%mT<@*UMuklvIEO=330!|^+) z(r#|kqGdo%uJEeoWF=E#{mM&P%#X>4CsYfJnj4c7Z$P0Ai0NLRkQ(TlkZ5=#(s#yS zl#%h2&qL#EkbG$QVSkzYH=u)q!|}3l%s$8XIyQ{imXhArs=O6txWVY zUy+!p4;7v7?Z5o8>&y$fM1QU0TI*OA>KviY3H#j_>KrYULY;G;bq+>VX(+?0kXeKm zl<=@wwwKSaWco%|n$1xF2BJd8CeRzjyJm0~HXDh(N77GF%_Qe2C&5bPp&&rJe z;Bh#kNeJP2ni{5#ga?fB%-js8JbcHk-p=c!huOA~GBDLgdR7-Uk{<7Jko4rTU9Hm| zhf_>Vn*{ zT}lMlWArh}|1<14p!xB|f%@e&9`<<8$PNq~&u!w1AlYBnLs7DjaD;@zmjhu0NJuyW iT@L)uaZhx4(}crnqtSc9KUXJrUvo#97g$-;A^8X2Ls^{w diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_dx12_0.azshadervariant index 6d4b6d0fcafe1d8560e2f3087ef300047cdfb436..ec72a557113911ff0807d16732437376516ba3b7 100644 GIT binary patch delta 5906 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 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_null_0.azshadervariant index 5d8800a6fe3f085a433044ce5befe9e60dd2c764..3b4cd78868b8a1bdffa643fe56c3d30458f2753d 100644 GIT binary patch delta 15 XcmaFH{ET_SeMa^<-IuO0FfafBIRpkd delta 15 WcmaFH{ET_SeMWY{!>45!7#ILEd<7){ diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblenddistance_vulkan_0.azshadervariant index 930f7898c4f3489f042e62275da78b4618124577..95ba557939d5e71aabad1ca235bb5f05513d5a25 100644 GIT binary patch literal 12618 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 T{l4?h_9@a?*In}3Ta5c3Utjm< literal 8286 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 DK%Xc4 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance.azshader index 268020b431045dd424ae16fef2656c7fff34e431..f594d121ea68ff5fa0c7d2493a6d323825c72d26 100644 GIT binary patch delta 7140 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 I04aw50$;oE<^TWy diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridblendirradiance_dx12_0.azshadervariant index d95ec6c1b9526b541e8a1af7d737df3474e2dc93..816469ec2d30517153e6ed2b9838254c959f637d 100644 GIT binary patch delta 6816 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

OjlBq6~Ul#q}FWC?^v@&b|MJ$x^Tgo1(_OI?s! zDb*_0Rs>W)tqWCLP>PCmSH#*HUviyJ7~-}k;daEtiqA3bI`Grw8RoH=vO4SsMO z$4OY-VCwDzZATu+YQFB%Zd<;qE8Vs4jrA9gXs|tF`Ovl_C-h%)^v}I!@6s-l3qV{mEvmT=4E_2 ztIy7FpSf;r;O$MrE0T{V4;Ws*cHOou{a#q#vHg+Kmp2aoc>kO=%^o{D?%?~g{))(+ z^#5(<%$)oFun#xAusUV?k?a@OSIxXPcT%vGmj2+i?Dj{7y}Wlw^6bM8zj)Uj-{enR zmYbD1cl6fRHXmMpV`<>lZ8h8Sm-L(F{NLz4!Zy4+DX@0K2bqI5*RB3IdT{TtcoE+| z;JkWao5>lQk33L5b=2{__4(~*YmCU#W$F7)%v^NoWz#xtD11EY#v}d8 zdTmN**t4@&|7zO7aMw1pS9km6VCnz}M6-4y6q(PphmBE(l3Zbegz61;JRX zD7v7ux^!_gGCx!ptS^oR%RTT#azGU zPE+&Cj)Y@1!Enul+KP%$G|kp4Dh!w=R#X$MEvsRVO)FmEi?`J?G=<^MXqhIH!_Ls%o|-XL8a%J5n32iAk62uE|-tI`f*i zWN{=M3abPs{W%-gCbvFT6N-jnm8bkU6IYkLFc@ACDqbk{!bnxQVEH$7*Wi3yn+Yn$ z!kTa>7CX(ZnQO;6xpt>ceqy*RQm*X=g4NZ*c+3>nmb%1k!*!u(Ec8PzmP3l!PpPdw zWm_Ct5~`w2PS)crpPiM&tn8ec%O)I&RtKvlR0id3cnjfmm7&YxD0mY$SDraH*XhA% zWpI8~s32I*<+I$lQ?6czSLmI;Zbmp(p+#J~cpN=&PMzCpd6BwMwGOFRH|^9qtu0Pb zSu|2rm0wX23+bp&?yZgKCj`qDRp{pVPQh|%Yc_e6;R~XXa1C}=2*;=+@cJyD+2xUl%t!n`fi*X{3UsLbw2qFyKe zdlit(eW5?Ph>*D-$me)6J>NsbK#$zrmEtn}?$;xu=k8)pKl}B_=*a^;d-m&*(UTW? z`hhi>bA4|`Pst3!SPu+;!&n2%?@L^;RFT=SXRv`jjCTNx-ZMM$06X7@v0t!EAI3cg z%kg3C8!Xp{afiVs`!H$`R^Y?f6IihiqYuDl_%Qkati*@W2VnDj81(?-;jz7OufP_c zhOs~Fb9ENvh8?vrKkgZRJA4>-3+y2u#(e^N%7<}(z@GJC+!e5WK8(8p_KJs5HwG9Z zpl$)hsW8OZqd6}_~7|2VVnCplGQ z`u^fe7q3Y-d4Ob%Ota@c(tjoo5>F4BoF<;TX8wc4%RR&N>5{m2rXPaZSuwtib~RL7 zfAtFUFi}5`A1>bPM~IjG7|vp(IQEnv8mMX`j}l>HWPaxf)5zdFsN-l67-ZNO@$@Cs zQCZR>#Haq$+y*>Ys&W|Xf!N~1-sz7s`E(bK&-t1e*s_mt?i}Ao2g&0l)8lp@h?gN^ zpIwA<_tArObvn8AXYcenxYdQYvY#!@$$D8vQp@G*Y*R zb0BvH=kk@LS(?Ww3(j}8i2RT_hY}I_eJON~X2#dz`)Hmk!k;-`FVH!fOGU(h80;%c z73Q4hiKtx%5$`=~aPC3TJkeC;$2rayfiVm#6Awnbt3A7N@z|onj(kHRTifg^JR80# z%e;Lp5D$K>=eJNizTnu9N2Lhdd@d1B4D(qe9v^V?sS*!vYgdaW4mn=wiHhoYpq8GY~*bmrJ4@=cdUSK~Gf%g!Z?=tcDqqFm0 zE}rwJcWqCXi)ZiX)+!!nc7=%i(XH~Z6+Wy$7;n%@5wIm!kZ5D!MaDLN1Ae&)%IG~+`| z@QtEYBJ^habMg3MODwa!RXq0S3lw*x=G#QX!w&tUipv@P!js!-<_vGw%-{^s-5~ebso5qGF(GnbkQcf;MV8kl@m7~#il-*%cYEvKC7!%ke~VXxUx^22zr`Z6{k3@V z_uJkr8Qg5`Og9T74thJkd&H9ix_sRR>as<|9?&I-8i^W;=vCV{^XJ+(_FF~R)4%vq z6ZVa6n}~f+6k%uQbgzdeYn~LL_G0%zp!~!gdMoO2akF9 zcJC~ANe1gJqL+TFnL$429v6X;4?O#}{J`xUdqO;MYDKKYJGNT{&O4T<`AJcdhdv#Bi_Hxvy#DV9lOiV2}4H@ z5j$V=UQu(A#YV=C-yI4x|4x)5;*5KWSd(+#CqjqaRL#$e%=^m-64^E2mT_S80g5I-ubI$2KSWn z`kM%h{()zmk(&Q5Vx5U1;&6ZIJM6G8P@ixYKM?uXV9z(H=IH(*qHnRWJNi!#N5^1| zh9X<{Ll0wJZ2jx9zP-&Ki6=*L#)q8jo_{R9g~;wAGWNvUshK@6+wYOQx7$VBOKk4f zjLn0Z52;SwHA96WyU(A9PZ6DdpFb6b&iegd;=$}p|1BP@uc%tFJ8M2F0%z^dG_y7{ zdqw}bsE>$zz7TyWLPw3i615YdJ0>z+d-2Cb+);F2i_qEo@Qrx%(o%dwVfu0RPM=_7F%!ho)Bc!^gn?s| zFI}Q|?ugkCGf5b@{f^UEJQ(rmcmCeYU{C0hMPTd+-oANF#Z%`lqWiVpP|eMRfgcr5 ztQ7GKVxc=r1V$`)&d=%vj!aF_vnIbsQmf|T*&Fq+Z%PaC;0(jg_Ap?>T6!3F#_nJ% zVfbT@p13Qu7X8s$JUxPqKOge4{-USYCpl9Ca<%@Vr|?HdEOd5n=qb*^?v3>>HNc-5 zwvqiX&FF@Us1vnptC>M9v6&+tj9M|qeD)V z+)aFA&GtJ?s${Tb!WfoAcVXxt1`|1$zJ~zvn2A!u^p;Og0hZ4o=`EjL!qM5cp|^N2 zBWgx(o-0g0?%$zU3%h*%Es|d9Bc9q|(?~P>N)jcAEWf_ep+7x8zMI7FCmnml&d#&H zcyNYc13V1auz?;H|6au3ltIF<;XTC%8$16rpN=)KwK@%U?c(ountZKJ>B7 z5b?wTr*DU9X3)3jhKa!FTX_5ZV7PdCV6bd0pAnMvbMpPehC6Bg%-kFLXQX)ixeNGN zY-%`4GWDa5_Its3;`QVHzfknH&(W?;e4pvk+djt#M`!ySE1nqO?DKrh4EBj`oCu74 z!rNOmUOej!ku7fy`DI8ZH+0rJnd0dkbf@gN>bKu207r*jlVf;!{No!!GnNV8br* zF#np9g<->*_+Vpe=J|B2fvtV_ridpeY&gGs%?!>DU4aOU^MkkFx2B5Mk9#K6kF_|% zLJud8Q6lWjr^wTBj?~+Hiaory=Z~HFO!IWS7p%kIi^qwdE*>4fFR|{$;=y>=k!Oe} zE;xN+dtjzdu$d{InDh?z?9X~}mUwy*8>{Ss%sgH~}*7tk={7TKRyyc$f Hc)kAvmx-(R diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn.azshader index 5c46d368cef5f778fecab7a7abe845a3df753804..f733a5613775353a67c84b00a4d43d806d9ab42e 100644 GIT binary patch delta 166 zcmdmgopJwl#tmvLEOWZQ+}W(f62!>r>E)i1xw(<`GaH=woON@8&~7G<&!5`QC+bgn zvRPR)Ko}xBxsg?6^Bj%yP{mO0VW@_#`bb@|>pSB%pA)qa+#Kea2{j(9>`dTM*2!xF fz9AWOCa{5nLzwrAifj7Eu+8U1tpz9dXBz+j5W7G2 delta 166 zcmdmgopJwl#tmvLEP{s*actIN31VdR^AC4U+T6(cnGMc-&bm24Xg3pwOw!G>w+{xS zY*rQx5QfN3Ze&&2JV)a^R56r$7^*>e>lx|vEyt&9J|}7;xH-%-6KXtI*_ptjtdrLU fd_ywmOke{CNAmrXauc-w-`IR!)LL+If3^Vt1lm8Y diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_dx12_0.azshadervariant index eb6938f8c9c8c853e2d0c06160096440aa8357fa..20aed31a100c096d6add1a1538b78b756e148800 100644 GIT binary patch delta 15 XcmZ3byh?e)VnOyf-Cyo7FfafBG_D2x delta 15 WcmZ3byh?e)VnKGn!-qH+7#IL8=LDnx diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_null_0.azshadervariant index 8c83c1e3ff64da49fc860a44915cbb4b8a233482..a8cf6ac19e10dac397979abeec1a6d8306747ff4 100644 GIT binary patch delta 15 XcmaFH{ET_SeMa^<-Cyo7FfafBImQNI delta 15 WcmaFH{ET_SeMWY{!-qH+7#ILD{{;vD diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdatecolumn_vulkan_0.azshadervariant index 2fbb9ffffee14a3a04cb4c7cd6be8cae358e5e64..6e7324191f5b2c28d9c13d4f7ea093aab6ad8607 100644 GIT binary patch delta 15 WcmeAb?G@e7#>GCT`^y~$1_l5wwFQF! delta 15 WcmeAb?G@e7#>Fmp_z(vJ0|Njj?gT0T diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow.azshader index 96053f409113ad2cb27865905f943b9a00f96466..9e2e426ff43495e9c54687bbd4408d30484c7900 100644 GIT binary patch delta 169 zcmdmUopH}~#tq6WEOWYF$8A<;31Va`$qx*6a@kzZ`iTv}e#W{vR%ka9$GoMF%N^X- zzul}L8Xydno?OqWym_X^d6;r2|1d-gXZGed#@kgCH!*AujItKo9PF71vjeQ~WZ+TO c$*TgsAscowuz`a^$|}!zl~NoNP+PVj04mcyZU6uP delta 169 zcmdmUopH}~#tq6WEP{uh^KDjV31VamOV4nMEZ$tt`iTv}e#W{vR%ka9M@U2H#9gWR zR+|+>1B9W{lj~WPH_y~K4^s~1ABJe*6uw>b!8L20H^b(@C~LvZ!Je5gJHQH01|DUd cyei-uvSB9!8#p*V?EAdV?&`h-ptfv50Hgvy+5i9m diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_dx12_0.azshadervariant index 4bdbdddf334d634467a889a476ef3c6f474762ec..3c65d8d4c95fbc4067198366c4bbd2702157e4bb 100644 GIT binary patch delta 15 WcmeyQ_(^fYYXSB--LK;q7#ILN{02z? delta 15 WcmeyQ_(^fYYXNq_!_WB`7#ILKD+Qte diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_null_0.azshadervariant index 77668a24503e7aedabd91d13903db31149c4c835..d8aadf3d8447e56153869ad70915378af638ffbd 100644 GIT binary patch delta 15 WcmaFH{ET_SeMa^<-LK;q7#ILIp#|Ci delta 15 WcmaFH{ET_SeMWY{!_WB`7#ILE&;>I9 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridborderupdaterow_vulkan_0.azshadervariant index fb3dd771caf01ab5c24094232f627f6568550a80..3c530ee1d2fbfb4a82c7f6d5d4258119caf6eb57 100644 GIT binary patch delta 15 WcmZ1{xK41xat`)6-LK;q7#ILB`~_72 delta 15 WcmZ1{xK41xat?OE!_WB`7#IL8D+I0p diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridclassification.azshader index eda8d533767910a172d89f101652e0ca7879c702..cd78a9526010f77721f32d19761b691e67687164 100644 GIT binary patch delta 7001 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 DrIWdX diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing.azshader index 1cea4860a113c2b0f46cc9dd25931dc36f7130ab..abe901cb5be3a8eca5dc1e2b80da6a38bc89e14b 100644 GIT binary patch delta 8781 zcmeI2YfMx}6o5U~3$9QEROoykz3Tifj51rl!AzkB>VJpzdEnuSZUeE)Nt>1@Hz6~Ccp$Yuxz(GKR)1xaf8+2sxWI2s$PS5yz} zv0qe~n##sXYx4EUsHt)^kn3fLfTP2-pyRIy?0rx{gFE1*-4V30pKYSqV)y6~rzEHe zV-E1+qZ}$f4k_G-Z?GpZi(DhQguRj6G<2ecrsl$gy&rSog2C~~Dk_CM~R zfMv`-nMsS#kRv!?0DbAp8Sz?+N!)12!`8Vr>?f1LP3V3hnCZwi=ESbAAZF|^`%Hl$ zTr!!LFsH8Hrd)jYNhl?@F_)=%sWh@S$lKbOPG*W4!f(%5I)6G893SJ|k{I-%%nVaseYvBNcPUjSQj&`m$OxCmnK`mGQe zzX(b^4%vOwhJjB^g0m`}2BOXMc^=bOSIk^63LTk7!IWC+Ee1O__nWA6G33)ng-m3q zFABX)i^1f5pu0!GOtKfVKJHT(Lic>Yhy_>KKs*ATSo*?FSyOq?9y)G(@sQAHXP zlY<&Yy)Cj(4Wnup^@LGFC|8F5Yv!98lrF07FvYfJBs3IPi>c;CbC@4=)IxF+c9>>0Rl|p*>OL6YnQNpV$4C z(OQw()=ySaTZUVBI<*l(pBuG}0Xn-LG}vx_OZs86*ajGGu2ge7BG#MzxM8kU78nk{ z$V4|u6eC*>SchO;y{tk3?%aIWtzL82Ho$m20}g_{QZ+q#2sQ=r71l+%R45a$uR=t@ zem(l00Rp?HYP;hQL9nzc6lSM{!E$w_1caSdcfa<#t3)#F7GPGDAe@Yd6%8^gmg?yC zKafQASujN;#$J^^!?Rp>4979K_tjPOX|8ZCR3E=dF&?Ai5FHng0cWen*-B delta 9541 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

T6~w;h4Lg`&l9jXW-J4*Fu3R; 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 KyWQk|5B~wa0j`b! diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_null_0.azshadervariant index 15f3477cb5fc4baa7b937e388fc14ec277210841..f34a8dbad5dc29aea578990b2d426d7253fdd5ed 100644 GIT binary patch delta 15 WcmaFH{ET_SeMa^<-Jfk37#ILIK?T47 delta 15 WcmaFH{ET_SeMWY{!-oYJ7#ILEBn1%w diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracing_vulkan_0.azshadervariant index c2bcd4ab07c8321b12d204a54ca52efa71d5e175..70828c0594825375c18f1eaf2ef2a4f86b0b09ac 100644 GIT binary patch literal 36188 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 literal 34600 zcmcJXcYt0++4eW25fV!1AcPQlm0pFE4J6crB=izCn@w2R?1s%I5PI)jqzF=#jua6E zk*ahQ8zMGD>|I0!MZVwfdFI+29#%fSKfd#3-ns7UE;Dn_%ze&o3{6c0;DfGddghVykNSAO zR}X2OcKa!l_c;5}3*S0r)rVRRdExX|+L~Xz_{bCfyyvY~TztmZLEnA*G~)71+-vkd z4_fcu|2}d4xf6bH{Z_Mvyfb8@trnhp@g28q@Z6=Vtn|k8Z(X(3pI$ihoS_dcQ+KHR z|Ai-YJ-ONc-K^=r!+x>lAFhAy>|uAm(fs_S9S7byakrLb8Tz;1Xd`M`x+PIz(BGY<}L zee?BuuG(So=}TVq=G2L|-raP_2HXDd%|22*fOW3={*#r@>io;JF_*8raI+H^ ze0jpL4t>|V2OfFU(fh7)#gvD~Ui8KWt*1ZSf3dX&Hx2AZl9y_F9$%l~O^Y?1G`!wF zuzXX~5>11ercT~(`W_RfOz&=4IK8L4rM10tHvHl>ewPELO`q8|ueG~^XJMP3QH@+;pq0H#7cHP5td^x}}>|YI>Y87DJxWvT#CMC#MhWR0h%p z(FW5NrwySkK^saNMq84$6m4mmhlMFOvCU1((FjSL{M~BNqaRym-@! z^ewHeZ5?ghEly-=Pxt)Rp84Hvd+&#SNG)gN&q$$z>|oISszrF%-t%=Y>7dUf^OcF&%%TW3#OCy6HuiC53>+?JU$S>_h5Ygp~9^f9N( zuw@PN>Umg&Iep|jOl_Ytx1()xS9@nqH4m#2qmMB^VC}rM^_eq$ZjKS`&>COQLwo0f zu|2GHer<2->6m)d{Fd&v`gs{rv;AORnp?PQ9WAUY( z=C01Rv7NI!+8B9AO<%vC)$>-(YduE&t`cL?{GMtI^Xq;6ko@+pmh_UFrJGi#|H%2R zoVSI=YhOb@K_^&HOXXqjzZ7q4;k z_eNjmyskILbEbdr40{h;m+x5KgY0Kscavt#n%8FOukGtddf&kmj_hmOG05gs-#+qc z4KDeghutzwYhw42_pZ5R?!5UOZHwye5>2D}9_M|QoFg^{eT+ z>o1-PU*E54zU%h&J?d!doZWK-=0q7%i}T^NV`$B$zE>Y!)UN+I^2xv8v}uJD?+JI;d$K>}oll*Wx#TQ->ekv~GA_C7iC#p8x$7HFe5_7|pAHb>TaRuU2FD z^f`~-<5#|0n!DzAatq^U?)&s>e4jV?xep)W*ZZC-Zj85NZJzE^pMHyKb6oHlR`YQW z`}FCp2X&W>;r{k%Up@Q1>#2|7zW3?VyN?;8ZvQ{uG3_%tCUv*Bb@tRgzk1j3KWiHH zyBx!}9G~Azfip3T+uP?{D*InQBz5~iP3r+_XKRa@o3_tsnQb6zfIrtPTGND%t{E*I z^$+>E-CZ-(4(QVp}iXwR$nAY5o5(oe>3iJTK1}FtpIN&f+P?ojE{Z>Addr*{9;?0Pcl5N+?P#ZjB>wyFV%2AM z`_$Uo)%W_a+Fag$|Ejk0=e3P*pEZkaw;3JeYjD#>%xC=g3A^pr)iHlg+jxE|pD=k} zIBTIgpRVrq+3ozCZEclv{+;vZu-ti*+qx%v&d?32>6~YGSGgEqYpy=dsW%f-=hlBA zP|POg0^n zKKgMjtw+w{*C3T$$XxurO>HiFwRi5?-PPHnT@ryVXWQSAA_9C-fHd3D~-R&&AUOQ8re7HdFQ(yOmDPK1_4h7S^~&lUSH1VBs#jL;IO@GiRlTx$$5HP+s_K>1 zJC1tqPgSq1-f`5Mo2p(}y}f$xhV1^G8&$os`hG?4y{PJy)h|}`-jAwYS$*>3 zJ*n!I)h9pRld4`>ee&a3tLl~2o1ckT<#%LjA^U{u2bOdF;T9{La|q`=wexo+=3^6j zV~?b1JEvngD4KK|~_XHonCP2n;h z<;*9)8(L&Pu(sC5`DoWTAGzv$T%VkKXS|WLaPF6!ciB9CoZfj`6SeVoVm^!JF`$>r zytT=^bH^9i53Jq$#(8VkIB&WBWi03G_;QW&mTR21^R3R?-!=Ixn#X|J@1Nu{Z*4N~ zkt%o=+1G#H&^Ygr*fh>tu5sRSjq{eP&fE3LId8{J&gHBVa$C`2XAP3uuEJS&#8$;92-x>L6<1-PPaLI#m@-V7qRka^jyT^@r&`uxY=3dJ6FI@Idt}zdC)jT-w zE#RvAw87JZ)NA;I@i{iXOVrKYn-=s`c&sF*Enyv0mW`4ea5KHJ6z-b>6`t_ zzHA9s-IvTWz55cJ^(kk4>wx^)J4utNLbr*+03g&-ZnF2NhrE z6)x)=S>bX%J;&Bp<2e`i*K=%~jI|Nir@9`wtS9r7%X+H5Sv2xu zvL5#)T-GzD!eu?IUnaDmop#;moqS+!u7{i-^JlPZ~AJt0&Cowek2VQ>#fV%fPErw z3$E(7L)L#qVr@@9lBTVA2U=6p$)i_7-Vr3{d5hk&^rNMp9TRycWS@++GuV7b9t|E@ zk;i~tPxNEK?os4%V8?U(W_rih-nEXWA4&6Bo)zpuKY}k*_eI+@eY90?+mr~}>`HSS zbrWblkv-?{Rpi~k{fcb7-Dwv+zjufB%6rgWd|}U>GjH#N=Q;9TV9)Z#R0HR=H_cq7 zCC((cS+i!1jyxHeXH4SkgWx?jA5-YvZ}VYX<*79HH!X3zdpx5v{=NwAZCc{*2j~4y zy#2wRpR~mD-gYf}+75|#AhKLq><)q>FFQp(82M}4p1E~o@A~7no?km(hl0(eXK`ar zjq+i%%<(77FIM||@sX^3I=s({v=OX*WqR|ffBMzQjNixVMu1nMSJwYZydibwK0z0jmpNEL2n#6_q3JX^VpweT)+7m zaA5@KfX3^#3bP=4m{?C$u%*TJ*}sn@w*#xm7tq>lFS7 zdLQKx{FJ#ay=(kmEj7-V?bvx1^;w0wvL3zb>PM5$BbL+WlZDh)pY`b-t1q85;q^I^ z-bY(~HlXio9Ao(C(@}>t+m(^$AUpQ~H1C#UcGCLORzu#3UcKB1GUU6^yjnlx#g1tW zvG1#CYl}`F$Ca!4d2b!hd*!>yvGhsKoqrdyc~h@Em)`ZY7WpXpS9$5KK))Q8-Slg+ zntAkM?@AB7F^!`5uV45{T`Dl7|&Q<$k==C2!Q@@a2z3Wmww#ep3`M4rG zhVt=6HV4Wl6xp>ZpIBtaP(F#?Gip6jKDo%&7v)omY@JX(waC^0<D?3W>$Nn`S>)>)_*_eWh^j@#)3xL9n*! z&Mn+SV8>N=R^h%{;U>e)M}C;5tvcsx4!%Z{cV6q$KSJ|d&tU$?&_7x@?R>KK$H3}* zvi8TpkI`;tJn!=pG`VeQcNgwSuz4I!yQOen2WzX&z5E8f&pXUX-BUC<_fz~fz5A^! zZ>|^8KTS)n&9`f6rhlgBv^y63EG>51fwkL_{<)${yyq)+W59{`0$82$dh{>Syu0Si zINvN>ayE(T?mWI#bn1QFYxnjH@}T}Dnl{GIK7JeQ-n!>GE8hWoetdEUz6;h?-4y0A zh5maq`KxI@vHdL8ey<_xBY$DZ=g+~f(WcQ(E8Oc~$55Aj z`32a$xA|mWF2iSgcagMEbpBP_c!oMG7^ zf_+lk{{{B$+uutLcA9ZJ|V=qBdAKU)mPZWK)0dVe{G0eaI z{u2cG9l&Q7Zcvd89N)oUZPn#``gYTf0XIXk5 z-z9I;FNZAW`4KygzRQF8Q#(t>@g3v2(@y)zoRb}qR{&SXaLt#Hb9F1C^W18a+OiT@ z-sWRxeayHkL&$lCwXKfp_-~c_yb3z!=$!R&PTrvtuvt}^-n%xA<{ff>J_fHYXK^*~ z~|~u-{{SkYjJMI(BCmf7TNmh+}1>v^9eVqaMIz{Dx5i$bKPqf&iTk$1J^0s0Pt7f z%=fx*+BzrC%6ecQ&x*SBX>y(capG?Pc78tLHY}WUxQzJf6U2Yh*d+Ax_+Fz{btD)3(TR#`p28dbhTNbH3`` z*Z6OboOy}$)7GatFUQV(*#VsUvL|-N^4#nQuP%0AmO9S^Hh#js) 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 delta 9395 zcmeI2drVVj6u@)3qAkdy-~=nOf`Gj2y#s9gWN!c5|LFbB zz2EuH`Mz_`_d8s_t2ld4;mVQARo{H8b@OuFlE|p`rVg9c+*-GFtGyL| zG?C^qtfKB>Feh-&yjo@HYPH!(cNuiVm#`JY)TZO!+yuJCe$csENX5jw1oXUXj#?1> zvIWNurJT?+8Mf|7=%V2Zpus2k=A^~JVxoF)nQUz)^Nv=dsfDLI@4-Uy{N^(Xd9Fb$ zw)aISH`q)T`&O&1U6erUay5@cp%GAa2jot3<;8Xbm+x$JS9 zWt)z4{g4PA+Mfa@a-4&xaNodYU4y6;jLk5X>l+*QjtSOKbWD9wSS)y$6BeRlllo}s z4l17qNfeU|T5LQWi?=ZzfOrcg^TImLX#*mK`iW{&+t+syV?K>(F4} zNMnE%RB8lnc7G1IVJ+&36TK7Ar(Pv%B#RM#K$lHU`Y#}RnpdeTOjdZ5P3E`+>9}u= zmNao7N4_tc_)=JmPkXiWbQ5qh_ziW*99nBQ8eb3P6f?kt1S3va7h~#jvBcjG3U5?v@m4KIY^SAC_vg%iRww5>(#1mf z;MmF8fZR!rP2fBJ9~oK%mqwzqR*Pp(bI&;%q5(fS#i5}n(!b@)HbD_})Uwa}0)q-Q z1}%Di^tzTEyd!l`0MP_JkSK$BxU)W9(Y&&x_s_m1M$*N}jw>ebPrlQzXeh_sU4JiA z3d>Sh_GJwzEK6ZoCxzwzJ1kR42Amfv+&CI-U|Cyp^_jxBr>ly(AAr`azY+zZ5u6|! zs#z(l^_9g+Y`VIZC9|->2Mc7wpg47;@{ft{UmbOKetaN5^i`=QmuhmUCYNe*sU{b$ z`+?hZa9#AWYjW(aPZ}&&!jM#$OT1(X=LBy+iI+&c1fnEfGQ*wqWyj{1TbO^?kus7q zY432?^*6-~Znr^I3N|Op>Ea{!>))@_Z-fgV{R}xD!G8?R>wye68Oa<{r_Y4my!1TZ zFC${~pkIC(7tGStq5!=;355Zo&RA)l|3yE93!&@2_qLaT308*43v~1KDa7s-6EvQU zIC@!o=oc6*ACg_sQ)6r`p=So-@Y8Gfoc)|2P_ci z1LQI0E63D(8wI0mlo|q3L*NA(0uNt1ux#_;;w*1NAna7%cYoixeMP){JoySPWJsBZ zg$$vA8;C}MK9H1oeED0-JW}S7GLO`Xevwx6%$Y~HS~bBO($1Il2|ac>)n!B0^#2E% zYJ0HO#+ZHq)$ diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingclosesthit_dx12_0.azshadervariant index fbd1d902517b8c614396ab7b502495eb9b881f07..5e8c9a32c15bf1e5414d8d4112842d1167ed4954 100644 GIT binary patch delta 6645 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 Tg_}S1UuhcTmO~HynXUN`F(A!w literal 5404 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 A3;+NC delta 9167 zcmeI2drXs86u@^X%mU+4d;sOC2nu4qmNEhgSdb|wjG|;NfdTCRMz}=Kk3CU%BVp zbI(2Z-gD3QyIlB2etbl3PxSFoTpcQOB>QOM1A`i>n#_&H+LF3DOD!s1j>P7rN~{iy zCVMJ`QE(cl$l3}%e!SAA?S}2OI1r%pQo@*IIemEy5>b769tJO~!=`9Ia;8E8=~F?D z_SYLxcf$wsD;5l1PlHw<=QZ%f#>%yrSItp#Iw--{0m~JDqc(pWZ%!cVNiYR_xwhSc zr70ZQ%D^ArN~s}rr0|2OGUxo=&RJ;DZO~Hh0Z4HiYS{#6)dmKcb~J1>?6K%;&3dLt zEoVSUw?-h1`KiLuece9m%=I<+L2De{=>X-Cl?B+;6N(>p24nHTa7aNznnhH}*2I$S zZ9#?N#v$}bdJ<&uVj8^<@mQfzqE%TC7Uzm7Z&oElcg<@C(-zX@K|JK+U5$k%N?|_P z`XC$%a3IQn&bBI=|??Dc#v_?|jhb*dE4aT5_o_$Qz zsDs5=on~Y+3xu7x?aerRbkGzXJ3PoL~ivHZpI*120TTBbVCYBcN@%gA&MVCr=ds>&hce-mZ zM;C~lT`F3^MtZ`rK;GwU-eRzahcFz%hJ>2M0{7VBMozn;~* zzK*{BDTdKCDYFnzdrE1&t5&Cq}`yi{fN2E$y0v{6i zkidt)pQK9rF&_AIQt>}pX>U2wU4OHvBGXZLzA9wUXokYYR6R%Li-yDp|4QLaA=f}o zVQJ98W2gUuZznKfu8>pzebCMhxtRv;j!tCxo*`j{{Aj-{V><9w3TA#e2N@pJdmu_X zY2DRf3V#b7@bl*l41as*mAeqQC}xAsMhYiUxT~+=pSmqafZ@WZLW>B+(|9lVzh`Hv zA{=)sPC{~_fsUVs463#>B5lusa2}b9?eY;w3J^BF!0FxK+-=51@a+P`@8_3#;L2m#6 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_dx12_0.azshadervariant index ad06bbd10434cddcd796b7d3d9c86f6de0d35b24..e22d979b8598aa0572c186e0cd01fa647354202a 100644 GIT binary patch delta 5201 zcmdT|iCN*Tf7Mvki|ho#H}VE0yZpyqu??LNr0$; zgbNCyH3(9wVxi!I4mN~ELcsxQ+o;q*i(&IIv$FW_aMn0DwdzB0W6Y zj#6$Q$UPzg#gHB%4gJf~2{0~5KjI~uxiN>cJ++Q|*4+b%*;eUKqkwv7232=S1zZNI zMxniB#3AZp(mN;pDuVbeF=;Eg^E)dUz>0RcMY)(7Gf(6hdfTk@T;-_*y&wlRsj8*Ze!)R2@pLXAG zf?mnEObm{t!UX_eP=-e^Ppp*LyFDM1IQdBYpZ8|CC&3}Qh?EE7Lv~$zVS9jP`c`;8 z@vtc(lgEa}ph8Zb0qF@k;@D08v$Sk-f_0#9^9-q~A-}+p3Uk zqQX{1QjHOF>HClyL>WDgGajcrGY17!0dz?WUX&o<;b}LPv9-3#< z?MSu~xDmYXj^nOsCvB0`{hMIh?^v})5#53jmV#xU&m%6_tyHv&mk*Ld8dNK)yI0I2 z^drTq*N58@pUNETm|@|OqY@_@b{!CuU<_yLz)Odb@U8O&NRw1RV@%|aa@HCr_RaUY zd0Xrs9uY~ZzP<$W>QQ?1DRB#3sCBOZkn#h#)V;Lg{Ay}&dEpj)VUB^izloafMI|rC zYzRGnfvc=h`1_PM#$OH3Qw)>eO)K7`EY6>`+22pi^P+OVP6zdFX>oRSaeg*=vlsQC zzIcCmaZWjT-8lJxSMhFr@xF3usDQdRuQ*#z6#{a|G+8iB_Fz?iXhrhZKk8>g?0Q)~ zZp-66SPqL$4oyCs_nNpLXsdBbvVl9uRzg)fa&m~f%u|X!1TgZUwqcjGaA%}AfD*SB z!NgsqRpgeIw7(5OFiQ;`Y!JNu4#7Xjy zlPGhN;$2SfAyiIO7e^#QIgfA|%1OiPP>vjbh;njp5tXwSFQ9Vv<6TtFpKyfEX~YZY zobz}WozsGg=5QwQO_l5XsjPN@AZ)FGj2F6qkUt}#fJApQUj9+#E zpA3P7;S5xn9SACG5$tOQcnZgY$#|y=m>B}YS*TJO2soz@>>&dDRjoQxN^Sit3T0a!?Qvi?P)947ee{fM5ZV{_P2>Lq~){Fxc9 zLN)%PCUpYQ$393y?4>eQHuYm7%HgoxRDo{{ODU+vCPc&ohb&rweVRVc6_Ta^s+uEg1dqB*lvXi2TRTk| z0*6nrdl=JuO~&?pSvm3@t26h;=g2a1v$Jwj94Q!6$j}7Jafe|Va|C99t#@qRd$MZ#i{7*t)|xtJKFzcwj@e+GX__$hjgH-J>>C&xXq>ox^WM$=(TRb+ zsnG{xMsxM(?cu4S2j7oP3Av_pmc%tKo{+Jf6d!lA3zuC9Xu28{9Maex7<9evYDn;P zrli7EL!g|`ac|#aQGRmYp{Md)7YCc=Q9nMp@brDZW@cHloc?2J*^;M>(#)ym+ohRm z-9^;@9I`5)oc>vTg&i+CcSWtMPp(gG#fo2d{i-?;om-zAwIZyZxBo(J{e7uNvuI4@ z8i&k-t8iAdcf9?k^BLE0=zQqEJNIQ|UMg!YdDC+by4yJ&-_7{1Bs}`w*#95s<*fZW zlymD1>x7KUL+%iVxZa8k*2m@O7idZt^9w2SD<$);o_XI;YAg1hHByi`@}i9GnOQj* zGC8kA6RhPkz4;m2_sB9+Q!@APN_v8|!btUz==&!UUAI-=-&Di<8g)nPA32Tc7mYmI zkP6k%qmC;MY7%m9$mpFv@gDjwaMXA@@o5Iv;XERGMRcwLGV`s7n;ys39jLdfk3NtK zJH8VI!44I1z|n`Ge@5*8ec%UCyT~^PCZwSt3|;eM?8U*4F2#ELW+|YeTcDzA>{X$o z1~=667k(>D zpL*|ZpXAzF3}m)+Mb4;)j|FAV8cdystK1$BjZ~SchRzMevXsGQsmBY^&k?Tir^Y89 z^bDLdPB$18GuqL~DdSk*0G|ft$psZJG2Dac9h#k!m6Wo^%DgyTmdh&%52v+3u9>IC zY7=WVY`%LsZnJref@sxDiFi@?;RaDJ-2$t`E2GSBFyrDyn*EPM&4Z;7UO$AloK0E< zH^mC?4Qz#c#YSQAvp$JX1STQACR*zv$h_LZykkW)R4>$XZM~TAsSP`j><$s`fe1Hi zvUNdC{aqG>i+?}lP93G4x^o?;=NDeSTnOQYK)3>NPo!&nyA`g+*!Sh2v2UPhcw%63 z_<^~fPgBm9D+CoTZfOwlPAlTr^h`-kR_30avgDNT^jxU4WEdO9=LornOIg7csMBKW zhJNJV5iGpo8Q9hlaJ|Epq@?mnJR)fGSCfk!to+0$E?CRmRy|U?bqn`v3epcrGP;K! zYd~I+ig-zOwYAZK(LAegeRAv^lYJ~C9fTweXaqzMmu4j?w$#+w+RALL zDl|c2LLo6};)d0(3|`RR6}bIBr1rlk?VmTE{2W6Sxt9 zYYAJG_X`-gAKE{fGpfHQ^>``zv)DD>q6+O&7%8CyD4`9a%UzLcG-m60GaX=kUyeH2 z!{cx{AfTEl3Gk#GYCzx&spi@-%ZWUEg!NAys`vtRPiLQ9X|)JLq=UQUb8g;AL zyxC>bAnHEics6`g`3P|qUP+Mf+hCB_;JP4vo}sX`xk@)A7dWhROYmSeF^Qx4h}tIV zforB(!|GH0wx{nLK0Rjp!G!69pG{|CSP95HKCKy><8g0vd{W3VHL(;!=p(;Bsp9*R zR0jG(oV;|fw4_|4P*W-lbN_eNljXx}D>*$gHA0@1 zB$KbtN!^~YU6zrQ4r5~MALV<}v*qb2IlL0eM%v%ui9G|wShdxhc=G;T_WjyK?)}QK zyBqI+wdo#bGxzR&_Sf(bPeXm4_363P&}Hy1C;l+sNpZdw;tCABQ0o)zkPH>2fQs5* zI9(OQ6>|RCJVF2X#Q>!s$;K~Zdy*_SB`iyx1s#TOrMbh<@%nm=%gRmPlb)3c1NT-K zxS>dlyl`HFXjT1FyQQUNyCBDQb$01-{^`GpqwBXs<+@uUuNdkoE?#l(=H!>w`xVAl z({P@$3?sZwzl+`to&F-8hEbh&L|E>;zt#C*4d$h2 zYAJ{eGMX{@uK^-$f{d)o)3l0aU!-(%`{VRL=Qs zdd?5S_Wu?*ylipsWjih%aSRpBO=+E*Dsny7iZ<$a*F_5+xANsA?>h0^v+KMYE4KAK7h@;OA9k1vTklqxVr@%8 zcI5fxrpb1s1PPE{>h2tzVVkf=V&DHM>r0 z*X{kwtK@khX{d$eH5CT6dgV*} zrz(0nVG_KnI4jE2m((d}pNgD@@oi3C`Tz>&zQPfZE z`!L?CDwESMwN@1r^-|7&{&jZ-XF&P7TFMzTyskELZUct!?eKls)NVA~z%(?Xw)V49 zvyyflG2an9E||yQu?m7gt*h6&Q)(G`kr|b)54%h~WLfn=0qpk;?N`S#H!hs*YC+hu zT>#Ekc`*#y0z{$2xCUfNf0r-`cfx4sLZ5cgI4Yl})=yK{bRRrgQ7Mx23X0rG0_^6d zq5_D{Eb`JCp_ytUDB;cnG?mDuT|7VSfZ!wx)Z2;$Ck3>6+a75JwveDbuV(e!Y6=V8 z>oVi-rahK&_@M8WiDWTr;reCIxmWvdEt4oh8yVC7JCw&<$OmJz6Uj!8g^sFOuFQ0+ zEGm>w`Kgsc99w+yU<~b1GS#d9){(gKW6ZPI!dx{HI*F1G%CpI{<|T}u{NuTg0+XZw zBFHh!xe-TqM^T`Xj-!7w*nKESnzjri#o1rRDB=Fs#C{WEzXoHP7?kiMX^C6e zN*fC#vt*6e@?3S3YW zZG)httqZtU(E?*F0;Q2sN*(Y+#Z)e}Nv6lyx;b)Nu-`X&VDD>rz&Tqd-UR9@A_GEJ1K2V7O0BZdJAi*aO z-U4{X5McW8063ZctOT1J!fA&M7oI} zKj9H58|lJR(Qm^&k!Lia<0htuEbe7xx+0&m52$kEM;b8z_N1Q+l}PHip&KFL;3ZtuNGF0#6K(Nr;t_2*36PS0C@-V45=if5l+P!9!-L>tBiaD^O zzYYo_3S?qsTq+NPS{Rg3xGTjWcn3iXw2QYkzO&p%Y5#@)mE>T1LYXNeif7|7E!wxr6Vd z?jeBB@PAPEAx3mylAv*xo}A^Q^n6R>Eo=MP@encQ&+#AU1bv2ySB6>QcL@>} zLg>NH2?9tgr@N8j{9fja1hY+Ge4`+LXjJkzd2QxRY}efTkPiL@17ts zJ+1Mx1-4v83s=O-D=4Wg_M*Cr5R-da;T+lIX7>{XUlX~&o`$NB;|FQ?R4zuD>qs*_ z>6t@nwey6^^|{csLpVdMvL35;zNc~>6uQ1KIQKqtF{)g90d3S^Z7^8J2`ay&n_pc& z_3r=u#a9CBK8}k?=6XQoI*GV;AQsBwty1S+j`N7jbwKIRfw+xUyAD@74=b5?J?fHV zN%|$`$DsPqpw5=yMwQP1VO}{gq$_l3Tj-)TWbTA;X=6)pZOfv@&_yLgtX8w6OXH>o znJ4}pmJPOLq00!I>Y=y60oA{Ja7u)j;EoaRNe=@kh+eJeK>#h+pABHrOkLQdTmUH3 z9p3Ou7Ir&x0pGTZV{#6J8P zQzEmM3YzUV38~B|8)mBD8JVdUaHz}}AnL>f@df*Q@|lJ_Xt#0%o_q^ z26IRtoWUG5&;%S?rl)Xi`6qtlt}6gRYzlZpfzAmm?gViOsFJw=cpgXe?KH3=1&sO= z1&vOiW6eWQl7T9BEdZ@mh<=a;-om*+qQKw;sENo%bT?~aUb3<_1q_{3!NE% zvhU7|!QtMvvVpO>VdKDvX>g>2O93S4btk7$ls0g|5StGfV#RXpEm1COV2c& z`X+_}7WPU#PYa8}XU5C>?zBGd?CcmW>NPHZG{U7AX3BYGJ?t0{`kbir%?UeGQj)V) z=E$;gA~TYb_t=q?bUtRemGNaM`Z({NPv6kIp#XJQpHPLD>n2>PV_&0EIGdZY5Bm@ zHT~ajSjTc+@AP>636{&sKBt*Kbge(d`T_M&(T$PB!Zf!1(TG`&{G%hg_zPE$tmeHr}J$4*e}@hIfwrxD#x{b12g{)r-6PN!b$npa2(LU zHTPHFgIE}UfyvY~9tzM0L8CZeJ9f&F{>L76Bt5k0!3@St{68GMkXN`X=B3!qxLAUI zhbHeU?yW5DYb+ix(SHO-ED7H4j3gwJ=$^hgV|!M*OwKCO1{ZMYUflG}IkJo`$y4SH zF5rtbh0*=TBr`Ww_OCr|wx7^?$i7GK-u-&j7HFEsnz;OcIzIN3jQaBq*Iyf4?X;^w zzNNaBYDY5BQ*SBS&zw5b1dZ~BT@+CFrt!P0k-DEB3M<-$?Y9qB!11?cV>!ELZO@UJ z{R?4)m|=)Av$iKBM`WcXt<01qre$n_&JLMEV|Q|(O0sq(_8D~giauwEOY#);XtowP z_UMO*vw!2R-sO2LoNsnr;PqyO_?2dlE+A9VY?fzp=3%$4skp-aS@Z3tiYaIP$$rhD zdxcDi6X#~E78hb%LW4yRnt|={|_$ge|;z~96K0EK|vJc7UoyFSc5uLqc z33b~xt133wQQs_%((+0J>VnWI9FZBjlC!dtBeSw(Nolf-#N=feiQAK)5h7&i=`vOk zX&I#pV#CbXj<4LfzU<@%Y%PQ+aa!fH$*F&Ugp@#hr`=l%YZaJ~(FE13&Nk8n{ znSQS5E84}P^b9rVY(_oOY>dl#4An!gx!*h7^jkUU&D z`#tH-QBx*anV7X*F8??sB|AAM+m6JxhU8Jnkd>h`<^?qcHuzW9H!Qqd-{9{R&~$0h zl|cR_OM;%vDoRqsQ2Zk`g--8-=0sKLKo#rM+Fps%htMG*z0g((+}7i@!f%N0NmH%{ z6VNu1cA{7q=>*5{a7Ysl3xwczXqkG;Zf;s!dfT8!$Vg4d3y+Up*L?J6Xqb37>=W&> zO=00%NfCR7BU)=?x{_iCk`!u&)v&;j+2<-SEe^PmUhQ5{=}rLC4ShT0q%9#K^_ zW>T&yyVNJ}%obfi+!_L|1zf+xYx=UDA9T&Xi5~XJZ0+I_m3j3({{>avHC6or&)p&= z>S)&f(%c)o8<*g!ve~3!IWHq@`Dp9%iLj5kl#2@X49~tE(+Hmt`8neuI^=u6`0>32 zwTb#nK%CcETy!3Wsg^3MMXm}n!;;mRCm}01+>^aO>5zp&@J_0cp6tj2tN4`gujH8X z$`uus#w*l!(7({F_j(2%9qt`$HTIqzesrhr&Xns95BIb|d0#WoZv`8@e2zr<%Hc^g zRxlpxQ^v5EFDI6#-Zfp5fxC*qNOimX?wNACU=iI}%{R&^XVy zT86gd4Q1O)j@z$4&faj|aArK(M}9#*T09;Lr42)!h2MNJ{_ihh4;Ry(r~4NBjz3J- zl#WrmYlT;v#ci5YO+a1hl~1eBbgzIkwV9IxX#$dCYFbWoT1FB~!VLv$#KgiVMgR8$ z>!yw$NJBP`3DFvrxZiQz%pV@F8$>-gjs&+JX|Hljb73Ot;=8EEqUfd=MpCtNYVZeU z%;7+06vr)`qRE{cNQYkBu(av(4)WnfGauT<$IA9VR@z7jfu8}P-RQ5Ee8(q!?MSl} z_I$>{aEzsm-NdCZz2$7%BRoE3^KCh1@e}Qdl0IUhzcX2j5$3vP`&7hXPqkxfvtt*> zWl-kwd$U{kklSkYtc26E_8Momo%VS$lH$X4 z@lW*et97d~EY@`XyumbU(}-@ zthD%~myP}NQZ;yI!6TMD!+-I1RfuGvQaSHzX(YceiO+oF?hoSp!&>2&$GxtOk<`kD z+q&+Du?(<6S~|jy2!xCjt_nNB`oY=ehX1Yk*8`ib(L351b8vsJ%lV17TKO3B2AkSABaT+QmQkn1A5nrr^5k z0f9G~<`UYb1+)w=91#mnZ|4;z; zTt4Rc4+J@a=X2S}8@!JDFs)1(6fFUflTOmYk_Yo0$d&sC?yoS>JSd?v82ORr^6tl- z`ZtTMzG1jeV_YYsQfn^CS znkmS-2MhxBYBB{W9Q4;3ggcx>Y<&}r6BoCX!HWRY0LFp{MhwFETR8|2O3n z$%{+oSr+PjDDyA-d08RvYmZz4={(-#?S@R?Prc;?Qt;&nADo2T!25YDtMUs1S@}N& zFDs}!al~(_qE5I+Uv#{{sw7<2Y5)QTZO}x&Hr?!F&uElw)*M6SJh_0>4aT;;c`Tsk z(F;sYN*fIk2ze6C;t9$^ES92umZzs1q(@a0^{4bi6S_@+@bXxMAfQ=`swm+!8Xz?r z{?PcfO*e@a{=Md=0uEd0{70vUSvr5ybkoCP!NhdaTekpcKBafN3^dmxHkriwi$WtY z1mm;S8Q}H8m|Qlw1r0ON4R_Ee>)#<~Qm!Gr-^Yy$-DoTZ;zonxhpZ>1n_IpkA22I& zfCpMoEt^W@B}f&3O+m8-)U5hqEY5qOjpS(C{Y%S2xTKeUI{e6vL;H&qiNlE|Sec-zaSPWlC6ro;@M;XWFuJaWp&a0}IOLOf6u zsHJh_v3jdBP&cz`J0@n_%A|Ur*5(QHKjW-K0;a}$SmZk_@+#tz3^A!{MiG~0oK^%0 zQHIVnw4{na5rzSZy7{&B4TeP8cApd)!pA0$C)VrWpD36baf3h2E_rmyY6>bnsx)M> RVea7S1-WFKmb;O#{oiv8iMId% diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_null_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_null_0.azshadervariant index 527b42569a3e6556bc398f8232b5ed49dd11b29c..7cc7a74789f03b57fb5ac8441ebf88d950e883bc 100644 GIT binary patch delta 15 XcmaFH{ET_SeMa^<-6wZ3FfafBIA;bF delta 15 WcmaFH{ET_SeMWY{!}~oM7#ILE^aVx$ diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_vulkan_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridraytracingmiss_vulkan_0.azshadervariant index 426d9559385e16ad59d7124796ed2f712b0f7a3f..8fcf9fbae03ec34f7b3aade298b1609bf5103438 100644 GIT binary patch literal 6396 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 PbtU}v2fy~xGZOd@)3XWr literal 6396 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 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrelocation.azshader index 08ed61ab03bc60c102e2fc65e020bd69f1e85358..501a64c8d5a2692188977af298ba01850dc0c5e6 100644 GIT binary patch delta 7202 zcmeI1ZA@EL7{@)Outo;7Wuc`&Ul{UX!QKvmu!YD=fi-4ALH44~v0FgJ04*=ZZIZ|m zog{AB?a6k`#-O-G7qcPciul1~&c*BtVfd0bmko*w%fJ~xor&2RJ?Gxra$Bn7(_-TN zc6*-l@|^oT=ehs$YwwKGx2PO8DwTcjOw4nc%32iXc<$NChW)VTu7yi~+=yV zT`UYtyu_Wq@}45p!c~2H5P?%?1^2xj;PHF`=ByN80$XVtzL0{nFgXiC~Ls?LC(g6M>hc?W{_ks%nGb#tm{U^ZlMv;;Zgp89W z@bnpAQs+Q=n3-J{Q_Jpy!A>%NzYCn_wcsAe!IKJ<$9w0W%>v(EJ@&*14ad|dA15kB zYt^C!4xi9tU$EgzixyRZ=0+yA#R`3rQ>8BRZf(cvSY(D>Q@r1pF`)HO(xpdxp(c;z zT`>1Q3S4m}>K0qF;r@?$2nYipvA+zxNiD}!s0j7aC)}?>#pn>N)$DGoXk%S1P0;?T0iB`d z?Ccf$vA3|Doy{*cuNZKapRa0B3tnB^8hc9<+wr^&G-U=fEVab)78v|69hlQD5c`X* zmb5gO@aHe51(`}T(aq3_Qb`ibByAzN^(5H*N{Bh|^>G7Yz&~3HyMJLwdjhoGvLYi` zmP$x?YUT>TR{4P>{09!(a1R+0Em+|EtpLnRjF6PetD{N=`ff3x?lwdH?NJySr7K2x zbxRpGm>gk9VC#^Ex&TklZ-TY+;*2!S9mBg<`(Ej6?|#CN<5G^jDP))Kd+}f!c>(?! zX%FTOF4dqy@V&**+zN{_aT*&FP$^6=lz{pvhP>=*ICqZjLK~4PbbqErCgRA!(&%RB zU!c38CuJS3*CQ(!hxnyx@IV6b$oY1naMl8!HU^_9Mn4xWuD5~uHeHy{3L%tuV=~Hx zmOBy6P}7?WJwG#1j`mTm0L6i6EM4))_u$>8Q@wKe+T2I`?lj_!Y3P{h#O9B;j7xou8M5BoX-PwnAgw2JB8pyT+c$ zKwlx1ab&|KwdTgJ+-KYE8lo9A1wjPq& zG6D83O4XKJndEz*thQve6;1*En`-My-5!pfs_iI;O8W4Q>F2q7$2 z5MNQs5<*ul2)i7*9wegpl_l5;f1^O1lqCtwO8D7xDn|rXe0Kp_;r1BPb9zAw)o1jC zTn&B~B3I;*KnQ_c(WgipA&@INAd+cNi;tiApRg4fwOYJFIoDb0R}fG{U@M6w3|k5B zJq&7qfUX)M!BIH2O63C&7 zU;QbnDY^Oxz+A3A5-Bf2bGiDg@?Qy=p7Z}et)S=8s}E&Vga68>@>Q484i;3*jb)e+ O79|q}RCuQi+5QH8w9YXA delta 7010 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 delta 5365 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 diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender.azshader b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender.azshader index e7f4577c9acb92aa91ea989e7bba8ef99c4f20ca..781d7e26e514ab7a100ea668bd864c3b9ef1f0b9 100644 GIT binary patch delta 9533 zcmeHNdrXs86zAL)C{+qn7zG7eKonuLfI57PM^F(b3{iYc5ewGItdtZVa~Q$tG8dO9 z-pHAIvL)zz1RaOrGZqeF(}lyx`%{fu?r&j@N8N$NsX=jFo92~ zoNeA{MtC1GsB2{x>XQ}8j+_}}p#q)9AQ%TqNf2gbkvFkV1Ec6`nL7M6i;Ts-`!G+V z+fZI(w^dm3?Nw`1H{hLo5|86^$XKe+nWr7nD0HI+s~%2L*lebzmo-X05+R3-NBz@^ zXl9urnmT8tf)4v5AY4&m-b&lMqws#J=zI@BLe{zz-WAKn2=D z*y=6QvAs(QWiA!lKy-2crkP=a70f@r^mA?Y4Q6b&v+Wx#sASe?1q=MWO%%E+&=mpN z&=QN)R%zZ?WviZ3ZLY9dFs*<@LpUFqm?+&2VU9ejxwf`yZI$l`oiJC;SE0DKnBrPk_%IL)zQFu6n`R3D@UWWaxP=^ZwK&$qS!fPi<6aZ5g z4GGkclg|P!7%zlF8u2?%+wa9T1(3!2w@k!=LKfMk-C*QSmSFGOL`|IqJU(ZF0ozYO z4%^YPD9A+TJcUsjAs6dRwET(@?+~_Xb&*geY`<5G-rOYkC|aR zz=X%2V$-{Kts9-Otg~}>^2p0h8|zKzs%KHrR}g`w5^|2#d~4(}`5d;LVv6`m2uB73 zmylJDxiwrXZGP2=v5Se_bN-&ehJ1w)Z(k;nxHp!0*j5e!=v+$HQ&+thDi{{a)~3_J zCLR_()KFle4RyKL*UAhU8w;t__LY(E;Pce^gXpktJn~Vf{|1y;bcQ4kKj+2qFatY3 z1tU9_iTI0w=`@up(YA;r^XV62YY{Qhh9D(sln{ao5}=G9_&|Q(^K6@FtX#3EhZ7e0}H2F*82q_24^)RjJ1-6w_N}~wO zrsouqsy|zAYoz+`fn{{JY`gMu0l z@9pYY+~eoyJ*Ze3=J=_Wpc`U$?C2uLJ%u{^$o)^j>d0XAl{6<_g_#82;6Lc@b-M(? zr1>NX`%W{2Zl3}c2qN8aCJI)9FoJ$RE71e{Y4Dg*?8L-Lc-9}v1!cUC2X^!z^|W(L zw7YpYkS7J~J)K5C(LBI?hM;NPv&`7}WYmZVK6i^*GQ#6vs@n`Vnm>gL@Z(knT~-$n zEj}1E==-Tdu!5obLc8F)8{HQrx(%5UfM3+I><~$L1jz64P73xj2wZfC+3ST;McjW_ zTOy8Tpud|3@M;^%2MF4@LuTT~`GCQ14Ri2p0Z9?50nrE5ri_u;0bz+)n=d5mr3gGW z5660iF6;#&t_WY(N6-ZxEsu#!i$nvb4Ll=#G1@`;Ky;DEqYqQyr4b&{Nu(1B-SOgs z*AJl;&W(w3cN{`5Fgcno5r5oONRG(lf{au>8FHcELa)WLeOj}JT(AW8rr_2~o31+; zw~*p~t?;`_t)dgI=2F*<$R>mUI`!TGj#oJtUeyEc*Nc3M34F7Bi*c&jd+$gnYiUN7 zZ!z(|2#-O2%eRnC} GJ?t;$y#k;B delta 9929 zcmeHNeNa?Y6z|;kgk_QCLlam)c0o|o*#)IiM-)T_@@vHp$_8PVU67RBbwNTbTfcHj zr=Xi0%QBQd{3u6ltF0MD$ZE(*U2Amo55oSjno1=nr!mL6@9pkm7f@%KY;5NJ#d6-c z=brbw_nvdl`Mpiws;*p69U05>){RfBbm@3!aY)h9CG~SwWAAB_1kbymhfSM%Az`BorN0T zQcEi6QF62J`YsrTWz}4zppE5kLo|+j6Dl#P3x>Emx(ETbIS!=)6w1wdcg;!4idaRS-eY(eH6zs%!RgShnGImcTUKMmMB{A5ogbX+)DYhg)IKHBQIP|nJ>@>NB zu^Jz&!Yn!w;QSRvYZc9^O@+@<+X&{Cr6dwxP{VN44TU)960J=?2s7|>2$d z>n)C2G#rF1tO*4Z>O)}~hAY6-Qo?*%UeAri8AnV$9Ng+m)lGdGn+4-49T!cy-U#cZC9XEu)%a3Pq=D37B)&qF=~_y=%jWS$Bwrat;ZSm2FgUct007Se3OPJ+F>z9 zg)tEOPW_=2FyHT3Fa*)Fm|2P};Kl`R`x6?Ng0F35?u*glxRyn+s1I~yi zp8~5Syo95e`4My3S;CAhrkom_w3CZfY&;iw{rnH6sTiFGI~1eaPRBK9YlgcTx6P;s z4CXAtyOebXS~&Q9Vwv8YW@cafrn0xg<`kQT(RT1NxmoEQfcXU^$rW z2p%|q^^k_$t@rC?KLTEcd2j%xiQGq@Z9fN+?FZ(b-E@%)kyIs4M3VTM^*(MySRnRd z{rl*Ce#AdaL|NHKk@)55_v;A&PsTgaRIWbtJEkh7v2P huY1ONKl&0#C|dsOKjxq;t-rON?EXDnC>gg#{|ysdZEyep diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_dx12_0.azshadervariant b/Gems/Atom/Feature/Common/Assets/Shaders/DiffuseGlobalIllumination/diffuseprobegridrender_dx12_0.azshadervariant index 2565261d622427ed4e3e9c88d063b55d3d292200..668dc28ca02550e7488543317e92e7f4b3ecc89e 100644 GIT binary patch delta 19598 zcmbum30PBC^FMyGkc4c6Js~U!U<5%-00W|80vHfMaYI~M6Lu635v^4;8(~qXNL)a) z4T2P_RuEjUY7;;}3W~TCh4O->N`19OYAsgZ_CGh^((nKMKELPr{qnHfn{&^cnK^T2 z=6vSdAOFVu@fW66f+2bTWR?8lVt$Nv5hm1*8xj)~yd#P1o^3zVWv}wYn(2}F5e$ML zTW1%wg7pJjDuUE$Ikv%AX$-$f-0c@#K)Jc2{LSo<3yTI zi3qfF&EePWdtUF+KC8$V)8$$R1T4LoRIG0FB8_GdRNC7 z%^Mq~GF|eBR2++tHLByHL$ML?Uuq&MtIYlGi`u;6?DWdr2TI>OJa3MQ7T=h3@r~&Y z(seUsVhqVDgIwpHMILrH(Lo!@H}*HF$BTyCQg*w^#@6N3!nm`85S#rB z1cTK@xs@hP(?$|zcyctE%)AUKah}MK!kfh;ZYAY?T1xcOX)^W1?KQ+t-H5X|ny6yp zr=+}WZGry`uB_VU|M--Hiz|NVA4c8%?VNK>(t6Xmvz~E6?Ypdi*_K1XDv(lBy7oWw zT(tM+Q37N(JrxdvN{0@N%>dV-U+Eabb-00X7%`Yd)dnm+>>OVD#+K_T^xkD7`&=V+ zN}6W=V`;G%CJ?V3C3^eS7t^01W>2H&^@!Q8BC}J)^v4SNi$S7W@<%*$O8(lzuwk?0 zPdHu6om&N5HNrvcG-Y?RL!=oqr9%!q28R))bEnD!KRbr2?s4=QfbJ|_z1)pE>!)zN?A(_ciSz)O4O=$36Tyt(j{%vF-Xt2dmKNwR}cRyVbghAY_$VgMf zR_$-Z8RDv9`dAeGN0Hgjqx4@G^rw3A&l&U)ky*WhJ|v?5nqjs}f$f)lz}qMJRr~Wd zMTBt?5(2ak?H8ure2yloG;fPkljTp$(t%+pe-VCQM6(9>)o9$_O@Tfl6&>2Ul0hHk zoBgh*|MYfH7;E6eu})g?(XmMASXf0=srL1}Dd_xrac!P(?b|F zg>gan3K7!TqGipV!9*y(>glgC=)Vrq-_JL4V?Q*yI+>xfGD;uQ6Cdg6zcT1A^aQDh zxC>|?fpat(=ZY> z&pbbt7oh#d-`QNfJtObau)NI~d6^s{KaBW^w%p$VC#&{FTOlP2=X&2G4qfojZ)1vmZw$`;=*Kk!^7eO`h5#iFR&m1;&0HV}ZS~ zV`9cv?LX|eK1e)hKOskSD%@eX6teb`xLA(GOYIQ7KO$`p#-M)C_|X?X#$q{>Hwx}z z0$wqBg9JO8krZzq%$*}e@S=B3p9>JIbn;H&39H{On=9F}=RaiJ+Mv=tw`-iE{B zG?5VNa2-j4>^7;;TaxRvPv}YVZXIGqexXyCk>BXL&B%Z0M$O3P6&!Q2WrfI`Y+WHW zC)-vi%*pl@QcLnN29Z2Z$2TD_*F~9-qjd_Cj!OS%YBfB!x+vzDsnCnk+;vpiO#SP6||)i6!AVt zNI6FLfQk$yB5r;-(Ipo0pbKGaBq+A~Aj8n~FDimbLfrguq9zt%cLQN;A}HuE{1J@q zM=HXFrdc>q2MbvZO`8b{tPg?*J|0t%xk(5q04KV|LP|bcL2dbM4)Q4zL9kSUcKZ4N z?OujGrbBy*F%^qX(cWcv+hAxtGF6m_+RY=)Z%~GLb(V6DU;^qL%&jqw_?a)cqo{tSnW!@Mx3zw-xWM_exsVN32gBGMt z2uA0Tj_WCGJT6p-pLJHu&x*$l5&bO4v%ST9laf+SRnr3CVRk7;r>eis^1xyq*Z}$ldH3Dnp8h8jw=gws!0RSMJ37o4 zlf%eY_N_e1KGI*l`aTmKrn|h){-aX%5B>NG28viDsH0`s~RQZ$XT}7X{Kcg0w!7>MHEo2s4mA=Lj zWFN@2$20Ql)IzUkUDFGTJ`}48#QNE`a~+5kLwHYHzS&55L3(_`wvd#}gt)Afjp?$~ zh?Jz{EX$lA7{at&%Eb{ji8|k@ZjWbL`afu&0@^HAVLZ^j_+Dj28bjCJx&!~vS2XC0 zr#?yreF=>ElA{VcbMX@2`@OzkwUXI|t_l1D7`6Xk;(_R`ep5bqdH1EsAFT&JdHJYy z|JGcI-;3zS5{A%iqGLHdrw{Ah{o!Pa|L zl9jweHmwIk4$AM?Y>gH!e*|A#FoeYu;%K1z^!NISPsoy`q=v~-6QfeLC8Vy{3VOEz zrF2PW;s`QP$9tumD)jO!n(h`60S=^}YQvT?2<(f5=y*+Z`jnO1ep=abd~J8aNBvVi z9=Z1Mm}cEy^W(z_3DNS_gxJKyR6-Ju)D{-C{PwF~b%>r64 z9$X#l=x^=mJ=`={(=pmQFfiO+GmtybTGiCv^W>3`x!|TW9s!olJfnQwndVt^+MRl1 zB<)l>-Du%oQ8zw)7Wvt!_3C|Zs9Om@aQ}m=tply{nt|%p;f{{}s-}^i0ie<=g@i>W z`sv>kufnGug^O|%)%yx*TWwHrs51vyUtrjE+;UUZG#$S3{2A{#7cVphG@h;Y^{c+% zQ$~|y3QI9yk2TLuQq6uz`+CvWr`)M~e|{DLRH|sXWS|o9;Oe8nj*j-P2EikE%E2X^ zGxQR`B`oaw-hS;W7VB2u(LRF9CUzke-1WtCI}Z#Qu5{hKeqfcR?(PBFm2-vzja`~s z$FDS|@hvVIZXnP#x^LyGk5@5PG3`G>y~vtQpOo{foGY@l0JL=5CF8H^W>EepHtexxPD6dohr#;st$lvr`k0hZ7h%2GPHli8_?$O)WVOfSOE+svQUD)yoKLC-d`GeT0 zfAFG(#>E8ouP5Hd@kJ&R4=>u11_Nvc%GtFg2yQutfIj^&KI*eG!g%1z>g>?!Gz%#G<;iL$taw;Hg_i3M*{@R#&8>TOIH z{StX9b$!GyMMcl9ccy+_n4YfQ_rmO@i&R10KR7(l(oxkkmftkeR5&pFplJj$lIgI# z{x*n6)Q1Xd2(mG&N{*~$u3BB%7gKhtT)uV<^9OuI4a8aJpk9(vY~QWY?y&UGPK(>Y zrc^H6vDqV&Vj1V*0+H!FM5b_(50}rZFFPROcD%^A60I9G1$77ZMKX4; z0SE7vbDY7X<`@|Q=Q7aSo7)Qs0kGo*>{vI&kf^z|)zA9ni+*{!=+`%k#tRp}I_J=tk4{McSoX%cO z$m|BL+_tde_PEY0V#q35X&qZ(ox!!u7Tb0X+4o``hGmXp6^`qhcv~Ox?y05^H%(7e z3o|Q)oj=a$#myb541CcX7%?0YgP$K8B1z1VL{vzk4U%nDq0xrWc6`L@Yb!D(Ngb`J zPg>LeB4kB#v%4v^|*M#Ql=wJCa~FE9r%VjrD)PuU%q~0ly{^l3MN4+_L30g~R#B zT&t5rNu1ZSryD*?$Hj(zk`wxARcNnc1tbN+ zZ-j?@&wBe^au-Kws5h^D9gz+hM_RbZm)pF#juKZ7k;{U)rG0emqwc2mj^V=t?H#?< z_ysKQIkt^w8!rSj)}3v1k1{MTpx)GYnSJfq-u0}=3(Z>6(s%2FWy|w`sMqPIUInSU zy$Zih4d+WxVjcY>!(+OEp8k}9ra&RsDwV4of`M;xUg&~O;K`27jMkOECdQFeFVo++_3d|MW zZukHSgTYY3w#QprJ$(lzO6%-36;rAW_lm*z*H?P|jVHyF(icAsd&32&k)>_+@d{R= zaAS(u^Y$y9mX{eNlpyOvs*~szQ@Id92=Lz@e#79m9)6#}?<;8heL8|HlPuta-0;!* z`ko=<;cHj)4x^P}ZD{BfV3NjNElJCm`3Vh&egz-U9fH+X%?u4NgDdp+?Pu9?@$wfQ zsEQHfKjeR^xF5cMtKt`AQ1M~RVI#1quOAXRVX)OgfG2#cyK!@q^Rg6qpN^YsZzpbZ zBU<4TEwq{bzH(P9o0c$D)2b$HSjkOfSTKk3;fv zZi{!89M7OBm*4UdVOj|K#Iez{hv|CdRO6kZ%MEzM)&KOR8WVgNPpS(S9*mgWxSm?*J4e z0!D~Wry4CPRGq`%0hYMcWY(Aac)Bvzt$>dPwf=;~;C(Mth=WL$Y}P#aH>xAI!z{Za z*ek3;a#XZU5+r=EVzD_EL+&!?Tto0!lHO)wKe=vH$9y;h`apd+TkI?+1$9MDG9m;A|{j8~Q~86`K< zme*Nm*YyjXp+(2IBJvPj)!q!S@kR)%G30|-6z=x*lz8yT_^9Rfq;`dV$%iwTgLt|r z5i$cf5NT~^&%q5xWTHTsHf{D+N6%li)%g~@zvq+o6cv6kzch)vl$cU&A^6PH90g%9 zb0V<1PqmBZFiALob~%c&0Tf)-em;lgIC?qaJ%Iby9r584D3V9OBN!>x=LDdj-df^Z zvnj_Oe*hMLAz1{|AgCqs{cV;yDnU+IEya^W*Ux3~_zn_=>O-9N@8SgKV^;Y{ZfQQr zLAf48MH088@V2&hE(@=mY3iu`eJ+=-zLtnl!kmC<6qh{(9=)~Efn2)>6TW5w^8J;u zz#RoQu^16jtlbwVar!0g14V7tyDXtBL2=|sQG1P|PMK%zH1HvrmF`j$BW0ju7>Fx> znVnW->ZQ$_XYQcC@S&^$ltlkXBPt$-U`q?MZ|1oID9XWbw13X)^Gf(lqx7A>pZ{uN zZ8!)p?Xg%(bFRJzW2va3yfbm5L2c3Ape({-{?s~Br(j9TwcEu)VhEpE7-EOlE=k_4 zT}LNs!-J^u2q7Xpi$SzBq!a+bVI0C7%NC(JGk*BPrZ|q#@1VELv0@BV3?`Zo>ZhFm z-oCxdos)v#6_ZVXw)r7g>Es;%arOuXMa$8TzBq}lfQ}O%xwL&5QG~qZoj=_8kMV~8 zG2Tn$LkMpdg4a({L4rSz`f$9PZU}Uo_~?tjv{E1dR2e@U3LdqHci^620^M6}3+Nu! zWCGi(poSk~kmpn|C}e@oo?Iy+*VK|vS&>f3o;RlnKpx{8tH zxmeLpfWujb(e{gE`tpvq+AEf0dM)wO9`7{X`nT-<-vJmo3q<9-a(F%y-=NO%Vij+aq9Gqx`<%Wbq z+jfEiKLHND1SB#EX`hP|{aQy=ZF2+-qtM`1BQhxGlymS82r>?jWH>M8Q^^^S)+qY; z98-aqvs`7iytlvKh;7-fV%a-9z;hu-R$dVEkI)M0_-cV~tB+U|p<=vy>`-4huy~fLen;(Rd>7$@Ub@1SD{!1{SqdimX-k z3N=k-PGl2=8Ms-x9spj1htU0}P)ur-s`qt^wVcYNJn574qMqRuTd}6-F`WLWp3!osVff-OQLiA z#H4$`S4~hoc}o--5Q)L2_V%9s8$g;3Ta@VJwH5SmnYxLvwV0SaN<1bdpU{)f@WoP- zL!}&i8nFIACy;}%w+<5gE-1s2EAFdJgZ5dl@y#|u{DoREKSPG&QtG29jeK#8=Ace# z^GMPfjc&&)1W$BULei=k5sbAM9*=Z-6nf$8h4>-p)go&iB&PG}Paj3^yk8R_VM zg5olO&Y&Pq^}{Dk!yWB_X3X;479}UrPoJOB=u_wFcgg!gqwl556?_oA@xXQ3mBs@m=wt!*BHy0eQ$at14p!s@265uqhNo%2 zocIjV@ewe+_Gd;cy+7EJ41@cJ8R(rd$0r8IQJIQE@fC>kHDxgV>ssz0jDO3_IKCXv ziz(4*G0z`OjJ%@^ zKKblB&m!2fcy&EXH7?H73E-L0g07(g!qkZY?l!_c`^14FfSO@XrfEdCW!PC@@&UJ= zhB)~9KDa7x>1lcdj?Nw|_VeWIV|4rQv~}qlGt*?L6L2w#h=BV8^vg8HSGI&mFF$|g zY~y+7IT!sdz~0R?D2m7~jQ6xVTZ2ndF?wP66iut=6aD?#BP|PCS|WNw7LB$n&Y!>P z$Tj?sO-8IrO7W``^Y6q4*V?f0YWZ{_b=M#v&2apgN7~oz(<2H`7XtQqd4Aj-u{&eK z>$ecMdPm8^*$X!>%q)*x$o2q0bJMMOm@sr%!{%_{mj_LQ)jcmdgv{$}!K#VJMS|ql zu?uGhSGt6kS5h{!J$87r$tWs{qUSy(C(A2OZU8D<$Pw)qd#yk?+|k zB7M*K85d^Mn+9coaIQ1#uE2B#_Z@=C8`{Hj0O1tln6>RDAN87i{B-`h2*y_NR9N+n z5sWPERDk)CQ%NClYH49>F2=WC;X86}XB~?7qp0?hE0IPcJf|_t)ZDs$T#j0z$l^9< z?J>aRmB(q-LERjo%uvx#=-9Z_mX^UQ&B($Fy;i4+n6k^1gl!q_kB!ne++Zg z{cbR>AMkSS2w0UfyDJs+U7RwhZ`7tC2<`$R>nrPwL<~U0qBc3Bl77TA2mxq)m}mC` zI7L`&^P_pupCq=}Y(<$2g4HxCxy^>jvCI)c)ubT8_uC~fAvIvK5x<ELXv3t1GyB12TmEx=nUp-LgAl&TiPmZmeTp#W?=B#L+V629`oRGyX%n3Za z0%kw*?P4xruVM}0xo&7($*F56Xe~8nEx09&L;sI+9|i|Lstg>BQ;kvr1>#Z7=cse4 z;|}fx=j3E`PJe^GW`^4GLW#d0M6pD9n5YUSp4;5J$sc?fcZtdUpWLX-(XEKqAS5I3lfDAP3I~+PP~mKYkrXVx_#%(e1s{ z)+Ix+A}j$d;D8Dwhoe9ROZyJ>m&KH@KPp43d7m${`vK_I?aQ@-^&oW}z11J;u)is{ z#rmn<{$p23VwEHvAIc;B$g#1+ZzAoXsp?$VSjYPu=G?QgQJmkXd0^VQ%~^6;X4d@l zcw^~^U5Jmcn*%ll4ocXAu1j`dmHpu?@GQYY#H|cotT)dRpUK=qYj*4m@`_+E_my%y zT?Ar(Vm)+8>t-5_E^`~if;t`>D}=$)&MJ#dW}YzdE8~;~uZm#wV5UR1<{rW59`XcL z9g(M!M&i}dJJ)l?i~9A8dO;QUmt5C0c9mVZelCr9IJH;dx-DpU0h+8Ff40yQR@z9> zvq*qUpDsY{2cm!lrQCzPJ#L5Ahs>_rp#`t9vj=qHp9M|@g;0A7n_5Q(hQYUd;rliC z7I2{Fy)W^Fm9>IPesVBYi)l1A`1G1*3x7HN3$^Psq+aVijd8Cqe3|8z!O@i0B|A>e z4&LlhUXHFz7~y!&Aoy>nzCabE^+|8jaG~_wC?|YpgPVrB%7r??`AdxretyQ08o`^P z6|og|D^B3@7WLV#UiE-wCqKHRm-$0E%%to<>s0VSw_j?a4+2{KM|`4iB?@-0J#MBrMyNvY_vwRI)EM3#PY85On2$TJIZWy}6 zJi1P!bg3Uo`gv<>?~_N6(3CuAy3tY6-`>;Of!40R_MM74niJ0`r#+z->vdxK(^H<; zi%wA?x2%Ec;{5};D7oaU8inunz{=+?O4#XYSpxpJ=4xuc${78 zaq*bPl`#*?oD`>#Roc&%+O9JC>mhK~o47`2%}sb$5llEV>8NurU>3A%ApTp!VoUrl z?T3aFSMvN;p2sZcgvTU{K;wy8=~9*)TxX07{5u8w`z0_oe(k$5FW~9RJlH6dK9OfE z%tWD4k3NO#zk@D@XzjKP)>7Y>EuTVBT{k>%r=u0k`AYhqb__r2INUTc+%w7}i9J$9 zC0l|2O@|<7{-A`*+X~f>sLYM)CyKXGnF(7XWm%ai+bnbR)WHPBhrwFNa)gR6`4K7IyV&FRgGlS#TdhoOWad$8;1(4yW2RoY0y_v*b(4b0M_d z*YEsssn_FUUQfro#+J?)KRe?u3vbuW-tNubGhBRTs(ohv=pzdjCTfKne8j~sluIE* z$E+z^%UoW%Hf9a$qq2U~f0v^v<;Q)tYs>m#?A9z}+OJ>@^!An8v+nkF_mwV(dJO80 zmF4L6sp9*WCMzEa85jR@;ZC>X0iH|rcuR(g}<%(S5 zA41p>-P`}D^~F{mMBEqE5YJ?2i+r-lDz|N-X}tP6H1)ikNn9B%i8cX~*MrK(BY*ST zGME9mhuXu##bx_9o58_V+#Uq~-~Zrh$LQd|qbI{1r4@(R z@TaFCA-#N-bC&OaiGQiV?}GCMzTmv~S(-$?G@!^64bbRj?8Pxi^l=Y~J8t{wTmq`% z0>1PSGuu_IYh&2)oys75f1lHEnsdeIu8faynt5+6lR>e5S$D2qF^Fld_W0I^`#5+MV~q`yu;Q#+1jbE@OYR%z^!p+|GW@>N2nj%omTM z!5@8yBCL31!)t}wW@2Kr-^#7~8w_DBU(PBBV8+ZXK=%t1=T(eFI*04W_rX!8v6SKX zW&z=w+q1v54E%9fpe4S`3H*tF_ckq>n8TF)e4Dvtkg;z^rLpPup2&7Br(H7kiOQ@U*c}~-+HA2!J7u+t^Jut(e}i$T9Dp@Cn_4?+x;>{{jNboGuEK8K$}ut|oXPv6wN=;> zZNme0ZlE3`>bKx6{M7F5(4D<)I|oB|jkN6=4V90#$wgr~VeL6lVVal`D7@vShvjW2 z74qbyr+ORM3DrAi0oQG|_Gs$>=vsAJ?Om>nYc-YxW)2G!`9zr6F8Toj5`8w&2drZz-~yCp8|6 zkbo}b=apfDHJeNVV^dO7(i3Ev%VcR8sR^0v{E*M=&h|!?&Szg)V&8QO&vh>VgCi6z zA>Jo&>nlyM*UW&{hC*7?p-@Xa-BrjaVEVQaWYqEG;2F#feBwrgQm3PQGf4SXL?5iB zKV_IbD>nOc)a-SX1VOk2v+IAPG;E%I@kdHyT;O9% zNo>3%sYwwC={!A+yUnJA|b*i;P#7Bf*IlL+@ZZ8DXLNW#yT!%ik&=CmXaQ| z%rZxy&ogae_BZG1OF4x~IM3Lsa}<&y>t%xOk^NEb2bQNqO^G`YQ*dMd-S3y9jv37c zVY?-xj>uGe!f$*r6Za{AXCrW--qu@7{rW|C?f&pO-$r&llvAsR+KP;Vgx%U-?e`>W}vjho7t)p<&N+3%sp4nBWz>9VH__Vm1xD|4#9 z{YlR=72>c;z0`VKJotyz$?xL+T)ykC^WSE?TC%dyhG4&usPd#O;OQO`%n?}n34jyKEwP~P>Q|IdA==m<(D-#K3_{^{`ypJ!fq zKi$q?-|+fQsb96lF1`7F!mIs`)rWvN%qj68k#_U3QJ|9VG6L*KM^?#Q*RvL%`R+UK z*v;hB5~-NOV9HM^=91p%hF)b)nryNp~iy2KV@M_1`oX5UBc;DL+YZLP_@ym(#JwE($72bF4)!)W3J&5@u z+Y4zH-5IZL{758);X+FH_Mcy(mGf=n*M#UJK_Z}WfX?5agCU`9AB8plG<)xi5Io(688wSaI0PRaY3x?6G19d(k0dcwdsZY7CU-Z?)PT_rfF)ajI zg1JHJc11|&WD&VvV(lRS!CYebOe$Gy7eZJ*O(T=?nIp>!+XwkfzS~R&-_i~}razUX zbR03v$qAmV$Iaf~Jfk}}P#-)?C*|K3YCra4+tQzo!uuj-sR$uskQm0Vt(jRUV)}G_ zcyiy#cyj-LA){rzdl`T>@iG8s$fUCO|LWBX=KEJKHhr#&?BMMWI$qgxg*lXelz(k=pX=U+d zyAJ<9Q*0T5SY(33Cg!`X- zd<%SBmF39Vm4=DeUOsVfyLux?5E2@OExqIhq;d8cd?w5sN}Ea5!(S45ekGvrUuH>6 z(#GKbaWp~rm0Lc^B-nYt)%a!^g?}?B9CjPq7IWJ+1&nQsxJ5K-ldUnOg-33K6JJT5SvB z+T1}L!jDnOGQ7@;T!~+=6S=KYC|ngJ*NOKJeosVd;3b1Lcx~ac1V+nm2-281Q5VeD zdaj=>#~kKRZyC#i>IN}bDOwhkJusF9nKh;=b`3^p+7uPZAZ$?A&S95mQgRbAY?4(R zVtg%^Rh7sjBq@2MEl~uvg=+o51ddH|@WZGsZ)yuREsXlrs(fXPjyB(S#l4y05u8sc zhx$Ds{<>W(%U7z3A}2w-lh@MP^)tVNV=4sMZ#>eM3Ie;>gnC%UvXKVEv04&!yhREt z5{`j2FC`?@a`|dnvxopaMH*kITwsjHz-rvRmPN07i*Z`!1ebH{`*Nja9Q%I!(1_5J z!fsHqFJtVf8MQ4KQBuc~4aVvMilWE>M#%s;;78~p1%A$&HklLH2W9jT9eqGgC(OQx zn}Y~RnZ?A2>Qh&1nuc$5Kw&hGnHqC&ZZa-#o7$f_C@sKAgS(+7ICm5$RTY!tYQ-@k zS+JO}VU!rh&_0?PJ})-vzZ~ZZ&mf>jw@_%Kq`ew;5gpa|lqfjgb-c4^k(U{II2p>7 z3^+(+jE)$Qwmpr9VQYU)vtiCmHM(Iu9LQPnGZMUjsZgLERIPPLUyYfr-InfxnWa6F z&Xp5yqCR;U&FCx<83#ccpv-THmodUii@CfkH)fEAe*U?M!n!^3bic$IUGEj-G@#>{d|Y@Enqg<5p;{;E;a+XkP2{#RVx} zQv15HQ)MvrBoU0{#{ICsm zgp^ToI)i*#NAAfNV-*}`6~^Dvy}ABR24f_dG5)O*ZHIw_`o^P40t+i2*o2@+ox;%JE{N3&8~Fi}tHo{rplk z!6&vGWyoSyx7eE`c6tFn3`24dQpmJN8DBwPU;9RzlEImAuGx*`LLfljj7FS0iI+82 zH%J|f8(=t5^rAqU8ceo?N=NVp5p@7#!(XBu&9IW=1iHM{BNCY}7m--zNPT4tiDka5 zWe^cDs4X0)EHU+eY12FH8lo=xXFmfkBG83ELKz@93+P(wLM8`TG_VTsvm%lhF??~G z>!Np0@HWv)6NA!{$UQj z(p1eqETU@D1q2d@Fxy~O#jw;$1y*tnL27PsLh(PIdlWXt62Ji;yxNDerzE3F+Jay} zLpOAu5l#EB6#J2wxa&!i-yzeN9;;KC@2_r%DrhBpChOt~d0$L^hdZBaDxpZI zaHPsGNPW;Wg*m-ep}diAz$iF!X1;iBdy7}iHFSmneob!TOiZ+rc}ElZ2D_$^hu0@V zJ%~qbO2!J_wvAj{RE+!Rzqh?HiK%Li{AXKf^E-Z}zU@ud-|{QR^|(>m$etOxI2yD4 ztw@8u-N$}@`v~q%*d7T56^Y7v_k?t2ugX;YRxOH|4^+>w6y``FlZhI@3igS8la~qX zuVj;#Ti7QBF%dc9>j{ z^Z^Mif1|%@3GQKex}u6lyCzNQlHnw=kGODXL~Y+eeBH#b4I&h z?eJrzsLjx_FVA1yX#s16h8o6|wsm)M7B=7)>Imy~a>Dxeic-<$ah=%upg>`cCOb8T zGTy7V8Lg|BKIju$ixMi^sc+@r)r?7bG)^_;)&dXx5MHxyp-l7WMFA;^u(cONMYAB`WY3o71gt$w#^ zB{_2*U}s7!v3gZlATMOBj$3jwImkT5qP@*R3^I?^#pUmH2+n@WeCQLKfijpd=sdd5 z_KDyy18Js-cPk8@I40F#G&E+uvapl5PS^HNJCg%9tUK*H6_V}m_0U8kd}EOMF;ge~ zf-dyUkG>D%e7PhExO`t3^C@#Uu8rd~oA7GVDX|I{6kN>BeorEZHXA#0lys-tB|~jU z=l9YGKFM>3<1k#OJr9BdZLG!wKf|q(D|d=3;OFl(S)Ls+rG*n{v;4VWKT|y(BfXZ? zqDP(5*YnD>u@jeGQ5BYxmtRMn&>9F+1BJfN>y!mIGg=rL`pAm+pYPf38K%Wld6^LSN?^cpPcXye{5*V$=_RG zYVO3gbOv`u0jn)OK{-JU;**rt8nE$)aRyf>OV?Mu3|Q4t)H8W+TVlPZ#A3J>i5QME zI6GO|yy~rOZ!5+G=2Axm@ru1E#o4FS!*M|n9B>N)AFUV@aA6FCe2SBYdSM_B|GbX2 zXgDs6+Ho{ijO&ac!OyoyRo)9pgY{?-^!bBX>m6vT{Elr$kI4nCPPLRlr5lVNG zwUu>mG7JTjryPdJc#D2gH6xIgAI?WsJ z^mZ$7d+QqCP}{4*yWX4PgxfT(yIi4jFcm8x@knEJBABZ^+46{(;kah!FU-{@;J(}Y z2?e@^8nu@biJBH(Icutn8apw8! zZMBO~6$&~(`d?J21Qpg|V_k991P_j6@Kc^So}m8yL|?Ep6C_{JlRk zn>$f{afTQ^KRc0CI>qsAAYc19ZB&zmT9U6A79&CCt7Lj6=8uJrF{k#X#+usgLAraqH3y`PLawbfi|9F0@=R3v_08W)?i#a zf{NQ~a=lFmP6uS-7Z1m+nPL=_xpqw8ebHz{eR@e?E`Cf9T)fv@olUhHjO#|6)P(U) z3wU)T*UPOHWb9SNdcuvTTWf4^dUsoHziuzBQ4FfafvS7|e7rUH97}HWn(8ijMv}CA zvgNO-pX8pOaHnco&c{jH-Zli0wh}H*HbmycCgqo}QYGq|7=DRgUR09R{iR1A5~fi% z$8FusuHknV-FHvd#p>rlBRPn)kic94^Xxm=reo zOdt0Zt7JkvH?{o(r=FBAZsj1%NQPW>D@R;2q_Cr-e>`gpD)_^#xAQ*9_30y+$M6-p zOX6wcEx8B;3pB5ZB5b%5biRIGrKytN&nPu#c6!fQB#q@0oNJtGz43N}WHbu7?_EmD zz7s}@56gugiKS{tg`xT3H{l8O)PBqUq}tcitzQ^`Ik_=E91F{9{Za#ufmuO9m}|%l z4iwst)eRNjysk7XqEokKO8E;#VSzS`F~R(t;W#nZX-yd1GRFkf`FjN+*@dikF{m~? zEqfno83k{$W1pF@-RD9l!UL z%8<%1dDY7ykAeRmj$43pqL9W*AL`pw*ue91M(gwn2-aTsW}0#y=%Crvq}uE?NA*Ob z@34J0OVv$s)4d_#q&o|a!q0m%G$ezQyVb;Ts?>-Bg(0JL7}Z{yS$3jnwUXRi+|9A8 z;Zv_ukD)j1oU=naAI9Ncx3uNHD7cw#KojZsK+R$`1LDO*0%RLwSSE!jvn0RjjcRW@ z7+tV;`e_TNHLIrt$|sdy24|KbycqJ8kd!jlCTkWeP1M<){NcD+2(D_;CUYmtFE8fry>*S@RJn&6D6tLB_GAsmUFSG0 zB)sY^*0<&21BI@mlgs1une^SC=gKG7{2TI@Pg0l@&fwXZ%#P0qmV{R^oVSyI_STaV z0*0C&<8XI@17+AW&}Lkl?MVVdm}h9~;J^&KShuuwO5tJ(Ttw`qf;k$Kze5`eYy=aR z-)|_oCsiVlmZJ{nV(iHVlBFCw&I~hoQ778B*R&uzm;GSyc+M)qS7Zs5ie~GVPT#ed zylk3&&$+WIXS{cT>2ua+{)^U+SF@L{uT~9_T#x5&yd*omei}cncrQx@)ASX1BV9v^ zu8HH8W;Y>}_sHpQgHF`iMUt>5X%86U`}0M9%ucMlT($Tolk}LM=cgC{Ea74)1je0i zcH-q*Z0C!5sSRhWag<+bvOD`1ey;<;r{eTr9IOlW06EY`G$wHW8df62An#YDTzwlE z6Ug&_A*iSTBf!BVX1~#_-jEO-Bwe|6=DOd`tx26ZVZ?xhI8kyS6-85ZxnV`@D{E?K ze-Jmjo_f!k>BW3r$0^=xg3mrh8i^Cbqxi`r&u~8WC+p$6o`#u_4;{QhxI2+orcU4b z@iFTd1$i<9RzJJev!OvXl&^2d-*^!79o7>6Dkf_6Se*jRrG(J8G?O(Q4^N|68N8m~ z7V|W3QpX*2Hm|v0ZIfx(xwshw2@gLixJw3BSg@kKOKxU_u*{QF-57ZWH~-9drjK8J-ET0(lc|5sgmE))bNd8i56|4n;nZ@zg`Mn#Vb(O3 z3S#BP>+fr>z_szx_JpBS20L*!tW_zPzcC5+T3%i!o6LuoSH8XUT5+<@KnN(_OWOj^ zKNSTEtH{}@Vbr_L2SS)PLOEn|7L@mJj73U3%%kiVZMh z$`;kegG0YzeFUmNFg*bVvV#2VR7m#Gd<&9&-epq=I^A~62*382LX!mi(p*jg)qCM6 z=rT97RqPifV}8ye{vguGwk6wVz4iLT(d)hLZKyOgNHw(UZCG(&;$U&MCucY=k1mJ% z;J|u3V6rl|FC2*)M`DvGPnn%=i*~2~#MRat- z?5`@=m;PfXn1ElxuU6Pys$id?{iFFx8UMrPH5X0Z!lX!ySoHBMZ4QQ^-6vm2JhJD? I3_y$iKg_E@#Q*>R delta 19202 zcmb`u30zax_CI{nh6jUBydns z9D<-?MP;gpRhtA9M6igo1w}7dwCF{P=(W&#?OP|{aDTu1-v9GH@8x48XHRSGHSN8> zYo9;f<9_`cR~?EYch_v2hluq4L>J-aS!Rbs3xoU2@~-o4xhQ?k9Q%DBVOKp4L6B_p zB94t~th3xm~{7jif-F zd^ZLwvKWp$k6mBu`JE|rR2}Ah>y%5@Gm_^a#e5;^hp%8tg=HdV|7row3F`iAHzwZbH=B_y z%nc#nSR&sAN9-1qn7^~Ib>(@y-_MZhO(XK9h?5!R)ZsQXHDDG!tjy}BtyPc4NF+Wo zALY-nAlsS^3Z`mpZBVN@R_1)8H!ABc+|;K77DKi+{bg1nQOPqJDwt#bc{^)616=pc zF0)AO;1A^3n!;Cg~6Z-$`KB-PL7@loHe^7drOl3R`Kq1Y4$f^`roMZ zmxb-l;OlQ6A(&O(K~LwJIQ~7Cye~iR#N3iZ+n$!g3z~f$6Bq~)!Ex`g(d9vIC^x`h zR+Fo`DWH?!Qqkn6BFrAcQKApcj|wqB|F+Az5qk54f0*Zi+|A*w9E2mh&femyzeS}#hcEkQpiYTvvZ{Mp$L_VxC&${6-Xf$HVVg>Xn1SA#tqrIS4m#QtaQQQh@A5na zl@8uIrCe16j>!C~n?MM&t8vUunT=FtqvCL**m;D2tfs(r1-nz|*H4(;4FXeGDN*+X zOC~fKl1;4-_E$FrzQfNRBm@={C=|~AW8Vi#b@fJO#z^7vVLp&`AEYxlXO?go@4L-DxGe zx1|wQI_YPsc5heiPFE5ZCuOhbCuE3se?tcQBygpKIh};rCA-rmJY`I8d#nCdCw()s zb@ws9vnrdiPG;0Dvwmc2H6){}5yN+g0rJEO=hW_{kCr8vqme%L%an$Y z8auU*Z@y7x-iEUoDw{f3W;G}^8&gf~i=EmvVAWS<)rzBaX>{fyx;#&3E{EoxeOBgZ zM!Zv~bL6!*p28EOR)un1_n~tH`Vu@*Y>DuF5pk<0?xU#G$`(AHg9!~jQd=VuQHuS- zKEcNg$WX(UOrV z3smG#WUpSC+LY3X?lMf2jHviVlrfdsi1Ke$zY*nc6~mZfQpPo=n3ai)DduHq#uR3m z+L*#CH6}pPHYUUp5_&DsAGKjv z;clXVjOm0dCo6Q;+^J|5!_<6$b|+RY;?p`E$#d&vVQ%duoD!K|-Fe0o+|(?uu-yj2 zyQ$nFs;8Pm3#&h+=}6_6h}3t)az+K(Z*1<+iC8<5v*!_Jw&&-aPf-+B;MYk7Rw)dT zV2UGoL$#qP(OZOCnxyOBS3$!RHHw;SCvR1JQ^L6{3qYrsuAn~VOm!sdF~b@CNZmHm z`8YD(y1j`QYdDCunRQY71+&8$d%a3HeYmTADuZmhd_>Eic3emsxLhDNU|^*#*-!dLq2yusz%G@OE~ zvWh-+;9