diff --git a/AutomatedTesting/Gem/PythonTests/smoke/CMakeLists.txt b/AutomatedTesting/Gem/PythonTests/smoke/CMakeLists.txt index 7ef1d56ad1..0c6baff6b6 100644 --- a/AutomatedTesting/Gem/PythonTests/smoke/CMakeLists.txt +++ b/AutomatedTesting/Gem/PythonTests/smoke/CMakeLists.txt @@ -38,4 +38,30 @@ if(PAL_TRAIT_BUILD_TESTS_SUPPORTED AND PAL_TRAIT_BUILD_HOST_TOOLS) COMPONENT Sandbox ) -endif() \ No newline at end of file + + ly_add_pytest( + NAME AutomatedTesting::EditorTestWithGPU + TEST_REQUIRES gpu + PATH ${CMAKE_CURRENT_LIST_DIR}/test_Editor_NewExistingLevels_Works.py + TIMEOUT 100 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + AZ::PythonBindingsExample + Legacy::Editor + AutomatedTesting.GameLauncher + AutomatedTesting.Assets + ) + + ly_add_pytest( + NAME AutomatedTesting::GameLauncherWithGPU + TEST_REQUIRES gpu + PATH ${CMAKE_CURRENT_LIST_DIR}/test_GameLauncher_EnterExitGameMode_Works.py + TIMEOUT 100 + RUNTIME_DEPENDENCIES + AZ::AssetProcessor + AZ::PythonBindingsExample + Legacy::Editor + AutomatedTesting.GameLauncher + AutomatedTesting.Assets + ) +endif() diff --git a/AutomatedTesting/Gem/PythonTests/smoke/test_Editor_NewExistingLevels_Works.py b/AutomatedTesting/Gem/PythonTests/smoke/test_Editor_NewExistingLevels_Works.py index 56cd0e2f6e..394a6c8336 100644 --- a/AutomatedTesting/Gem/PythonTests/smoke/test_Editor_NewExistingLevels_Works.py +++ b/AutomatedTesting/Gem/PythonTests/smoke/test_Editor_NewExistingLevels_Works.py @@ -2,6 +2,9 @@ Copyright (c) Contributors to the Open 3D Engine Project SPDX-License-Identifier: Apache-2.0 OR MIT + + +Test should run in both gpu and non gpu """ import pytest diff --git a/AutomatedTesting/Gem/PythonTests/smoke/test_RemoteConsole_LoadLevel_Works.py b/AutomatedTesting/Gem/PythonTests/smoke/test_RemoteConsole_LoadLevel_Works.py new file mode 100644 index 0000000000..bcb78b9c8e --- /dev/null +++ b/AutomatedTesting/Gem/PythonTests/smoke/test_RemoteConsole_LoadLevel_Works.py @@ -0,0 +1,104 @@ +""" +Copyright (c) Contributors to the Open 3D Engine Project + +SPDX-License-Identifier: Apache-2.0 OR MIT + + +UI Apps: AutomatedTesting.GameLauncher +Launch AutomatedTesting.GameLauncher with Simple level +Test should run in both gpu and non gpu +""" + +import pytest +import psutil + +# Bail on the test if ly_test_tools doesn't exist. +pytest.importorskip("ly_test_tools") +import ly_test_tools.environment.waiter as waiter +from ly_remote_console.remote_console_commands import RemoteConsole as RemoteConsole +from ly_remote_console.remote_console_commands import ( + send_command_and_expect_response as send_command_and_expect_response, +) + + +@pytest.mark.parametrize("launcher_platform", ["windows"]) +@pytest.mark.parametrize("project", ["AutomatedTesting"]) +@pytest.mark.parametrize("level", ["Simple"]) +@pytest.mark.SUITE_sandbox +class TestRemoteConsoleLoadLevelWorks(object): + @pytest.fixture + def remote_console_instance(self, request): + console = RemoteConsole() + + def teardown(): + if console.connected: + console.stop() + + request.addfinalizer(teardown) + + return console + + def test_RemoteConsole_LoadLevel_Works(self, launcher, level, remote_console_instance, launcher_platform): + expected_lines = ['Level system is loading "Simple"'] + + self.launch_and_validate_results_launcher(launcher, level, remote_console_instance, expected_lines) + + def launch_and_validate_results_launcher( + self, + launcher, + level, + remote_console_instance, + expected_lines, + null_renderer=False, + port_listener_timeout=120, + log_monitor_timeout=300, + remote_console_port=4600, + ): + """ + Runs the launcher with the specified level, and monitors Game.log for expected lines. + :param launcher: Configured launcher object to run test against. + :param level: The level to load in the launcher. + :param remote_console_instance: Configured Remote Console object. + :param expected_lines: Expected lines to search log for. + :oaram null_renderer: Specifies the test does not require the renderer. Defaults to True. + :param port_listener_timeout: Timeout for verifying successful connection to Remote Console. + :param log_monitor_timeout: Timeout for monitoring for lines in Game.log + :param remote_console_port: The port used to communicate with the Remote Console. + """ + + def _check_for_listening_port(port): + """ + Checks to see if the connection to the designated port was established. + :param port: Port to listen to. + :return: True if port is listening. + """ + port_listening = False + for conn in psutil.net_connections(): + if "port={}".format(port) in str(conn): + port_listening = True + return port_listening + + if null_renderer: + launcher.args.extend(["-NullRenderer"]) + + # Start the Launcher + with launcher.start(): + + # Ensure Remote Console can be reached + waiter.wait_for( + lambda: _check_for_listening_port(remote_console_port), + port_listener_timeout, + exc=AssertionError("Port {} not listening.".format(remote_console_port)), + ) + remote_console_instance.start(timeout=30) + + # Load the specified level in the launcher + send_command_and_expect_response( + remote_console_instance, f"loadlevel {level}", "LEVEL_LOAD_END", timeout=30 + ) + + # Monitor the console for expected lines + for line in expected_lines: + assert remote_console_instance.expect_log_line( + line, log_monitor_timeout + ), f"Expected line not found: {line}" diff --git a/Code/Editor/EditorDefs.h b/Code/Editor/EditorDefs.h index dc31c652f6..ac17cc926b 100644 --- a/Code/Editor/EditorDefs.h +++ b/Code/Editor/EditorDefs.h @@ -7,15 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios -// ------------------------------------------------------------------------- -// Created: 13/2/2003 by Timur. -// Description: Main header included by every file in Editor. -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_EDITORDEFS_H #define CRYINCLUDE_EDITOR_EDITORDEFS_H diff --git a/Code/Editor/EditorViewportWidget.cpp b/Code/Editor/EditorViewportWidget.cpp index 3ee9c3bfb1..abca9ce15b 100644 --- a/Code/Editor/EditorViewportWidget.cpp +++ b/Code/Editor/EditorViewportWidget.cpp @@ -462,7 +462,6 @@ void EditorViewportWidget::Update() SetViewTM(m); SetFOV(cameraState.m_fovOrZoom); m_Camera.SetZRange(cameraState.m_nearClip, cameraState.m_farClip); - m_updateCameraPositionNextTick = false; } else if (!ed_useNewCameraSystem) { @@ -483,6 +482,8 @@ void EditorViewportWidget::Update() ); m_renderViewport->GetViewportContext()->SetCameraProjectionMatrix(clipMatrix); } + // Reset the camera update flag now that we're finished updating our viewport context + m_updateCameraPositionNextTick = false; // Don't wait for changes to update the focused viewport. if (CheckRespondToInput()) diff --git a/Code/Editor/NewLevelDialog.h b/Code/Editor/NewLevelDialog.h index 4a6fd64a00..d4f033d490 100644 --- a/Code/Editor/NewLevelDialog.h +++ b/Code/Editor/NewLevelDialog.h @@ -7,20 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2002. -// ------------------------------------------------------------------------- -// File name: newleveldialog.h -// Version: v1.00 -// Created: 24/7/2002 by Timur. -// Compilers: Visual Studio.NET -// Description: -// ------------------------------------------------------------------------- -// History: -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_NEWLEVELDIALOG_H #define CRYINCLUDE_EDITOR_NEWLEVELDIALOG_H diff --git a/Code/Editor/NewTerrainDialog.h b/Code/Editor/NewTerrainDialog.h index 7b6265e322..ef4723b0c0 100644 --- a/Code/Editor/NewTerrainDialog.h +++ b/Code/Editor/NewTerrainDialog.h @@ -5,20 +5,6 @@ * */ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2002. -// ------------------------------------------------------------------------- -// File name: newterraindialog.h -// Version: v1.00 -// Created: 24/7/2002 by Timur. -// Compilers: Visual Studio.NET -// Description: -// ------------------------------------------------------------------------- -// History: -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_NEWTERRAINDIALOG_H #define CRYINCLUDE_EDITOR_NEWTERRAINDIALOG_H diff --git a/Code/Editor/Plugin.h b/Code/Editor/Plugin.h index 1da0be8f63..f7e46d979f 100644 --- a/Code/Editor/Plugin.h +++ b/Code/Editor/Plugin.h @@ -7,15 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2001-2012 -// ------------------------------------------------------------------------- -// Created: 15/1/2003 by Timur. -// Description: Plugin architecture supporting classes -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_PLUGIN_H #define CRYINCLUDE_EDITOR_PLUGIN_H #include "Include/IEditorClassFactory.h" diff --git a/Code/Editor/PluginManager.h b/Code/Editor/PluginManager.h index 2cd0841f08..5f0600ec88 100644 --- a/Code/Editor/PluginManager.h +++ b/Code/Editor/PluginManager.h @@ -7,14 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2001-2012. -// ------------------------------------------------------------------------- -// Description: The plugin manager, central point for loading/unloading plugins -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_PLUGINMANAGER_H #define CRYINCLUDE_EDITOR_PLUGINMANAGER_H diff --git a/Code/Editor/Plugins/EditorCommon/EditorCommon.rc b/Code/Editor/Plugins/EditorCommon/EditorCommon.rc index ebb41f1192..77deebb598 100644 Binary files a/Code/Editor/Plugins/EditorCommon/EditorCommon.rc and b/Code/Editor/Plugins/EditorCommon/EditorCommon.rc differ diff --git a/Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin.h b/Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin.h index f16853cbe8..07119c6d6f 100644 --- a/Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin.h +++ b/Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin.h @@ -7,10 +7,7 @@ #pragma once -////////////////////////////////// CRYTEK //////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2011. +//////////////////////////////////////////////////////////////////////////// // ------------------------------------------------------------------------- // File Name : FFMPEGPlugin.h // Author : Jaewon Jung diff --git a/Code/Editor/Settings.h b/Code/Editor/Settings.h index 7618a11485..a4cfdf1163 100644 --- a/Code/Editor/Settings.h +++ b/Code/Editor/Settings.h @@ -7,20 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2002. -// ------------------------------------------------------------------------- -// File name: settings.h -// Version: v1.00 -// Created: 14/1/2003 by Timur. -// Compilers: Visual Studio.NET -// Description: General editor settings. -// ------------------------------------------------------------------------- -// History: -// -//////////////////////////////////////////////////////////////////////////// #ifndef CRYINCLUDE_EDITOR_SETTINGS_H #define CRYINCLUDE_EDITOR_SETTINGS_H #include "SettingsManager.h" diff --git a/Code/Editor/UsedResources.h b/Code/Editor/UsedResources.h index 13362f5472..93b42429c2 100644 --- a/Code/Editor/UsedResources.h +++ b/Code/Editor/UsedResources.h @@ -7,17 +7,6 @@ #pragma once -//////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2001-2012 -// ------------------------------------------------------------------------- -// File name: UsedResources.h -// Created: 28/11/2003 by Timur. -// Description: Class to gather used resources -// -//////////////////////////////////////////////////////////////////////////// - //! Class passed to resource gathering functions #ifndef CRYINCLUDE_EDITOR_USEDRESOURCES_H #define CRYINCLUDE_EDITOR_USEDRESOURCES_H diff --git a/Code/Editor/WaitProgress.h b/Code/Editor/WaitProgress.h index da04a053ef..e4e3a30873 100644 --- a/Code/Editor/WaitProgress.h +++ b/Code/Editor/WaitProgress.h @@ -8,12 +8,6 @@ #pragma once //////////////////////////////////////////////////////////////////////////// -// -// Crytek Engine Source File. -// Copyright (C), Crytek Studios, 2002-2012. -// ------------------------------------------------------------------------- -// File name: waitprogress.h -// Created: 10/5/2002 by Timur. // Description: CWaitProgress class adds information about lengthy process // Usage: // diff --git a/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.cpp b/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.cpp index 4be0219d26..bf5dbf8c66 100644 --- a/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.cpp +++ b/Code/Framework/AzNetworking/AzNetworking/UdpTransport/UdpNetworkInterface.cpp @@ -187,6 +187,13 @@ namespace AzNetworking connection->Disconnect(disconnectReason, TerminationEndpoint::Local); continue; } + + const ConnectionState connectionState = connection->GetConnectionState(); + if (connectionState == ConnectionState::Disconnecting || connectionState == ConnectionState::Disconnected) + { + // Skip packets from disconnected connections + continue; + } int32_t decodedPacketSize = 0; m_decryptBuffer.Resize(m_decryptBuffer.GetCapacity()); diff --git a/Code/Framework/AzQtComponents/AzQtComponents/Images/Menu/helpers.svg b/Code/Framework/AzQtComponents/AzQtComponents/Images/Menu/helpers.svg index e782a7066a..41f9638134 100644 --- a/Code/Framework/AzQtComponents/AzQtComponents/Images/Menu/helpers.svg +++ b/Code/Framework/AzQtComponents/AzQtComponents/Images/Menu/helpers.svg @@ -1,24 +1,12 @@ - - - Helpers Icon - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + + + + + + diff --git a/Code/Legacy/CrySystem/ConsoleHelpGen.cpp b/Code/Legacy/CrySystem/ConsoleHelpGen.cpp index 2845ca14ae..fb95164334 100644 --- a/Code/Legacy/CrySystem/ConsoleHelpGen.cpp +++ b/Code/Legacy/CrySystem/ConsoleHelpGen.cpp @@ -90,10 +90,10 @@ void CConsoleHelpGen::StartPage(FILE* f, const char* szPageName, const char* szP { fprintf(f, "%s", szPageName); fprintf(f, "", szPageDescription); - fprintf(f, ""); - fprintf(f, ""); - fprintf(f, ""); - fprintf(f, ""); + fprintf(f, ""); + fprintf(f, ""); + fprintf(f, ""); + fprintf(f, ""); fprintf(f, ""); fprintf(f, ""); fprintf(f, ""); diff --git a/Code/Tools/ProjectManager/Resources/ProjectManager.qss b/Code/Tools/ProjectManager/Resources/ProjectManager.qss index efc01802b7..d6a2476e83 100644 --- a/Code/Tools/ProjectManager/Resources/ProjectManager.qss +++ b/Code/Tools/ProjectManager/Resources/ProjectManager.qss @@ -463,6 +463,21 @@ QProgressBar::chunk { font-weight: 600; } +#GemCatalogHeaderLabel { + font-size: 12px; + color: #FFFFFF; +} + +#GemCatalogHeaderShowCountLabel { + font-size: 12px; + font: italic; + color: #FFFFFF; +} + +#GemCatalogListView { + background-color: #333333; +} + /************** Gem Catalog (Inspector) **************/ #GemCatalogInspector { diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemListHeaderWidget.cpp b/Code/Tools/ProjectManager/Source/GemCatalog/GemListHeaderWidget.cpp index cabcc34aaa..c61cc22c82 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemListHeaderWidget.cpp +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemListHeaderWidget.cpp @@ -31,7 +31,7 @@ namespace O3DE::ProjectManager topLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding)); QLabel* showCountLabel = new QLabel(); - showCountLabel->setStyleSheet("font-size: 12px; font: italic; color: #FFFFFF;"); + showCountLabel->setObjectName("GemCatalogHeaderShowCountLabel"); topLayout->addWidget(showCountLabel); connect(proxyModel, &GemSortFilterProxyModel::OnInvalidated, this, [=] { @@ -57,27 +57,27 @@ namespace O3DE::ProjectManager QHBoxLayout* columnHeaderLayout = new QHBoxLayout(); columnHeaderLayout->setAlignment(Qt::AlignLeft); - const int gemNameStartX = GemItemDelegate::s_itemMargins.left() + GemItemDelegate::s_contentMargins.left() - 3; + const int gemNameStartX = GemItemDelegate::s_itemMargins.left() + GemItemDelegate::s_contentMargins.left() - 1; columnHeaderLayout->addSpacing(gemNameStartX); QLabel* gemNameLabel = new QLabel(tr("Gem Name")); - gemNameLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;"); + gemNameLabel->setObjectName("GemCatalogHeaderLabel"); columnHeaderLayout->addWidget(gemNameLabel); - columnHeaderLayout->addSpacing(77); + columnHeaderLayout->addSpacing(89); QLabel* gemSummaryLabel = new QLabel(tr("Gem Summary")); - gemSummaryLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;"); + gemSummaryLabel->setObjectName("GemCatalogHeaderLabel"); columnHeaderLayout->addWidget(gemSummaryLabel); QSpacerItem* horizontalSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); columnHeaderLayout->addSpacerItem(horizontalSpacer); QLabel* gemSelectedLabel = new QLabel(tr("Selected")); - gemSelectedLabel->setStyleSheet("font-size: 12px; color: #FFFFFF;"); + gemSelectedLabel->setObjectName("GemCatalogHeaderLabel"); columnHeaderLayout->addWidget(gemSelectedLabel); - columnHeaderLayout->addSpacing(60); + columnHeaderLayout->addSpacing(65); vLayout->addLayout(columnHeaderLayout); } diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemListView.cpp b/Code/Tools/ProjectManager/Source/GemCatalog/GemListView.cpp index 3bb429b697..e54891d736 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemListView.cpp +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemListView.cpp @@ -14,10 +14,9 @@ namespace O3DE::ProjectManager GemListView::GemListView(QAbstractItemModel* model, QItemSelectionModel* selectionModel, QWidget* parent) : QListView(parent) { + setObjectName("GemCatalogListView"); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); - setStyleSheet("background-color: #333333;"); - setModel(model); setSelectionModel(selectionModel); setItemDelegate(new GemItemDelegate(model, this)); diff --git a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp index d67c53f389..69c4472f59 100644 --- a/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp +++ b/Gems/AWSCore/Code/Source/Editor/Attribution/AWSCoreAttributionConsentDialog.cpp @@ -14,12 +14,12 @@ namespace AWSCore { constexpr const char* AWSAttributionConsentDialogTitle = "AWS Core Gem Usage Agreement"; constexpr const char* AWSAttributionConsentDialogMessage = "The AWS Core Gem has detected credentials for an Amazon Web Services account for this
\ - instance of O3DE. Click here to learn more about AWS integration, including how to
\ + instance of O3DE. Click here to learn more about AWS integration, including how to
\ manage your AWS credentials.

\ Please note: when credentials are detected, AWS Core Gem sends telemetry data to AWS,
\ which helps us improve AWS services for O3DE. You can change this setting below, and at
\ any time in Settings: Global Preferences. Data sent is subject to the AWS Privacy Policy.
\ - Click here to learn more about what data is sent to AWS."; + Click here to learn more about what data is sent to AWS."; constexpr const char* AWSAttributionConsentDialogCheckboxText = "Please share the information about my use of AWS Core Gem with AWS."; diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.cpp b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.cpp index e8697c7c27..271013adef 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.cpp +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.cpp @@ -6,8 +6,7 @@ //============================================================================= // (C) 2005 ATI Research, Inc., All rights reserved. //============================================================================= -// modifications by Crytek GmbH -// modifications by Amazon +// Modified from original #include diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.h b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.h index 056cb25425..53f32f8cd5 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.h +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CBBoxInt32.h @@ -5,8 +5,7 @@ //============================================================================= // (C) 2005 ATI Research, Inc., All rights reserved. //============================================================================= -// modifications by Crytek GmbH -// modifications by Amazon +// Modified from original #pragma once diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.cpp b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.cpp index df31067af0..8264003b0b 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.cpp +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.cpp @@ -1,8 +1,7 @@ //============================================================================= // (C) 2005 ATI Research, Inc., All rights reserved. //============================================================================= -// modifications by Crytek GmbH -// modifications by Amazon +// Modified from original #include #include "CCubeMapProcessor.h" diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.h b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.h index be54b98e6a..4a29e8621a 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.h +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CCubeMapProcessor.h @@ -6,8 +6,7 @@ //-------------------------------------------------------------------------------------- // (C) 2005 ATI Research, Inc., All rights reserved. //-------------------------------------------------------------------------------------- -// modifications by Crytek GmbH -// modifications by Amazon +// Modified from original #pragma once diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CImageSurface.cpp b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CImageSurface.cpp index 3b055699e2..592ada0910 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CImageSurface.cpp +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/CImageSurface.cpp @@ -12,8 +12,7 @@ //-------------------------------------------------------------------------------------- // (C) 2005 ATI Research, Inc., All rights reserved. //-------------------------------------------------------------------------------------- -// modifications by Crytek GmbH -// modifications by Amazon +// Modified from original #include diff --git a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/VectorMacros.h b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/VectorMacros.h index 7546457c79..37d15f1c1b 100644 --- a/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/VectorMacros.h +++ b/Gems/Atom/Asset/ImageProcessingAtom/External/CubeMapGen/VectorMacros.h @@ -15,7 +15,7 @@ //-------------------------------------------------------------------------------------- // (C) 2001-2005 ATI Research, Inc. All rights reserved. //-------------------------------------------------------------------------------------- -// modifications by Crytek GmbH +// Modified from original //disable warning about doubles being converted down to float #pragma warning (disable : 4244 ) diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatHorizontal.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatHorizontal.azsl index 8dc42cbc33..160a3d362e 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatHorizontal.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatHorizontal.azsl @@ -11,7 +11,7 @@ #include #include -[numthreads(8,8,1)] +[numthreads(16,16,1)] void MainCS(uint3 dispatchId: SV_DispatchThreadID) { const float3 inputSize = GetImageSize(FilterPassSrg::m_inputImage); diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatVertical.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatVertical.azsl index 2d993c7af9..c7d2ed433d 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatVertical.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/Math/GaussianFilterFloatVertical.azsl @@ -11,7 +11,7 @@ #include #include -[numthreads(8,8,1)] +[numthreads(16,16,1)] void MainCS(uint3 dispatchId: SV_DispatchThreadID) { const float3 inputSize = GetImageSize(FilterPassSrg::m_inputImage); diff --git a/Gems/Atom/Feature/Common/Assets/Shaders/Shadow/DepthExponentiation.azsl b/Gems/Atom/Feature/Common/Assets/Shaders/Shadow/DepthExponentiation.azsl index 7b4613d8fa..ba2a4aaf92 100644 --- a/Gems/Atom/Feature/Common/Assets/Shaders/Shadow/DepthExponentiation.azsl +++ b/Gems/Atom/Feature/Common/Assets/Shaders/Shadow/DepthExponentiation.azsl @@ -28,7 +28,7 @@ ShaderResourceGroup PassSrg : SRG_PerPass_WithFallback StructuredBuffer m_filterParameters; } -[numthreads(8,8,1)] +[numthreads(16,16,1)] void MainCS(uint3 dispatchId: SV_DispatchThreadID) { const float3 inputSize = GetImageSize(PassSrg::m_inputShadowmap); diff --git a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/AuxGeomDrawQueue.cpp b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/AuxGeomDrawQueue.cpp index 2be6b562fc..0a1d6f5235 100644 --- a/Gems/Atom/Feature/Common/Code/Source/AuxGeom/AuxGeomDrawQueue.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/AuxGeom/AuxGeomDrawQueue.cpp @@ -649,7 +649,6 @@ namespace AZ int32_t viewProjOverrideIndex) { AZ_PROFILE_FUNCTION(AZ::Debug::ProfileCategory::AzRender); - AZ_ATOM_PROFILE_FUNCTION("AuxGeom", "AuxGeomDrawQueue: DrawPrimitiveCommon"); // grab a mutex lock for the rest of this function so that a commit cannot happen during it and // other threads can't add geometry during it diff --git a/Gems/Atom/Feature/Common/Code/Source/ProfilingCaptureSystemComponent.cpp b/Gems/Atom/Feature/Common/Code/Source/ProfilingCaptureSystemComponent.cpp index 113e28db3b..874d385df6 100644 --- a/Gems/Atom/Feature/Common/Code/Source/ProfilingCaptureSystemComponent.cpp +++ b/Gems/Atom/Feature/Common/Code/Source/ProfilingCaptureSystemComponent.cpp @@ -134,7 +134,7 @@ namespace AZ static void Reflect(AZ::ReflectContext* context); CpuProfilingStatisticsSerializer() = default; - CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap); + CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap); AZStd::vector m_cpuProfilingStatisticsSerializerEntries; }; @@ -251,14 +251,17 @@ namespace AZ // --- CpuProfilingStatisticsSerializer --- - CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(RHI::CpuProfiler::TimeRegionMap& timeRegionMap) + CpuProfilingStatisticsSerializer::CpuProfilingStatisticsSerializer(const RHI::CpuProfiler::TimeRegionMap& timeRegionMap) { // Create serializable entries - for (auto& treadEntry : timeRegionMap) + for (auto& threadEntry : timeRegionMap) { - for (auto& cachedRegionEntry : treadEntry.second) + for (auto& cachedRegionEntry : threadEntry.second) { - m_cpuProfilingStatisticsSerializerEntries.emplace_back(cachedRegionEntry.second); + m_cpuProfilingStatisticsSerializerEntries.insert( + m_cpuProfilingStatisticsSerializerEntries.end(), + cachedRegionEntry.second.begin(), + cachedRegionEntry.second.end()); } } } @@ -465,8 +468,7 @@ namespace AZ serializationSettings.m_keepDefaults = true; // Get time Cpu profiled time regions - RHI::CpuProfiler::TimeRegionMap timeRegionMap; - RHI::CpuProfiler::Get()->FlushTimeRegionMap(timeRegionMap); + const RHI::CpuProfiler::TimeRegionMap& timeRegionMap = RHI::CpuProfiler::Get()->GetTimeRegionMap(); CpuProfilingStatisticsSerializer serializer(timeRegionMap); const auto saveResult = JsonSerializationUtils::SaveObjectToFile(&serializer, diff --git a/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfiler.h b/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfiler.h index e103116a8a..a9c8107e57 100644 --- a/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfiler.h +++ b/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfiler.h @@ -60,7 +60,7 @@ namespace AZ class CpuProfiler { public: - using ThreadTimeRegionMap = AZStd::unordered_map; + using ThreadTimeRegionMap = AZStd::unordered_map>; using TimeRegionMap = AZStd::unordered_map; AZ_RTTI(CpuProfiler, "{127C1D0B-BE05-4E18-A8F6-24F3EED2ECA6}"); @@ -78,8 +78,8 @@ namespace AZ //! Ends a time region virtual void EndTimeRegion() = 0; - //! Flush cached regions from all threads to the passed parameter - virtual void FlushTimeRegionMap(TimeRegionMap& timeRegionMap) = 0; + //! Get the last frame's TimeRegionMap + virtual const TimeRegionMap& GetTimeRegionMap() const = 0; //! Enable/Disable the CpuProfiler virtual void SetProfilerEnabled(bool enabled) = 0; diff --git a/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfilerImpl.h b/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfilerImpl.h index f6e7467949..56de2a0395 100644 --- a/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfilerImpl.h +++ b/Gems/Atom/RHI/Code/Include/Atom/RHI/CpuProfilerImpl.h @@ -10,10 +10,13 @@ #include #include +#include #include #include #include +#include + namespace AZ { namespace RHI @@ -70,6 +73,9 @@ namespace AZ // When the thread is terminated, it will flag itself for deletion AZStd::atomic_bool m_deleteFlag = false; + + // Keep track of the regions that have hit the size limit so we don't have to lock to check + AZStd::map m_hitSizeLimitMap; }; //! CpuProfiler will keep track of the registered threads, and @@ -77,6 +83,7 @@ namespace AZ //! cached regions, which are stored on a per thread frequency. class CpuProfilerImpl final : public CpuProfiler + , public FrameEventBus::Handler { friend class CpuTimingLocalStorage; @@ -92,10 +99,12 @@ namespace AZ //! Unregisters the CpuProfilerImpl instance from the interface void Shutdown(); + void OnFrameBegin(); + //! CpuProfiler overrides... void BeginTimeRegion(TimeRegion& timeRegion) final; void EndTimeRegion() final; - void FlushTimeRegionMap(TimeRegionMap& timeRegionMap) final; + const TimeRegionMap& GetTimeRegionMap() const final; void SetProfilerEnabled(bool enabled) final; bool IsProfilerEnabled() const final; @@ -104,8 +113,7 @@ namespace AZ void RegisterThreadStorage(); // ThreadId -> ThreadTimeRegionMap - // When the user requests the cached time regions from the system, it will use this map as an intermediate - // storage point to flush each thread's cached regions into this map. + // On the start of each frame, this map will be updated with the last frame's profiling data. TimeRegionMap m_timeRegionMap; // Set of registered threads when created diff --git a/Gems/Atom/RHI/Code/Source/RHI/CpuProfilerImpl.cpp b/Gems/Atom/RHI/Code/Source/RHI/CpuProfilerImpl.cpp index 12690b3ba9..d494d6735a 100644 --- a/Gems/Atom/RHI/Code/Source/RHI/CpuProfilerImpl.cpp +++ b/Gems/Atom/RHI/Code/Source/RHI/CpuProfilerImpl.cpp @@ -11,6 +11,7 @@ #include #include +#include namespace AZ { @@ -78,6 +79,8 @@ namespace AZ { Interface::Register(this); m_initialized = true; + Device* rhiDevice = GetRHIDevice().get(); + FrameEventBus::Handler::BusConnect(rhiDevice); } void CpuProfilerImpl::Shutdown() @@ -98,6 +101,7 @@ namespace AZ m_registeredThreads.clear(); m_timeRegionMap.clear(); m_initialized = false; + FrameEventBus::Handler::BusDisconnect(); } void CpuProfilerImpl::BeginTimeRegion(TimeRegion& timeRegion) @@ -132,26 +136,9 @@ namespace AZ } } - void CpuProfilerImpl::FlushTimeRegionMap(TimeRegionMap& timeRegionMap) + const CpuProfiler::TimeRegionMap& CpuProfilerImpl::GetTimeRegionMap() const { - AZStd::unique_lock lock(m_threadRegisterMutex); - - // Iterate through all the threads, and collect the thread's cached time regions - for (auto& threadLocal : m_registeredThreads) - { - CpuProfiler::ThreadTimeRegionMap& threadMapEntry = m_timeRegionMap[threadLocal->m_executingThreadId]; - threadLocal->TryFlushCachedMap(threadMapEntry); - } - - // Clear all TLS that flagged themselves to be deleted, meaning that the thread is already terminated - AZStd::remove_if(m_registeredThreads.begin(), m_registeredThreads.end(), [](const RHI::Ptr& thread) - { - return thread->m_deleteFlag.load(); - }); - - // Flush all the cached time regions to the provided map - timeRegionMap = AZStd::move(m_timeRegionMap); - m_timeRegionMap.clear(); + return m_timeRegionMap; } void CpuProfilerImpl::SetProfilerEnabled(bool enabled) @@ -186,6 +173,32 @@ namespace AZ return m_enabled; } + void CpuProfilerImpl::OnFrameBegin() + { + if (!m_enabled) + { + return; + } + AZStd::unique_lock lock(m_threadRegisterMutex); + + // Iterate through all the threads, and collect the thread's cached time regions + TimeRegionMap newMap; + for (auto& threadLocal : m_registeredThreads) + { + ThreadTimeRegionMap& threadMapEntry = newMap[threadLocal->m_executingThreadId]; + threadLocal->TryFlushCachedMap(threadMapEntry); + } + + // Clear all TLS that flagged themselves to be deleted, meaning that the thread is already terminated + AZStd::remove_if(m_registeredThreads.begin(), m_registeredThreads.end(), [](const RHI::Ptr& thread) + { + return thread->m_deleteFlag.load(); + }); + + // Update our saved time regions to the last frame's collected data + m_timeRegionMap = AZStd::move(newMap); + } + void CpuProfilerImpl::RegisterThreadStorage() { @@ -261,6 +274,10 @@ namespace AZ // Gets called when region ends and all data is set void CpuTimingLocalStorage::AddCachedRegion(CachedTimeRegion&& timeRegionCached) { + if (m_hitSizeLimitMap[timeRegionCached.m_groupRegionName->m_regionName]) + { + return; + } // Add an entry to the cached region m_cachedTimeRegions.push_back(timeRegionCached); @@ -276,7 +293,13 @@ namespace AZ // Add the cached regions to the map for (auto& cachedTimeRegion : m_cachedTimeRegions) { - m_cachedTimeRegionMap[cachedTimeRegion.m_groupRegionName->m_regionName] = cachedTimeRegion; + const AZStd::string regionName = cachedTimeRegion.m_groupRegionName->m_regionName; + AZStd::vector& regionVec = m_cachedTimeRegionMap[regionName]; + regionVec.push_back(cachedTimeRegion); + if (regionVec.size() >= TimeRegionStackSize) + { + m_hitSizeLimitMap[cachedTimeRegion.m_groupRegionName->m_regionName] = true; + } } // Clear the cached regions @@ -295,6 +318,7 @@ namespace AZ { cachedTimeRegionMap = AZStd::move(m_cachedTimeRegionMap); m_cachedTimeRegionMap.clear(); + m_hitSizeLimitMap.clear(); } m_cachedTimeRegionMutex.unlock(); } diff --git a/Gems/Atom/Utils/Code/Include/Atom/Utils/ImGuiCpuProfiler.inl b/Gems/Atom/Utils/Code/Include/Atom/Utils/ImGuiCpuProfiler.inl index eb62a6f092..9b16ae81cf 100644 --- a/Gems/Atom/Utils/Code/Include/Atom/Utils/ImGuiCpuProfiler.inl +++ b/Gems/Atom/Utils/Code/Include/Atom/Utils/ImGuiCpuProfiler.inl @@ -9,6 +9,7 @@ #include #include #include +#include namespace AZ { @@ -30,6 +31,13 @@ namespace AZ const AZStd::string threadIdText = AZStd::string::format("Thread: %zu", static_cast(threadId)); ImGui::Text(threadIdText.c_str()); } + inline float TicksToMs(AZStd::sys_time_t ticks) + { + // Note: converting to microseconds integer before converting to milliseconds float + const AZStd::sys_time_t ticksPerSecond = AZStd::GetTimeTicksPerSecond(); + AZ_Assert(ticksPerSecond >= 1000, "Error in converting ticks to ms, expected ticksPerSecond >= 1000"); + return static_cast((ticks * 1000) / (ticksPerSecond / 1000)) / 1000.0f; + } } inline void ImGuiCpuProfiler::Draw(bool& keepDrawing, const AZ::RHI::CpuTimingStatistics& currentCpuTimingStatistics) @@ -73,9 +81,7 @@ namespace AZ const auto ShowTimeInMs = [ticksPerSecond](AZStd::sys_time_t duration) { - // Note: converting to microseconds integer before converting to milliseconds float - const float timeInMs = static_cast((duration * 1000) / (ticksPerSecond / 1000)) / 1000.0f; - ImGui::Text("%.2f ms", timeInMs); + ImGui::Text("%.2f ms", CpuProfilerImGuiHelper::TicksToMs(duration)); }; const auto ShowRow = [ticksPerSecond, &ShowTimeInMs](const char* regionLabel, AZStd::sys_time_t duration) @@ -117,19 +123,36 @@ namespace AZ ImGui::NextColumn(); // Draw the thread count label - const AZStd::string threadLabel = AZStd::string::format("Threads: %u", static_cast(regions.size())); + AZStd::sys_time_t totalTime = 0; + AZStd::set threads; + for (ThreadRegionEntry& entry : regions) // Find the thread count and total execution time for all threads + { + threads.insert(entry.m_threadId); + totalTime += entry.m_endTick - entry.m_startTick; + } + const AZStd::string threadLabel = AZStd::string::format("Threads: %u", static_cast(threads.size())); ImGui::Text(threadLabel.c_str()); DrawRegionHoverMarker(regions); ImGui::NextColumn(); - // Draw the region time label - ShowTimeInMs(duration); + // Draw the overall invocation count + const AZStd::string invocationLabel = AZStd::string::format("Total calls: %u", static_cast(regions.size())); + ImGui::Text(invocationLabel.c_str()); + DrawRegionHoverMarker(regions); + ImGui::NextColumn(); + + // Draw the time labels (max and then total) + const AZStd::string timeLabel = + AZStd::string::format("%.2f ms max, %.2f ms total", + CpuProfilerImGuiHelper::TicksToMs(duration), + CpuProfilerImGuiHelper::TicksToMs(totalTime)); + ImGui::Text(timeLabel.c_str()); ImGui::NextColumn(); }; // Set column settings. ImGui::Columns(2, "view", false); - ImGui::SetColumnWidth(0, 540.0f); + ImGui::SetColumnWidth(0, 660.0f); ImGui::SetColumnWidth(1, 100.0f); ShowRow("Frame to Frame Time", cpuTimingStatistics.m_frameToFrameTime); @@ -152,14 +175,15 @@ namespace AZ // Draw the regions if (ImGui::TreeNodeEx(timeRegionMapEntry.first.c_str(), ImGuiTreeNodeFlags_DefaultOpen)) { - ImGui::Columns(3, "view", false); + ImGui::Columns(4, "view", false); ImGui::SetColumnWidth(0, 400.0f); ImGui::SetColumnWidth(1, 100.0f); - ImGui::SetColumnWidth(2, 80.0f); + ImGui::SetColumnWidth(2, 150.0f); + ImGui::SetColumnWidth(3, 240.0f); for (auto& reigon : timeRegionMapEntry.second) { - // Calculate the thread with the longest execution time + // Calculate the region with the longest execution time AZStd::sys_time_t threadExecutionElapsed = 0; for (ThreadRegionEntry& entry : reigon.second) { @@ -209,19 +233,21 @@ namespace AZ m_groupRegionMap.clear(); // Get the latest TimeRegionMap - RHI::CpuProfiler::TimeRegionMap timeRegionMap; - RHI::CpuProfiler::Get()->FlushTimeRegionMap(timeRegionMap); + const RHI::CpuProfiler::TimeRegionMap& timeRegionMap = RHI::CpuProfiler::Get()->GetTimeRegionMap(); // Iterate through all the cached regions from all threads, and add the entries to this map - for (auto& treadEntry : timeRegionMap) + for (auto& threadEntry : timeRegionMap) { - for (auto& cachedRegionEntry : treadEntry.second) + for (auto& cachedRegionEntry : threadEntry.second) { - RegionEntryMap& groupRegionEntry = m_groupRegionMap[cachedRegionEntry.second.m_groupRegionName->m_groupName]; - AZStd::vector& regionArray = groupRegionEntry[cachedRegionEntry.second.m_groupRegionName->m_regionName]; - RHI::CachedTimeRegion& cachedRegion = cachedRegionEntry.second; + const AZStd::string& regionName = cachedRegionEntry.first; + for (auto& cachedRegion : cachedRegionEntry.second) + { + const AZStd::string& groupName = cachedRegion.m_groupRegionName->m_groupName; - regionArray.push_back({ treadEntry.first, cachedRegion.m_startTick, cachedRegion.m_endTick }); + m_groupRegionMap[groupName][regionName].push_back( + { threadEntry.first, cachedRegion.m_startTick, cachedRegion.m_endTick }); + } } } } diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentConstants.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentConstants.h index 6c5042f5d9..c539cd0607 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentConstants.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentConstants.h @@ -13,8 +13,8 @@ namespace AZ { static constexpr const char* const DiffuseProbeGridComponentTypeId = "{9B900A04-192F-4F5E-AE31-762605D8159A}"; static constexpr const char* const EditorDiffuseProbeGridComponentTypeId = "{F80086E1-ECE7-4E8C-B727-A750D10F7D83}"; - static constexpr float DefaultDiffuseProbeGridSpacing = 4.0f; - static constexpr float DefaultDiffuseProbeGridExtents = 20.0f; + static constexpr float DefaultDiffuseProbeGridSpacing = 2.0f; + static constexpr float DefaultDiffuseProbeGridExtents = 8.0f; static constexpr float DefaultDiffuseProbeGridAmbientMultiplier = 1.0f; static constexpr float DefaultDiffuseProbeGridViewBias = 0.2f; static constexpr float DefaultDiffuseProbeGridNormalBias = 0.1f; diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.cpp index 1577dffc02..389341ff01 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.cpp @@ -169,9 +169,20 @@ namespace AZ m_featureProcessor->SetMode(m_handle, m_configuration.m_runtimeMode); - // set box shape component dimensions from the configuration - // this will invoke the OnShapeChanged() handler and set the outer extents on the feature processor - m_boxShapeInterface->SetBoxDimensions(m_configuration.m_extents); + // if this is a new DiffuseProbeGrid entity and the box shape has not been changed (i.e., it's still unit sized) + // then use the default extents, otherwise use the current box shape extents + AZ::Vector3 extents(0.0f); + AZ::Vector3 boxDimensions = m_boxShapeInterface->GetBoxDimensions(); + if (m_configuration.m_entityId == EntityId::InvalidEntityId && boxDimensions == AZ::Vector3(1.0f)) + { + extents = m_configuration.m_extents; + } + else + { + extents = boxDimensions; + } + + m_boxShapeInterface->SetBoxDimensions(extents); } void DiffuseProbeGridComponentController::OnAssetReady(Data::Asset asset) diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.h index d1a41fd526..5261ce5cc5 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/DiffuseProbeGridComponentController.h @@ -47,6 +47,8 @@ namespace AZ Data::Asset m_bakedDistanceTextureAsset; Data::Asset m_bakedRelocationTextureAsset; Data::Asset m_bakedClassificationTextureAsset; + + AZ::u64 m_entityId{ EntityId::InvalidEntityId }; }; class DiffuseProbeGridComponentController final diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/EditorDiffuseProbeGridComponent.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/EditorDiffuseProbeGridComponent.cpp index 910c7735ac..5cc97bd363 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/EditorDiffuseProbeGridComponent.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/DiffuseGlobalIllumination/EditorDiffuseProbeGridComponent.cpp @@ -147,6 +147,9 @@ namespace AZ AzToolsFramework::EditorComponentSelectionRequestsBus::Handler::BusConnect(GetEntityId()); AZ::TickBus::Handler::BusConnect(); AzToolsFramework::EditorEntityInfoNotificationBus::Handler::BusConnect(); + + AZ::u64 entityId = (AZ::u64)GetEntityId(); + m_controller.m_configuration.m_entityId = entityId; } void EditorDiffuseProbeGridComponent::Deactivate() diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp index d5ea087dcc..669e576107 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.cpp @@ -172,6 +172,11 @@ namespace AZ void EditorMaterialComponentSlot::Clear() { m_materialAsset = {}; + ClearOverrides(); + } + + void EditorMaterialComponentSlot::ClearOverrides() + { m_propertyOverrides = {}; m_matModUvOverrides = {}; OnMaterialChanged(); @@ -284,7 +289,7 @@ namespace AZ menu.addSeparator(); - action = menu.addAction("Clear Material Instance Overrides", [this]() { m_propertyOverrides = {}; m_matModUvOverrides = {}; }); + action = menu.addAction("Clear Material Instance Overrides", [this]() { ClearOverrides(); }); action->setEnabled(!m_propertyOverrides.empty() || !m_matModUvOverrides.empty()); menu.exec(QCursor::pos()); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.h index 1b62e94225..95d1fb6a27 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Material/EditorMaterialComponentSlot.h @@ -35,6 +35,7 @@ namespace AZ void OpenMaterialEditor() const; void SetDefaultAsset(); void Clear(); + void ClearOverrides(); void OpenMaterialExporter(); void OpenMaterialInspector(); void OpenUvNameMapInspector(); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentConstants.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentConstants.h index bba7bdce22..0c27bd1e39 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentConstants.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentConstants.h @@ -13,5 +13,6 @@ namespace AZ { static constexpr const char* const ReflectionProbeComponentTypeId = "{E5D29F09-F974-45FE-A1D0-2126079D1021}"; static constexpr const char* const EditorReflectionProbeComponentTypeId = "{6EBF2E41-2918-48B8-ACC3-FB115ED09E64}"; + static constexpr float DefaultReflectionProbeExtents = 8.0f; } // namespace Render } // namespace AZ diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.cpp index ffa038cb5f..8e94960f46 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.cpp @@ -127,9 +127,21 @@ namespace AZ // set the visualization sphere option m_featureProcessor->ShowProbeVisualization(m_handle, m_configuration.m_showVisualization); - // update the outer extents from the box shape - // if the user already resized the box shape on this entity it will inherit those extents - UpdateOuterExtents(); + // if this is a new ReflectionProbe entity and the box shape has not been changed (i.e., it's still unit sized) + // then set the shape to the default extents + AZ::Vector3 boxDimensions = m_boxShapeInterface->GetBoxDimensions(); + if (m_configuration.m_entityId == EntityId::InvalidEntityId && boxDimensions == AZ::Vector3(1.0f)) + { + AZ::Vector3 extents(m_configuration.m_outerWidth, m_configuration.m_outerLength, m_configuration.m_outerHeight); + + // resize the box shape, this will invoke OnShapeChanged + m_boxShapeInterface->SetBoxDimensions(extents); + } + else + { + // update the outer extents from the box shape + UpdateOuterExtents(); + } // set the inner extents m_featureProcessor->SetProbeInnerExtents(m_handle, AZ::Vector3(m_configuration.m_innerWidth, m_configuration.m_innerLength, m_configuration.m_innerHeight)); diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.h b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.h index 66e5eb47b0..a9bdc1c707 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.h +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/ReflectionProbe/ReflectionProbeComponentController.h @@ -14,6 +14,7 @@ #include #include #include +#include namespace AZ { @@ -50,12 +51,12 @@ namespace AZ AZ_CLASS_ALLOCATOR(ReflectionProbeComponentConfig, SystemAllocator, 0); static void Reflect(AZ::ReflectContext* context); - float m_outerHeight = 20.0f; - float m_outerLength = 20.0f; - float m_outerWidth = 20.0f; - float m_innerHeight = 20.0f; - float m_innerLength = 20.0f; - float m_innerWidth = 20.0f; + float m_outerHeight = DefaultReflectionProbeExtents; + float m_outerLength = DefaultReflectionProbeExtents; + float m_outerWidth = DefaultReflectionProbeExtents; + float m_innerHeight = DefaultReflectionProbeExtents; + float m_innerLength = DefaultReflectionProbeExtents; + float m_innerWidth = DefaultReflectionProbeExtents; bool m_useParallaxCorrection = true; bool m_showVisualization = true; diff --git a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererSteps/CaptureStep.cpp b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererSteps/CaptureStep.cpp index 0da880d29d..a795b9a119 100644 --- a/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererSteps/CaptureStep.cpp +++ b/Gems/AtomLyIntegration/CommonFeatures/Code/Source/Thumbnails/Rendering/ThumbnailRendererSteps/CaptureStep.cpp @@ -91,6 +91,13 @@ namespace AZ RPI::AttachmentReadback::CallbackFunction readbackCallback = [&](const RPI::AttachmentReadback::ReadbackResult& result) { + if (!result.m_dataBuffer) + { + AzToolsFramework::Thumbnailer::ThumbnailerRendererNotificationBus::Event( + m_context->GetData()->m_thumbnailKeyRendered, + &AzToolsFramework::Thumbnailer::ThumbnailerRendererNotifications::ThumbnailFailedToRender); + return; + } uchar* data = result.m_dataBuffer.get()->data(); QImage image( data, result.m_imageDescriptor.m_size.m_width, result.m_imageDescriptor.m_size.m_height, QImage::Format_RGBA8888); diff --git a/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorSystemComponent.cpp b/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorSystemComponent.cpp index a2841927d6..a0a3cbd651 100644 --- a/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorSystemComponent.cpp +++ b/Gems/Multiplayer/Code/Source/Editor/MultiplayerEditorSystemComponent.cpp @@ -113,6 +113,12 @@ namespace Multiplayer { console->PerformCommand("disconnect"); } + + AZ::Interface::Get()->ClearAllEntities(); + + // Rebuild the library to clear temporary in-memory spawnable assets + AZ::Interface::Get()->BuildSpawnablesList(); + break; } } @@ -235,7 +241,5 @@ namespace Multiplayer void MultiplayerEditorSystemComponent::OnGameEntitiesReset() { - // Rebuild the library to clear temporary in-memory spawnable assets - AZ::Interface::Get()->BuildSpawnablesList(); } } diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/Chicken_Actor.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/Chicken_Actor.prefab index c48dcec36c..57953f927b 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/Chicken_Actor.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/Chicken_Actor.prefab @@ -3,92 +3,157 @@ "Id": "ContainerEntity", "Name": "Chicken_Actor", "Components": { - "Component_[10420060158469409859]": { - "$type": "EditorVisibilityComponent", - "Id": 10420060158469409859 + "Component_[10182366347512475253]": { + "$type": "EditorPrefabComponent", + "Id": 10182366347512475253 }, - "Component_[10713261435043694267]": { + "Component_[12917798267488243668]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12917798267488243668 + }, + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 10713261435043694267 + "Id": 3261249813163778338 }, - "Component_[11088054817315996737]": { - "$type": "EditorLockComponent", - "Id": 11088054817315996737 + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 }, - "Component_[14341334118593165562]": { - "$type": "EditorInspectorComponent", - "Id": 14341334118593165562 - }, - "Component_[15143425594853321191]": { + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 15143425594853321191, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[15383315993246423867]": { - "$type": "EditorPrefabComponent", - "Id": 15383315993246423867 + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 }, - "Component_[16499127605624407101]": { + "Component_[5787060997243919943]": { + "$type": "EditorInspectorComponent", + "Id": 5787060997243919943 + }, + "Component_[7804170251266531779]": { + "$type": "EditorLockComponent", + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { "$type": "EditorEntitySortComponent", - "Id": 16499127605624407101 + "Id": 7874177159288365422 }, - "Component_[16697571480493454144]": { - "$type": "SelectionComponent", - "Id": 16697571480493454144 - }, - "Component_[415761541071751882]": { - "$type": "EditorPendingCompositionComponent", - "Id": 415761541071751882 - }, - "Component_[7972775450040391034]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 7972775450040391034 - }, - "Component_[9910169802741330341]": { + "Component_[8018146290632383969]": { "$type": "EditorEntityIconComponent", - "Id": 9910169802741330341 + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[48421054243702]": { - "Id": "Entity_[48421054243702]", - "Name": "Chicken_Actor", + "Entity_[303447173544404]": { + "Id": "Entity_[303447173544404]", + "Name": "Chicken Rigidbody", "Components": { - "Component_[10024659544266822060]": { + "Component_[11254527722826929517]": { + "$type": "EditorLockComponent", + "Id": 11254527722826929517 + }, + "Component_[11752612383131299817]": { "$type": "EditorInspectorComponent", - "Id": 10024659544266822060, + "Id": 11752612383131299817, "ComponentOrderEntryArray": [ { - "ComponentId": 3250661421529612274 - }, - { - "ComponentId": 4381463095952282089, - "SortIndex": 1 - }, - { - "ComponentId": 13550968986158933154, - "SortIndex": 2 - }, - { - "ComponentId": 11536283465461048726, - "SortIndex": 3 - }, - { - "ComponentId": 7689190671460963527, - "SortIndex": 4 + "ComponentId": 12470135924384913029 } ] }, - "Component_[11465635386953249015]": { - "$type": "EditorLockComponent", - "Id": 11465635386953249015 + "Component_[12004522441155896281]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12004522441155896281 }, - "Component_[11536283465461048726]": { + "Component_[12327847693349375221]": { + "$type": "EditorVisibilityComponent", + "Id": 12327847693349375221 + }, + "Component_[12470135924384913029]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12470135924384913029, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" + }, + "Component_[14919455666821657531]": { + "$type": "EditorEntitySortComponent", + "Id": 14919455666821657531, + "ChildEntityOrderEntryArray": [ + { + "EntityId": "Entity_[303451468511700]" + } + ] + }, + "Component_[16643225638363527013]": { + "$type": "EditorOnlyEntityComponent", + "Id": 16643225638363527013 + }, + "Component_[17083722249682325420]": { + "$type": "EditorEntityIconComponent", + "Id": 17083722249682325420 + }, + "Component_[4274252334406790321]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 4274252334406790321 + }, + "Component_[786957291078135994]": { + "$type": "SelectionComponent", + "Id": 786957291078135994 + } + }, + "IsDependencyReady": true + }, + "Entity_[303451468511700]": { + "Id": "Entity_[303451468511700]", + "Name": "Chicken_Actor", + "Components": { + "Component_[10153184769011204037]": { + "$type": "SelectionComponent", + "Id": 10153184769011204037 + }, + "Component_[12307288056972997582]": { + "$type": "EditorLockComponent", + "Id": 12307288056972997582 + }, + "Component_[16388291370935886976]": { + "$type": "EditorEntityIconComponent", + "Id": 16388291370935886976 + }, + "Component_[17273633015317842366]": { + "$type": "EditorPendingCompositionComponent", + "Id": 17273633015317842366 + }, + "Component_[18385928157765337756]": { + "$type": "EditorActorComponent", + "Id": 18385928157765337756, + "ActorAsset": { + "assetId": { + "guid": "{3E4C6A29-92A4-523E-8739-F3E64957569E}", + "subId": 166954688 + }, + "assetHint": "objects/cloth/chicken/actor/chicken.actor" + }, + "MaterialPerLOD": [ + { + "AssetPath": "objects/cloth/chicken/actor/chicken.mtl" + } + ], + "MaterialPerActor": { + "AssetPath": "objects/cloth/chicken/actor/chicken.mtl" + }, + "AttachmentTarget": "" + }, + "Component_[2933618168100824891]": { "$type": "EditorSimpleMotionComponent", - "Id": 11536283465461048726, + "Id": 2933618168100824891, "Configuration": { "MotionAsset": { "assetId": { @@ -97,12 +162,38 @@ }, "assetHint": "objects/cloth/chicken/motions/chickenidle.motion" }, - "Loop": true + "Loop": true, + "PlaySpeed": 1.2000000476837159 } }, - "Component_[13550968986158933154]": { + "Component_[3482722103355682975]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3482722103355682975 + }, + "Component_[4826327274018205895]": { + "$type": "EditorOnlyEntityComponent", + "Id": 4826327274018205895 + }, + "Component_[5939417605550024797]": { + "$type": "EditorVisibilityComponent", + "Id": 5939417605550024797 + }, + "Component_[7236637452394054627]": { + "$type": "EditorClothComponent", + "Id": 7236637452394054627, + "Configuration": { + "Mesh Node": "chicken_mohawk", + "Mass": 4.0, + "Remove Static Triangles": false + } + }, + "Component_[868427789695884987]": { + "$type": "EditorEntitySortComponent", + "Id": 868427789695884987 + }, + "Component_[8777596718122199558]": { "$type": "EditorMaterialComponent", - "Id": 13550968986158933154, + "Id": 8777596718122199558, "Controller": { "Configuration": { "materials": [ @@ -233,77 +324,43 @@ ] ] }, - "Component_[14277098884859902099]": { - "$type": "EditorPendingCompositionComponent", - "Id": 14277098884859902099 - }, - "Component_[2153976993809262425]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 2153976993809262425 - }, - "Component_[3250661421529612274]": { + "Component_[9845606399230319505]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 3250661421529612274, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - -8.559586524963379, - -1.2393379211425782, - 0.043556928634643558 - ], - "Rotation": [ + "Id": 9845606399230319505, + "Parent Entity": "Entity_[303447173544404]", + "Transform Data": { + "Rotate": [ 0.0, 0.0, - 1.0, - 0.0 + -0.00006830000347690657 ] }, - "Cached World Transform Parent": "ContainerEntity" + "Cached World Transform Parent": "" }, - "Component_[363579226643870873]": { - "$type": "EditorEntityIconComponent", - "Id": 363579226643870873 - }, - "Component_[4381463095952282089]": { - "$type": "EditorActorComponent", - "Id": 4381463095952282089, - "ActorAsset": { - "assetId": { - "guid": "{3E4C6A29-92A4-523E-8739-F3E64957569E}", - "subId": 166954688 + "Component_[9979479216337101498]": { + "$type": "EditorInspectorComponent", + "Id": 9979479216337101498, + "ComponentOrderEntryArray": [ + { + "ComponentId": 9845606399230319505 }, - "loadBehavior": "QueueLoad", - "assetHint": "objects/cloth/chicken/actor/chicken.actor" - }, - "MaterialPerLOD": [ - {} - ], - "AttachmentTarget": "" - }, - "Component_[4892122740022910835]": { - "$type": "SelectionComponent", - "Id": 4892122740022910835 - }, - "Component_[5646397145899865599]": { - "$type": "EditorVisibilityComponent", - "Id": 5646397145899865599 - }, - "Component_[6526021153484129377]": { - "$type": "EditorOnlyEntityComponent", - "Id": 6526021153484129377 - }, - "Component_[7689190671460963527]": { - "$type": "EditorClothComponent", - "Id": 7689190671460963527, - "Configuration": { - "Mesh Node": "chicken_mohawk", - "Mass": 4.0, - "Remove Static Triangles": false - } - }, - "Component_[7705494469103394865]": { - "$type": "EditorEntitySortComponent", - "Id": 7705494469103394865 + { + "ComponentId": 18385928157765337756, + "SortIndex": 1 + }, + { + "ComponentId": 2933618168100824891, + "SortIndex": 2 + }, + { + "ComponentId": 8777596718122199558, + "SortIndex": 3 + }, + { + "ComponentId": 7236637452394054627, + "SortIndex": 4 + } + ] } }, "IsDependencyReady": true diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds.prefab index de6dba6399..270f52b29b 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds.prefab @@ -3,101 +3,166 @@ "Id": "ContainerEntity", "Name": "cloth_blinds", "Components": { - "Component_[11710159740232621436]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 11710159740232621436 - }, - "Component_[12700834211830506265]": { - "$type": "EditorInspectorComponent", - "Id": 12700834211830506265 - }, - "Component_[1332207344633534847]": { + "Component_[10182366347512475253]": { "$type": "EditorPrefabComponent", - "Id": 1332207344633534847 + "Id": 10182366347512475253 }, - "Component_[15674607824372989481]": { - "$type": "SelectionComponent", - "Id": 15674607824372989481 - }, - "Component_[17830258131678226250]": { + "Component_[12917798267488243668]": { "$type": "EditorPendingCompositionComponent", - "Id": 17830258131678226250 + "Id": 12917798267488243668 }, - "Component_[2739137831523757464]": { + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 2739137831523757464 + "Id": 3261249813163778338 }, - "Component_[6200331447094468978]": { - "$type": "EditorEntityIconComponent", - "Id": 6200331447094468978 + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 }, - "Component_[6469357969320867250]": { - "$type": "EditorLockComponent", - "Id": 6469357969320867250 - }, - "Component_[7557343481632459660]": { - "$type": "EditorVisibilityComponent", - "Id": 7557343481632459660 - }, - "Component_[8407841941984260302]": { + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 8407841941984260302, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[8679209570517497730]": { + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 + }, + "Component_[5787060997243919943]": { + "$type": "EditorInspectorComponent", + "Id": 5787060997243919943 + }, + "Component_[7804170251266531779]": { + "$type": "EditorLockComponent", + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { "$type": "EditorEntitySortComponent", - "Id": 8679209570517497730 + "Id": 7874177159288365422 + }, + "Component_[8018146290632383969]": { + "$type": "EditorEntityIconComponent", + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[2310285353846]": { - "Id": "Entity_[2310285353846]", + "Entity_[303275374852564]": { + "Id": "Entity_[303275374852564]", "Name": "cloth_blinds", "Components": { - "Component_[11484820910614012211]": { + "Component_[10147744244398276652]": { "$type": "EditorOnlyEntityComponent", - "Id": 11484820910614012211 + "Id": 10147744244398276652 }, - "Component_[12758934717931799496]": { - "$type": "EditorEntitySortComponent", - "Id": 12758934717931799496 - }, - "Component_[14636776520633084007]": { + "Component_[11309989511197311871]": { "$type": "EditorClothComponent", - "Id": 14636776520633084007, + "Id": 11309989511197311871, "Configuration": { "Mesh Node": "pPlane1", - "Update Normals of Static Particles": true, - "Wind Velocity": [ + "Damping": [ + 0.0, 0.0, - 10.0, 0.0 ], - "Stiffness Frequency": 1.0 + "Linear Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Angular Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Wind Velocity": [ + 10.0, + 0.0, + 0.0 + ], + "Air Drag Coefficient": 0.5, + "Air Lift Coefficient": 0.5, + "Update Normals of Static Particles": true } }, - "Component_[15643606068434059364]": { + "Component_[12850019035302463297]": { "$type": "EditorLockComponent", - "Id": 15643606068434059364 + "Id": 12850019035302463297 }, - "Component_[1802437050375983597]": { + "Component_[15214644042360665965]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 15214644042360665965, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{C3078003-51DA-5D8E-B311-38C426480DD2}", + "subId": 283342727 + }, + "assetHint": "objects/cloth/environment/cloth_blinds.azmodel" + } + } + } + }, + "Component_[17205613619475042888]": { "$type": "EditorEntityIconComponent", - "Id": 1802437050375983597 + "Id": 17205613619475042888 }, - "Component_[2246969288668584020]": { + "Component_[17262624475618211748]": { + "$type": "EditorVisibilityComponent", + "Id": 17262624475618211748 + }, + "Component_[3930083736215151625]": { + "$type": "EditorInspectorComponent", + "Id": 3930083736215151625, + "ComponentOrderEntryArray": [ + { + "ComponentId": 4795695323030511838 + }, + { + "ComponentId": 11309989511197311871, + "SortIndex": 1 + }, + { + "ComponentId": 15214644042360665965, + "SortIndex": 2 + }, + { + "ComponentId": 9206497685981025331, + "SortIndex": 3 + } + ] + }, + "Component_[4446664869832380031]": { + "$type": "SelectionComponent", + "Id": 4446664869832380031 + }, + "Component_[4795695323030511838]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 4795695323030511838, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" + }, + "Component_[5800800590637221800]": { "$type": "EditorDisabledCompositionComponent", - "Id": 2246969288668584020 + "Id": 5800800590637221800 }, - "Component_[3349689287441689089]": { + "Component_[6953593560040071775]": { "$type": "EditorPendingCompositionComponent", - "Id": 3349689287441689089 + "Id": 6953593560040071775 }, - "Component_[4761242843736319995]": { + "Component_[7074022732104182988]": { + "$type": "EditorEntitySortComponent", + "Id": 7074022732104182988 + }, + "Component_[9206497685981025331]": { "$type": "EditorMaterialComponent", - "Id": 4761242843736319995, + "Id": 9206497685981025331, "Controller": { "Configuration": { "materials": [ @@ -149,70 +214,6 @@ } ] ] - }, - "Component_[7102112177384882498]": { - "$type": "EditorInspectorComponent", - "Id": 7102112177384882498, - "ComponentOrderEntryArray": [ - { - "ComponentId": 8287798504585048292 - }, - { - "ComponentId": 7500992507704969518, - "SortIndex": 1 - }, - { - "ComponentId": 4761242843736319995, - "SortIndex": 2 - }, - { - "ComponentId": 14636776520633084007, - "SortIndex": 3 - } - ] - }, - "Component_[7262445215578128559]": { - "$type": "EditorVisibilityComponent", - "Id": 7262445215578128559 - }, - "Component_[7500992507704969518]": { - "$type": "AZ::Render::EditorMeshComponent", - "Id": 7500992507704969518, - "Controller": { - "Configuration": { - "ModelAsset": { - "assetId": { - "guid": "{C3078003-51DA-5D8E-B311-38C426480DD2}", - "subId": 283342727 - }, - "assetHint": "objects/cloth/environment/cloth_blinds.azmodel" - } - } - } - }, - "Component_[8287798504585048292]": { - "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 8287798504585048292, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - -5.723679542541504, - -2.6300342082977297, - 1.938896894454956 - ] - }, - "Cached World Transform Parent": "ContainerEntity", - "Transform Data": { - "Translate": [ - -6.210474491119385, - 0.0, - 2.0854623317718508 - ] - } - }, - "Component_[9830203766948851058]": { - "$type": "SelectionComponent", - "Id": 9830203766948851058 } }, "IsDependencyReady": true diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds_broken.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds_broken.prefab index c4caf4ff4c..7feb61db90 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds_broken.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_blinds_broken.prefab @@ -3,139 +3,90 @@ "Id": "ContainerEntity", "Name": "cloth_blinds_broken", "Components": { - "Component_[10989814620261546639]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 10989814620261546639 - }, - "Component_[12298926505503761520]": { - "$type": "EditorPendingCompositionComponent", - "Id": 12298926505503761520 - }, - "Component_[13199048427796447680]": { - "$type": "EditorVisibilityComponent", - "Id": 13199048427796447680 - }, - "Component_[13897401964074181963]": { - "$type": "EditorLockComponent", - "Id": 13897401964074181963 - }, - "Component_[15440200647772473638]": { - "$type": "EditorEntityIconComponent", - "Id": 15440200647772473638 - }, - "Component_[15453809689256412670]": { - "$type": "SelectionComponent", - "Id": 15453809689256412670 - }, - "Component_[16085218976953314353]": { - "$type": "EditorEntitySortComponent", - "Id": 16085218976953314353 - }, - "Component_[16269162367022698371]": { + "Component_[10182366347512475253]": { "$type": "EditorPrefabComponent", - "Id": 16269162367022698371 + "Id": 10182366347512475253 }, - "Component_[3663243583798432985]": { + "Component_[12917798267488243668]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12917798267488243668 + }, + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 3663243583798432985 + "Id": 3261249813163778338 }, - "Component_[6161691932390979827]": { + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 + }, + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 6161691932390979827, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[6472172087633666006]": { + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 + }, + "Component_[5787060997243919943]": { "$type": "EditorInspectorComponent", - "Id": 6472172087633666006 + "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 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[8860110480246]": { - "Id": "Entity_[8860110480246]", + "Entity_[303326914460116]": { + "Id": "Entity_[303326914460116]", "Name": "cloth_blinds_broken", "Components": { - "Component_[1079843150556003627]": { - "$type": "EditorEntityIconComponent", - "Id": 1079843150556003627 - }, - "Component_[11968229236146127519]": { - "$type": "EditorPendingCompositionComponent", - "Id": 11968229236146127519 - }, - "Component_[12117224592880940883]": { - "$type": "EditorInspectorComponent", - "Id": 12117224592880940883, - "ComponentOrderEntryArray": [ - { - "ComponentId": 5483426416697581640 - }, - { - "ComponentId": 5518702849950674566, - "SortIndex": 1 - }, - { - "ComponentId": 894067052175737998, - "SortIndex": 2 - }, - { - "ComponentId": 1765776596326719942, - "SortIndex": 3 - } - ] - }, - "Component_[1765776596326719942]": { + "Component_[10786078036233199116]": { "$type": "EditorClothComponent", - "Id": 1765776596326719942, + "Id": 10786078036233199116, "Configuration": { "Mesh Node": "pPlane1", - "Update Normals of Static Particles": true, - "Wind Velocity": [ + "Damping": [ + 0.0, 0.0, - 10.0, 0.0 ], - "Stiffness Frequency": 1.0 + "Linear Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Angular Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Wind Velocity": [ + 5.0, + 0.0, + 0.0 + ], + "Update Normals of Static Particles": true } }, - "Component_[17734660328068630579]": { - "$type": "SelectionComponent", - "Id": 17734660328068630579 - }, - "Component_[2020684643572273032]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 2020684643572273032 - }, - "Component_[3951090720799475031]": { - "$type": "EditorVisibilityComponent", - "Id": 3951090720799475031 - }, - "Component_[504292109316286904]": { - "$type": "EditorLockComponent", - "Id": 504292109316286904 - }, - "Component_[5243187155220405314]": { - "$type": "EditorOnlyEntityComponent", - "Id": 5243187155220405314 - }, - "Component_[5483426416697581640]": { - "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 5483426416697581640, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - -2.9314260482788088, - -0.9454793930053711, - 1.7495737075805665 - ] - }, - "Cached World Transform Parent": "ContainerEntity" - }, - "Component_[5518702849950674566]": { + "Component_[11765361670726469628]": { "$type": "AZ::Render::EditorMeshComponent", - "Id": 5518702849950674566, + "Id": 11765361670726469628, "Controller": { "Configuration": { "ModelAsset": { @@ -148,9 +99,37 @@ } } }, - "Component_[894067052175737998]": { + "Component_[13771990625644339755]": { + "$type": "EditorEntitySortComponent", + "Id": 13771990625644339755 + }, + "Component_[14712436598236321787]": { + "$type": "EditorLockComponent", + "Id": 14712436598236321787 + }, + "Component_[14930554686244012752]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 14930554686244012752 + }, + "Component_[16955243819980352058]": { + "$type": "EditorPendingCompositionComponent", + "Id": 16955243819980352058 + }, + "Component_[17396749751570379839]": { + "$type": "EditorVisibilityComponent", + "Id": 17396749751570379839 + }, + "Component_[2237683366320350918]": { + "$type": "SelectionComponent", + "Id": 2237683366320350918 + }, + "Component_[4939437553142322315]": { + "$type": "EditorEntityIconComponent", + "Id": 4939437553142322315 + }, + "Component_[538074694053236341]": { "$type": "EditorMaterialComponent", - "Id": 894067052175737998, + "Id": 538074694053236341, "Controller": { "Configuration": { "materials": [ @@ -203,9 +182,36 @@ ] ] }, - "Component_[9677874933452340864]": { - "$type": "EditorEntitySortComponent", - "Id": 9677874933452340864 + "Component_[5681411293917950785]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5681411293917950785, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" + }, + "Component_[7046686956433693767]": { + "$type": "EditorInspectorComponent", + "Id": 7046686956433693767, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5681411293917950785 + }, + { + "ComponentId": 10786078036233199116, + "SortIndex": 1 + }, + { + "ComponentId": 11765361670726469628, + "SortIndex": 2 + }, + { + "ComponentId": 538074694053236341, + "SortIndex": 3 + } + ] + }, + "Component_[9565338131843702938]": { + "$type": "EditorOnlyEntityComponent", + "Id": 9565338131843702938 } }, "IsDependencyReady": true diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_four.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_four.prefab index 39b72f63fd..cdbe92dab6 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_four.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_four.prefab @@ -3,63 +3,83 @@ "Id": "ContainerEntity", "Name": "cloth_locked_corners_four", "Components": { - "Component_[13888132130168041992]": { - "$type": "EditorEntityIconComponent", - "Id": 13888132130168041992 - }, - "Component_[14031678566419671406]": { - "$type": "EditorVisibilityComponent", - "Id": 14031678566419671406 - }, - "Component_[15480122384719724795]": { + "Component_[10182366347512475253]": { "$type": "EditorPrefabComponent", - "Id": 15480122384719724795 + "Id": 10182366347512475253 }, - "Component_[15688442711950741155]": { - "$type": "SelectionComponent", - "Id": 15688442711950741155 - }, - "Component_[17193472612212292109]": { + "Component_[12917798267488243668]": { "$type": "EditorPendingCompositionComponent", - "Id": 17193472612212292109 + "Id": 12917798267488243668 }, - "Component_[17650154089342371227]": { + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 17650154089342371227 + "Id": 3261249813163778338 }, - "Component_[2597916765647847638]": { - "$type": "EditorInspectorComponent", - "Id": 2597916765647847638 - }, - "Component_[3170182215265959833]": { - "$type": "EditorLockComponent", - "Id": 3170182215265959833 - }, - "Component_[4868760161921280191]": { + "Component_[3837204912784440039]": { "$type": "EditorDisabledCompositionComponent", - "Id": 4868760161921280191 + "Id": 3837204912784440039 }, - "Component_[5068517972887920186]": { + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 5068517972887920186, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[676524230089543870]": { + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 + }, + "Component_[5787060997243919943]": { + "$type": "EditorInspectorComponent", + "Id": 5787060997243919943 + }, + "Component_[7804170251266531779]": { + "$type": "EditorLockComponent", + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { "$type": "EditorEntitySortComponent", - "Id": 676524230089543870 + "Id": 7874177159288365422 + }, + "Component_[8018146290632383969]": { + "$type": "EditorEntityIconComponent", + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[18154419708790]": { - "Id": "Entity_[18154419708790]", + "Entity_[303417108773332]": { + "Id": "Entity_[303417108773332]", "Name": "cloth_locked_corners_four", "Components": { - "Component_[10365722294506366933]": { + "Component_[10032168678611459233]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 10032168678611459233, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{89C91D92-7B4E-5EB5-945D-0053111859EE}", + "subId": 279249006 + }, + "assetHint": "objects/cloth/environment/cloth_locked_corners_four.azmodel" + } + } + } + }, + "Component_[12766570162661899127]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 12766570162661899127, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" + }, + "Component_[12950486357466178058]": { "$type": "EditorMaterialComponent", - "Id": 10365722294506366933, + "Id": 12950486357466178058, "Controller": { "Configuration": { "materials": [ @@ -112,110 +132,91 @@ ] ] }, - "Component_[10859562122285472274]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 10859562122285472274 - }, - "Component_[14622083210324204992]": { - "$type": "EditorLockComponent", - "Id": 14622083210324204992 - }, - "Component_[15220860273045136531]": { - "$type": "AZ::Render::EditorMeshComponent", - "Id": 15220860273045136531, - "Controller": { - "Configuration": { - "ModelAsset": { - "assetId": { - "guid": "{89C91D92-7B4E-5EB5-945D-0053111859EE}", - "subId": 279249006 - }, - "assetHint": "objects/cloth/environment/cloth_locked_corners_four.azmodel" - } - } - } - }, - "Component_[16425888662708329747]": { - "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 16425888662708329747, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - 3.0004701614379885, - -4.337822437286377, - 3.1882824897766115 - ] - }, - "Cached World Transform Parent": "ContainerEntity", - "Transform Data": { - "Translate": [ - 8.040351867675782, - -4.368268966674805, - 0.0 - ] - } - }, - "Component_[4438658514025011411]": { + "Component_[13484816898680823471]": { "$type": "EditorEntitySortComponent", - "Id": 4438658514025011411 + "Id": 13484816898680823471 }, - "Component_[5913235105006124431]": { - "$type": "EditorPendingCompositionComponent", - "Id": 5913235105006124431 - }, - "Component_[77600265179991959]": { - "$type": "EditorClothComponent", - "Id": 77600265179991959, - "Configuration": { - "Mesh Node": "pPlane1", - "Air Drag Coefficient": 0.5, - "Air Lift Coefficient": 0.5, - "Tether Constraint Stiffness": 0.10000000149011612, - "Solver Frequency": 0.10000000149011612, - "Update Normals of Static Particles": true, - "Wind Velocity": [ - 0.0, - 19.0, - 0.0 - ] - } - }, - "Component_[7823285819593032424]": { - "$type": "SelectionComponent", - "Id": 7823285819593032424 - }, - "Component_[7850007788027860583]": { - "$type": "EditorEntityIconComponent", - "Id": 7850007788027860583 - }, - "Component_[8322654623609026271]": { - "$type": "EditorOnlyEntityComponent", - "Id": 8322654623609026271 - }, - "Component_[884075377124407467]": { + "Component_[1382754615503170687]": { "$type": "EditorInspectorComponent", - "Id": 884075377124407467, + "Id": 1382754615503170687, "ComponentOrderEntryArray": [ { - "ComponentId": 16425888662708329747 + "ComponentId": 12766570162661899127 }, { - "ComponentId": 15220860273045136531, + "ComponentId": 15114198178471353754, "SortIndex": 1 }, { - "ComponentId": 10365722294506366933, + "ComponentId": 10032168678611459233, "SortIndex": 2 }, { - "ComponentId": 77600265179991959, + "ComponentId": 12950486357466178058, "SortIndex": 3 } ] }, - "Component_[9249713210701101638]": { + "Component_[14681412843852848812]": { + "$type": "EditorEntityIconComponent", + "Id": 14681412843852848812 + }, + "Component_[15114198178471353754]": { + "$type": "EditorClothComponent", + "Id": 15114198178471353754, + "Configuration": { + "Mesh Node": "pPlane1", + "Stiffness Frequency": 1.0, + "Damping": [ + 0.0, + 0.0, + 0.0 + ], + "Linear Drag": [ + 0.10000000149011612, + 0.10000000149011612, + 0.10000000149011612 + ], + "Angular Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Wind Velocity": [ + 30.0, + 0.0, + 0.0 + ], + "Air Drag Coefficient": 0.5, + "Air Lift Coefficient": 0.5, + "Tether Constraint Stiffness": 0.10000000149011612, + "Solver Frequency": 0.10000000149011612, + "Update Normals of Static Particles": true + } + }, + "Component_[16053566237817170938]": { + "$type": "EditorPendingCompositionComponent", + "Id": 16053566237817170938 + }, + "Component_[4429394044165993194]": { + "$type": "EditorLockComponent", + "Id": 4429394044165993194 + }, + "Component_[5458686923744863438]": { + "$type": "EditorOnlyEntityComponent", + "Id": 5458686923744863438 + }, + "Component_[7652255413353256955]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 7652255413353256955 + }, + "Component_[8417657922837077982]": { "$type": "EditorVisibilityComponent", - "Id": 9249713210701101638 + "Id": 8417657922837077982 + }, + "Component_[944311658362107535]": { + "$type": "SelectionComponent", + "Id": 944311658362107535 } }, "IsDependencyReady": true diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_two.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_two.prefab index b6bf98331c..068c4a6a7e 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_two.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_corners_two.prefab @@ -3,67 +3,165 @@ "Id": "ContainerEntity", "Name": "cloth_locked_corners_two", "Components": { - "Component_[10517025541686089747]": { - "$type": "SelectionComponent", - "Id": 10517025541686089747 - }, - "Component_[11942695247789365360]": { - "$type": "EditorLockComponent", - "Id": 11942695247789365360 - }, - "Component_[12559361867367225813]": { - "$type": "EditorPendingCompositionComponent", - "Id": 12559361867367225813 - }, - "Component_[2298695278968718052]": { + "Component_[10182366347512475253]": { "$type": "EditorPrefabComponent", - "Id": 2298695278968718052 + "Id": 10182366347512475253 }, - "Component_[5428140871384328988]": { + "Component_[12917798267488243668]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12917798267488243668 + }, + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 5428140871384328988 + "Id": 3261249813163778338 }, - "Component_[5701501137958186643]": { + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 + }, + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 5701501137958186643, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[5778239630714783896]": { + "Component_[4848458548047175816]": { "$type": "EditorVisibilityComponent", - "Id": 5778239630714783896 + "Id": 4848458548047175816 }, - "Component_[7805751851684582886]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 7805751851684582886 - }, - "Component_[8080436454059486024]": { - "$type": "EditorEntityIconComponent", - "Id": 8080436454059486024 - }, - "Component_[9061896821975172319]": { + "Component_[5787060997243919943]": { "$type": "EditorInspectorComponent", - "Id": 9061896821975172319 + "Id": 5787060997243919943 }, - "Component_[9124360597499948832]": { + "Component_[7804170251266531779]": { + "$type": "EditorLockComponent", + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { "$type": "EditorEntitySortComponent", - "Id": 9124360597499948832 + "Id": 7874177159288365422 + }, + "Component_[8018146290632383969]": { + "$type": "EditorEntityIconComponent", + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[19988370744182]": { - "Id": "Entity_[19988370744182]", + "Entity_[303387044002260]": { + "Id": "Entity_[303387044002260]", "Name": "cloth_locked_corners_two", "Components": { - "Component_[11229181318682575009]": { - "$type": "EditorOnlyEntityComponent", - "Id": 11229181318682575009 + "Component_[1001638726593827857]": { + "$type": "EditorEntityIconComponent", + "Id": 1001638726593827857 }, - "Component_[12590098138564546298]": { + "Component_[10262713678088900797]": { + "$type": "EditorLockComponent", + "Id": 10262713678088900797 + }, + "Component_[11187088727311308743]": { + "$type": "EditorEntitySortComponent", + "Id": 11187088727311308743 + }, + "Component_[11287804792148854494]": { + "$type": "EditorOnlyEntityComponent", + "Id": 11287804792148854494 + }, + "Component_[13071159905056054261]": { + "$type": "EditorVisibilityComponent", + "Id": 13071159905056054261 + }, + "Component_[14654386610096307993]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 14654386610096307993 + }, + "Component_[16927361351552746000]": { + "$type": "EditorClothComponent", + "Id": 16927361351552746000, + "Configuration": { + "Mesh Node": "pPlane1", + "Mass": 10.0, + "Stiffness Frequency": 1.0, + "Damping": [ + 0.0, + 0.0, + 0.0 + ], + "Linear Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Angular Drag": [ + 0.0, + 0.0, + 0.0 + ], + "Air Drag Coefficient": 0.5, + "Air Lift Coefficient": 0.800000011920929, + "Tether Constraint Stiffness": 0.10000000149011612, + "Solver Frequency": 0.5, + "Update Normals of Static Particles": true + } + }, + "Component_[2410073307760782444]": { + "$type": "EditorPendingCompositionComponent", + "Id": 2410073307760782444 + }, + "Component_[4751432498761592063]": { + "$type": "EditorInspectorComponent", + "Id": 4751432498761592063, + "ComponentOrderEntryArray": [ + { + "ComponentId": 5636741882934012477 + }, + { + "ComponentId": 16927361351552746000, + "SortIndex": 1 + }, + { + "ComponentId": 7032406204252577953, + "SortIndex": 2 + }, + { + "ComponentId": 9419069324766365964, + "SortIndex": 3 + } + ] + }, + "Component_[5636741882934012477]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 5636741882934012477, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" + }, + "Component_[691437686890444081]": { + "$type": "SelectionComponent", + "Id": 691437686890444081 + }, + "Component_[7032406204252577953]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 7032406204252577953, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{23C6817F-0B79-5CAD-B861-9E6F5E55927D}", + "subId": 280646834 + }, + "assetHint": "objects/cloth/environment/cloth_locked_corners_two.azmodel" + } + } + } + }, + "Component_[9419069324766365964]": { "$type": "EditorMaterialComponent", - "Id": 12590098138564546298, + "Id": 9419069324766365964, "Controller": { "Configuration": { "materials": [ @@ -115,104 +213,6 @@ } ] ] - }, - "Component_[13015448166210260338]": { - "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 13015448166210260338, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - 0.6749224662780762, - -4.288209915161133, - 2.4030189514160158 - ] - }, - "Cached World Transform Parent": "ContainerEntity", - "Transform Data": { - "Translate": [ - 2.2785778045654299, - 0.0, - 0.0 - ] - } - }, - "Component_[17709800634205509765]": { - "$type": "SelectionComponent", - "Id": 17709800634205509765 - }, - "Component_[17881336357737316612]": { - "$type": "EditorVisibilityComponent", - "Id": 17881336357737316612 - }, - "Component_[18134421333115235974]": { - "$type": "AZ::Render::EditorMeshComponent", - "Id": 18134421333115235974, - "Controller": { - "Configuration": { - "ModelAsset": { - "assetId": { - "guid": "{23C6817F-0B79-5CAD-B861-9E6F5E55927D}", - "subId": 280646834 - }, - "assetHint": "objects/cloth/environment/cloth_locked_corners_two.azmodel" - } - } - } - }, - "Component_[1951606800215019069]": { - "$type": "EditorEntityIconComponent", - "Id": 1951606800215019069 - }, - "Component_[2363740054997837278]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 2363740054997837278 - }, - "Component_[3674821019392172687]": { - "$type": "EditorInspectorComponent", - "Id": 3674821019392172687, - "ComponentOrderEntryArray": [ - { - "ComponentId": 13015448166210260338 - }, - { - "ComponentId": 18134421333115235974, - "SortIndex": 1 - }, - { - "ComponentId": 12590098138564546298, - "SortIndex": 2 - }, - { - "ComponentId": 5881611098656116710, - "SortIndex": 3 - } - ] - }, - "Component_[5096623085809697325]": { - "$type": "EditorPendingCompositionComponent", - "Id": 5096623085809697325 - }, - "Component_[5881611098656116710]": { - "$type": "EditorClothComponent", - "Id": 5881611098656116710, - "Configuration": { - "Mesh Node": "pPlane1", - "Mass": 10.0, - "Stiffness Frequency": 1.0, - "Air Drag Coefficient": 0.5, - "Air Lift Coefficient": 0.800000011920929, - "Tether Constraint Stiffness": 0.10000000149011612, - "Solver Frequency": 0.5, - "Update Normals of Static Particles": true - } - }, - "Component_[617790731841875255]": { - "$type": "EditorLockComponent", - "Id": 617790731841875255 - }, - "Component_[7682555904043583234]": { - "$type": "EditorEntitySortComponent", - "Id": 7682555904043583234 } }, "IsDependencyReady": true diff --git a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_edge.prefab b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_edge.prefab index 1dff578422..7bba36adf8 100644 --- a/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_edge.prefab +++ b/Gems/NvCloth/Assets/prefabs/Cloth/cloth_locked_edge.prefab @@ -3,67 +3,106 @@ "Id": "ContainerEntity", "Name": "cloth_locked_edge", "Components": { - "Component_[1235323850699490217]": { - "$type": "EditorVisibilityComponent", - "Id": 1235323850699490217 + "Component_[10182366347512475253]": { + "$type": "EditorPrefabComponent", + "Id": 10182366347512475253 }, - "Component_[15881575175154249216]": { - "$type": "EditorEntityIconComponent", - "Id": 15881575175154249216 + "Component_[12917798267488243668]": { + "$type": "EditorPendingCompositionComponent", + "Id": 12917798267488243668 }, - "Component_[17600849902539154435]": { + "Component_[3261249813163778338]": { "$type": "EditorOnlyEntityComponent", - "Id": 17600849902539154435 + "Id": 3261249813163778338 }, - "Component_[17642993831427457865]": { + "Component_[3837204912784440039]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 3837204912784440039 + }, + "Component_[4272963378099646759]": { "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 17642993831427457865, + "Id": 4272963378099646759, "Parent Entity": "", "Cached World Transform Parent": "" }, - "Component_[1978132613175166397]": { - "$type": "EditorPrefabComponent", - "Id": 1978132613175166397 + "Component_[4848458548047175816]": { + "$type": "EditorVisibilityComponent", + "Id": 4848458548047175816 }, - "Component_[3665335443055612027]": { - "$type": "EditorEntitySortComponent", - "Id": 3665335443055612027 - }, - "Component_[4340499892108035209]": { + "Component_[5787060997243919943]": { "$type": "EditorInspectorComponent", - "Id": 4340499892108035209 + "Id": 5787060997243919943 }, - "Component_[5740495422195339981]": { - "$type": "SelectionComponent", - "Id": 5740495422195339981 - }, - "Component_[5916084327473082953]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 5916084327473082953 - }, - "Component_[6149161397236330762]": { - "$type": "EditorPendingCompositionComponent", - "Id": 6149161397236330762 - }, - "Component_[8815189893920523789]": { + "Component_[7804170251266531779]": { "$type": "EditorLockComponent", - "Id": 8815189893920523789 + "Id": 7804170251266531779 + }, + "Component_[7874177159288365422]": { + "$type": "EditorEntitySortComponent", + "Id": 7874177159288365422 + }, + "Component_[8018146290632383969]": { + "$type": "EditorEntityIconComponent", + "Id": 8018146290632383969 + }, + "Component_[8452360690590857075]": { + "$type": "SelectionComponent", + "Id": 8452360690590857075 } - }, - "IsDependencyReady": true + } }, "Entities": { - "Entity_[24657000194934]": { - "Id": "Entity_[24657000194934]", + "Entity_[303356979231188]": { + "Id": "Entity_[303356979231188]", "Name": "cloth_locked_edge", "Components": { - "Component_[12570923873370995388]": { - "$type": "EditorEntityIconComponent", - "Id": 12570923873370995388 + "Component_[10058909754154454376]": { + "$type": "EditorDisabledCompositionComponent", + "Id": 10058909754154454376 }, - "Component_[15695175229307539942]": { + "Component_[13619550272459633699]": { + "$type": "AZ::Render::EditorMeshComponent", + "Id": 13619550272459633699, + "Controller": { + "Configuration": { + "ModelAsset": { + "assetId": { + "guid": "{9DCAD62C-7A35-5D7D-8276-870D646CD5E2}", + "subId": 272561654 + }, + "assetHint": "objects/cloth/environment/cloth_locked_edge.azmodel" + } + } + } + }, + "Component_[14771752773951891563]": { + "$type": "EditorInspectorComponent", + "Id": 14771752773951891563, + "ComponentOrderEntryArray": [ + { + "ComponentId": 4215669181198357248 + }, + { + "ComponentId": 16595775512479337011, + "SortIndex": 1 + }, + { + "ComponentId": 13619550272459633699, + "SortIndex": 2 + }, + { + "ComponentId": 4580390205455331350, + "SortIndex": 3 + } + ] + }, + "Component_[14983280478781449966]": { + "$type": "SelectionComponent", + "Id": 14983280478781449966 + }, + "Component_[16595775512479337011]": { "$type": "EditorClothComponent", - "Id": 15695175229307539942, + "Id": 16595775512479337011, "Configuration": { "Mesh Node": "pPlane1", "Damping": [ @@ -82,26 +121,28 @@ 0.5 ], "Wind Velocity": [ - 20.0, + 10.0, 0.0, 0.0 ], - "Update Normals of Static Particles": true, "Air Drag Coefficient": 0.5, - "Air Lift Coefficient": 0.10000000149011612 + "Air Lift Coefficient": 0.5, + "Update Normals of Static Particles": true } }, - "Component_[1702552432011529292]": { - "$type": "EditorOnlyEntityComponent", - "Id": 1702552432011529292 + "Component_[16893372770952587461]": { + "$type": "EditorVisibilityComponent", + "Id": 16893372770952587461 }, - "Component_[3257580479102403174]": { - "$type": "EditorDisabledCompositionComponent", - "Id": 3257580479102403174 + "Component_[4215669181198357248]": { + "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", + "Id": 4215669181198357248, + "Parent Entity": "ContainerEntity", + "Cached World Transform Parent": "ContainerEntity" }, - "Component_[4004895580151009916]": { + "Component_[4580390205455331350]": { "$type": "EditorMaterialComponent", - "Id": 4004895580151009916, + "Id": 4580390205455331350, "Controller": { "Configuration": { "materials": [ @@ -154,81 +195,25 @@ ] ] }, - "Component_[4551907993575066613]": { + "Component_[5652509070289279796]": { + "$type": "EditorOnlyEntityComponent", + "Id": 5652509070289279796 + }, + "Component_[5729541152832178099]": { + "$type": "EditorEntityIconComponent", + "Id": 5729541152832178099 + }, + "Component_[734939761857694320]": { "$type": "EditorPendingCompositionComponent", - "Id": 4551907993575066613 + "Id": 734939761857694320 }, - "Component_[4676074866703387598]": { + "Component_[9519328464240977334]": { "$type": "EditorLockComponent", - "Id": 4676074866703387598 + "Id": 9519328464240977334 }, - "Component_[5370716247379084795]": { - "$type": "SelectionComponent", - "Id": 5370716247379084795 - }, - "Component_[5949160048738230993]": { - "$type": "EditorVisibilityComponent", - "Id": 5949160048738230993 - }, - "Component_[7069757442037403546]": { - "$type": "EditorInspectorComponent", - "Id": 7069757442037403546, - "ComponentOrderEntryArray": [ - { - "ComponentId": 8406078395808436009 - }, - { - "ComponentId": 9469271735758494477, - "SortIndex": 1 - }, - { - "ComponentId": 4004895580151009916, - "SortIndex": 2 - }, - { - "ComponentId": 15695175229307539942, - "SortIndex": 3 - } - ] - }, - "Component_[8406078395808436009]": { - "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent", - "Id": 8406078395808436009, - "Parent Entity": "ContainerEntity", - "Cached World Transform": { - "Translation": [ - -0.9528284072875977, - -3.110790252685547, - 1.4851393699645997 - ] - }, - "Cached World Transform Parent": "ContainerEntity", - "Transform Data": { - "Translate": [ - 0.013340950012207032, - -0.012479305267333985, - 0.0 - ] - } - }, - "Component_[94124159756316305]": { + "Component_[9694796263300215788]": { "$type": "EditorEntitySortComponent", - "Id": 94124159756316305 - }, - "Component_[9469271735758494477]": { - "$type": "AZ::Render::EditorMeshComponent", - "Id": 9469271735758494477, - "Controller": { - "Configuration": { - "ModelAsset": { - "assetId": { - "guid": "{9DCAD62C-7A35-5D7D-8276-870D646CD5E2}", - "subId": 272561654 - }, - "assetHint": "objects/cloth/environment/cloth_locked_edge.azmodel" - } - } - } + "Id": 9694796263300215788 } }, "IsDependencyReady": true diff --git a/cmake/Platform/Windows/Packaging/BootstrapperTheme.wxl.in b/cmake/Platform/Windows/Packaging/BootstrapperTheme.wxl.in index 7da81d0397..0c532fa4d8 100644 --- a/cmake/Platform/Windows/Packaging/BootstrapperTheme.wxl.in +++ b/cmake/Platform/Windows/Packaging/BootstrapperTheme.wxl.in @@ -32,9 +32,9 @@ Setup will install [WixBundleName] on your computer. Click install to continue, &Close - Installing @CPACK_PACKAGE_FULL_NAME@... - Processing: - Initializing... + Processing @CPACK_PACKAGE_FULL_NAME@... + Caching Progress + Execution Progress &Cancel diff --git a/cmake/Platform/Windows/Packaging/BootstrapperTheme.xml.in b/cmake/Platform/Windows/Packaging/BootstrapperTheme.xml.in index 93984d06b8..62980a35f7 100644 --- a/cmake/Platform/Windows/Packaging/BootstrapperTheme.xml.in +++ b/cmake/Platform/Windows/Packaging/BootstrapperTheme.xml.in @@ -54,9 +54,13 @@ #(loc.ProgressHeader) - #(loc.ProgressLabel) - #(loc.OverallProgressPackageText) - + #(loc.CacheProgressLabel) + + + + #(loc.ExecuteProgressLabel) + +