diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_1B66C428-1D7C-4A53-BC9B-6F23E420FEC0_Irradiance_lutrgba16.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_1B66C428-1D7C-4A53-BC9B-6F23E420FEC0_Irradiance_lutrgba16.dds
new file mode 100644
index 0000000000..e208940f0d
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_1B66C428-1D7C-4A53-BC9B-6F23E420FEC0_Irradiance_lutrgba16.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac841c02e81c9ae23476522b7e517889d746d4ff32b3251ac4360168f39b30a3
+size 450708
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_52D75B1C-90BE-40A8-A874-3376F6B39299_Relocation_lutrgba16f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_52D75B1C-90BE-40A8-A874-3376F6B39299_Relocation_lutrgba16f.dds
new file mode 100644
index 0000000000..32f2ee1b17
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_52D75B1C-90BE-40A8-A874-3376F6B39299_Relocation_lutrgba16f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3653ca7fb42c7e5991815c17fc9ebeab14a1aa861bfb1d37e233ada66a835f00
+size 7188
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_5A2C9A6B-F914-4D9E-8098-2AD411B69F87_Distance_lutrg32f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_5A2C9A6B-F914-4D9E-8098-2AD411B69F87_Distance_lutrg32f.dds
new file mode 100644
index 0000000000..12c1d8d112
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_5A2C9A6B-F914-4D9E-8098-2AD411B69F87_Distance_lutrg32f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a30b85428202c548e77cdcc0a595f9f26e82d29622be26891d569f4779a75830
+size 1802388
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_A483018F-78ED-4814-986F-F925B0AA5EF8_Classification_lutr32f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_A483018F-78ED-4814-986F-F925B0AA5EF8_Classification_lutr32f.dds
new file mode 100644
index 0000000000..df2c69bfe9
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_01_A483018F-78ED-4814-986F-F925B0AA5EF8_Classification_lutr32f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3d76b7c93f8873ca7c4013dcc4eff887c25552c9c5847290481306656b22069
+size 3668
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_222F1F65-BF31-4E0D-9957-14AE73194A37_Classification_lutr32f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_222F1F65-BF31-4E0D-9957-14AE73194A37_Classification_lutr32f.dds
new file mode 100644
index 0000000000..5c990de348
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_222F1F65-BF31-4E0D-9957-14AE73194A37_Classification_lutr32f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:219f57137c5bd44093762ea9d0fc24308679956b980f26bf194edd3a1798fcda
+size 3668
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_84D0F8A4-AD4F-4FD1-BA26-4803EAD88FE2_Distance_lutrg32f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_84D0F8A4-AD4F-4FD1-BA26-4803EAD88FE2_Distance_lutrg32f.dds
new file mode 100644
index 0000000000..367da91f13
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_84D0F8A4-AD4F-4FD1-BA26-4803EAD88FE2_Distance_lutrg32f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:96ed61c66d1d1f71e940ab75899ee253007e704004e1157c900c6308151a8bf1
+size 1802388
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_9DC8C208-5327-4F0F-B1DF-C98F7F81F07D_Relocation_lutrgba16f.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_9DC8C208-5327-4F0F-B1DF-C98F7F81F07D_Relocation_lutrgba16f.dds
new file mode 100644
index 0000000000..b6d735cf50
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_9DC8C208-5327-4F0F-B1DF-C98F7F81F07D_Relocation_lutrgba16f.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:70a7dc4e2455624067e842b059954f6c4bb9b0debc3cb1ffa783b14bffc61786
+size 7188
diff --git a/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_A78EEAF4-7CB2-4635-AA6F-2ED677328706_Irradiance_lutrgba16.dds b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_A78EEAF4-7CB2-4635-AA6F-2ED677328706_Irradiance_lutrgba16.dds
new file mode 100644
index 0000000000..e46f54586a
--- /dev/null
+++ b/AutomatedTesting/DiffuseProbeGrids/DiffuseGI_02_A78EEAF4-7CB2-4635-AA6F-2ED677328706_Irradiance_lutrgba16.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f5a945c61f92f3da77dfd9fdd2c95aa257f4df6bcb82483c608ab660bb72e5f
+size 450708
diff --git a/AutomatedTesting/Gem/PythonTests/EditorPythonTestTools/editor_python_test_tools/hydra_editor_utils.py b/AutomatedTesting/Gem/PythonTests/EditorPythonTestTools/editor_python_test_tools/hydra_editor_utils.py
index 19aa6e9d3c..5e3828ad02 100644
--- a/AutomatedTesting/Gem/PythonTests/EditorPythonTestTools/editor_python_test_tools/hydra_editor_utils.py
+++ b/AutomatedTesting/Gem/PythonTests/EditorPythonTestTools/editor_python_test_tools/hydra_editor_utils.py
@@ -46,6 +46,18 @@ def get_component_type_id(component_name):
return component_type_id
+def get_level_component_type_id(component_name):
+ """
+ Gets the component_type_id from a given component name
+ :param component_name: String of component name to search for
+ :return component type ID
+ """
+ type_ids_list = editor.EditorComponentAPIBus(bus.Broadcast, 'FindComponentTypeIdsByEntityType', [component_name],
+ entity.EntityType().Level)
+ component_type_id = type_ids_list[0]
+ return component_type_id
+
+
def add_level_component(component_name):
"""
Adds the specified component to the Level Inspector
@@ -145,6 +157,20 @@ def get_component_property_value(component, component_propertyPath):
print(f'FAILURE: Could not get value from {component_propertyPath}')
return None
+def set_component_property_value(component, component_propertyPath, value):
+ """
+ Given a component name and component property path, set component property value
+ :param component: Component object to act on.
+ :param componentPropertyPath: String of component property. (e.g. 'Settings|Visible')
+ :param value: new value for the variable being changed in the component
+ """
+ componentPropertyObj = editor.EditorComponentAPIBus(bus.Broadcast, 'SetComponentProperty', component,
+ component_propertyPath, value)
+ if componentPropertyObj.IsSuccess():
+ print(f'{component_propertyPath} set to {value}')
+ else:
+ print(f'FAILURE: Could not set value in {component_propertyPath}')
+
def get_property_tree(component):
"""
diff --git a/AutomatedTesting/Gem/PythonTests/NvCloth/TestSuite_Main.py b/AutomatedTesting/Gem/PythonTests/NvCloth/TestSuite_Main.py
index f35f098b0f..49a776a48c 100644
--- a/AutomatedTesting/Gem/PythonTests/NvCloth/TestSuite_Main.py
+++ b/AutomatedTesting/Gem/PythonTests/NvCloth/TestSuite_Main.py
@@ -25,8 +25,8 @@ class TestAutomation(TestAutomationBase):
def test_NvCloth_AddClothSimulationToMesh(self, request, workspace, editor, launcher_platform):
from .tests import NvCloth_AddClothSimulationToMesh as test_module
- self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer, enable_prefab_system=False)
+ self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer)
def test_NvCloth_AddClothSimulationToActor(self, request, workspace, editor, launcher_platform):
from .tests import NvCloth_AddClothSimulationToActor as test_module
- self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer, enable_prefab_system=False)
+ self._run_test(request, workspace, editor, test_module, use_null_renderer = self.use_null_renderer)
diff --git a/AutomatedTesting/Gem/PythonTests/Terrain/EditorScripts/Terrain_World_ConfigurationWorks.py b/AutomatedTesting/Gem/PythonTests/Terrain/EditorScripts/Terrain_World_ConfigurationWorks.py
new file mode 100644
index 0000000000..bb5dcb3bea
--- /dev/null
+++ b/AutomatedTesting/Gem/PythonTests/Terrain/EditorScripts/Terrain_World_ConfigurationWorks.py
@@ -0,0 +1,168 @@
+"""
+Copyright (c) Contributors to the Open 3D Engine Project.
+For complete copyright and license terms please see the LICENSE at the root of this distribution.
+
+SPDX-License-Identifier: Apache-2.0 OR MIT
+"""
+
+#fmt: off
+class Tests():
+ level_components_added = ("Level components added correctly", "Failed to create level components")
+ create_terrain_spawner_entity = ("Terrain_spawner_entity created successfully", "Failed to create terrain_spawner_entity")
+ create_height_provider_entity = ("Height_provider_entity created successfully", "Failed to create height_provider_entity")
+ bounds_max_changed = ("Terrain World Bounds Max changed successfully", "Failed to change Terrain World Bounds Max")
+ bounds_min_changed = ("Terrain World Bounds Min changed successfully", "Failed to change Terrain World Bounds Min")
+ height_query_changed = ("Terrain World Height Query Resolution changed successfully", "Failed to change Height Query Resolution")
+ box_dimensions_changed = ("Aabb dimensions changed successfully", "Failed to change Aabb dimensions")
+ shape_changed = ("Shape changed successfully", "Failed Shape change")
+ frequency_changed = ("Frequency changed successfully", "Failed Frequency change")
+ entity_added = ("Entity added successfully", "Failed Entity add")
+ terrain_exists = ("Terrain exists at the provided point", "Terrain does not exist at the provided point")
+ terrain_does_not_exist = ("Terrain does not exist at the provided point", "Terrain exists at the provided point")
+ values_not_the_same = ("The tested values are not the same", "The tested values are the same")
+ no_errors_and_warnings_found = ("No errors and warnings found", "Found errors and warnings")
+#fmt: on
+
+def Terrain_World_ConfigurationWorks():
+ """
+ Summary:
+ Test the Terrain World configuration changes when parameters are changed in the component
+
+ Test Steps:
+ Expected Behavior:
+ The Editor is stable there are no warnings or errors.
+
+ Test Steps:
+ 1) Start the Tracer to catch any errors and warnings
+ 2) Load the base level
+ 3) Load the level components
+ 4) Create 2 test entities, one parent at 512.0, 512.0, 50.0 and one child at the default position and add the required components
+ 5) Set the base Terrain World values
+ 6) Change the Axis Aligned Box Shape dimensions
+ 7) Set the Shape Reference to terrain_spawner_entity
+ 8) Set the FastNoise Gradient frequency to 0.01
+ 9) Set the Gradient List to height_provider_entity
+ 10) Disable and Enable the Terrain Gradient List so that it is recognised
+ 11) Check terrain exists at a known position in the world
+ 12) Check terrain does not exist at a known position outside the world
+ 13) Check height value is the expected one when query resolution is changed
+ """
+ from editor_python_test_tools.editor_entity_utils import EditorEntity
+ from editor_python_test_tools.utils import TestHelper as helper, Report
+ from editor_python_test_tools.utils import Report, Tracer
+ import editor_python_test_tools.hydra_editor_utils as hydra
+ import azlmbr.math as azmath
+ import azlmbr.legacy.general as general
+ import azlmbr.bus as bus
+ import azlmbr.editor as editor
+ import azlmbr.terrain as terrain
+ import math
+
+ SET_BOX_X_SIZE = 2048.0
+ SET_BOX_Y_SIZE = 2048.0
+ SET_BOX_Z_SIZE = 100.0
+ CLAMP = 1
+
+ helper.init_idle()
+
+ # 1) Start the Tracer to catch any errors and warnings
+ with Tracer() as section_tracer:
+ # 2) Load the level
+ helper.open_level("", "Base")
+ helper.wait_for_condition(lambda: general.get_current_level_name() == "Base", 2.0)
+
+ # 3) Load the level components
+ terrain_world_component = hydra.add_level_component("Terrain World")
+ terrain_world_renderer = hydra.add_level_component("Terrain World Renderer")
+ Report.critical_result(Tests.level_components_added,
+ terrain_world_component is not None and terrain_world_renderer is not None)
+
+ # 4) Create 2 test entities, one parent at 512.0, 512.0, 50.0 and one child at the default position and add the required components
+ entity1_components_to_add = ["Axis Aligned Box Shape", "Terrain Layer Spawner", "Terrain Height Gradient List", "Terrain Physics Heightfield Collider"]
+ entity2_components_to_add = ["Shape Reference", "Gradient Transform Modifier", "FastNoise Gradient"]
+ terrain_spawner_entity = hydra.Entity("TerrainEntity")
+ terrain_spawner_entity.create_entity(azmath.Vector3(512.0, 512.0, 50.0), entity1_components_to_add)
+ Report.result(Tests.create_terrain_spawner_entity, terrain_spawner_entity.id.IsValid())
+ height_provider_entity = hydra.Entity("HeightProviderEntity")
+ height_provider_entity.create_entity(azmath.Vector3(0.0, 0.0, 0.0), entity2_components_to_add,terrain_spawner_entity.id)
+ Report.result(Tests.create_height_provider_entity, height_provider_entity.id.IsValid())
+
+ # Give everything a chance to finish initializing.
+ general.idle_wait_frames(1)
+
+ # 5) Set the base Terrain World values
+ world_bounds_max = azmath.Vector3(1100.0, 1100.0, 1100.0)
+ world_bounds_min = azmath.Vector3(10.0, 10.0, 10.0)
+ height_query_resolution = azmath.Vector2(1.0, 1.0)
+ hydra.set_component_property_value(terrain_world_component, "Configuration|World Bounds (Max)", world_bounds_max)
+ hydra.set_component_property_value(terrain_world_component, "Configuration|World Bounds (Min)", world_bounds_min)
+ hydra.set_component_property_value(terrain_world_component, "Configuration|Height Query Resolution (m)", height_query_resolution)
+ world_max = hydra.get_component_property_value(terrain_world_component, "Configuration|World Bounds (Max)")
+ world_min = hydra.get_component_property_value(terrain_world_component, "Configuration|World Bounds (Min)")
+ world_query = hydra.get_component_property_value(terrain_world_component, "Configuration|Height Query Resolution (m)")
+ Report.result(Tests.bounds_max_changed, world_max == world_bounds_max)
+ Report.result(Tests.bounds_min_changed, world_min == world_bounds_min)
+ Report.result(Tests.height_query_changed, world_query == height_query_resolution)
+
+ # 6) Change the Axis Aligned Box Shape dimensions
+ box_dimensions = azmath.Vector3(SET_BOX_X_SIZE, SET_BOX_Y_SIZE, SET_BOX_Z_SIZE)
+ terrain_spawner_entity.get_set_test(0, "Axis Aligned Box Shape|Box Configuration|Dimensions", box_dimensions)
+ box_shape_dimensions = hydra.get_component_property_value(terrain_spawner_entity.components[0], "Axis Aligned Box Shape|Box Configuration|Dimensions")
+ Report.result(Tests.box_dimensions_changed, box_dimensions == box_shape_dimensions)
+
+ # 7) Set the Shape Reference to terrain_spawner_entity
+ height_provider_entity.get_set_test(0, "Configuration|Shape Entity Id", terrain_spawner_entity.id)
+ entityId = hydra.get_component_property_value(height_provider_entity.components[0], "Configuration|Shape Entity Id")
+ Report.result(Tests.shape_changed, entityId == terrain_spawner_entity.id)
+
+ # 8) Set the FastNoise Gradient frequency to 0.01
+ frequency = 0.01
+ height_provider_entity.get_set_test(2, "Configuration|Frequency", frequency)
+ frequencyVal = hydra.get_component_property_value(height_provider_entity.components[2], "Configuration|Frequency")
+ Report.result(Tests.frequency_changed, math.isclose(frequency, frequencyVal, abs_tol = 0.00001))
+
+ # 9) Set the Gradient List to height_provider_entity
+ propertyTree = hydra.get_property_tree(terrain_spawner_entity.components[2])
+ propertyTree.add_container_item("Configuration|Gradient Entities", 0, height_provider_entity.id)
+ checkID = propertyTree.get_container_item("Configuration|Gradient Entities", 0)
+ Report.result(Tests.entity_added, checkID.GetValue() == height_provider_entity.id)
+
+ general.idle_wait_frames(1)
+
+ # 10) Disable and Enable the Terrain Gradient List so that it is recognised, EnableComponents performs both actions.
+ editor.EditorComponentAPIBus(bus.Broadcast, 'EnableComponents', [terrain_spawner_entity.components[2]])
+
+ # 11) Check terrain exists at a known position in the world
+ terrainExists = not terrain.TerrainDataRequestBus(bus.Broadcast, 'GetIsHoleFromFloats', 10.0, 10.0, CLAMP)
+ Report.result(Tests.terrain_exists, terrainExists)
+
+ terrainExists = not terrain.TerrainDataRequestBus(bus.Broadcast, 'GetIsHoleFromFloats', 1100.0, 1100.0, CLAMP)
+ Report.result(Tests.terrain_exists, terrainExists)
+
+ # 12) Check terrain does not exist at a known position outside the world
+ terrainDoesNotExist = terrain.TerrainDataRequestBus(bus.Broadcast, 'GetIsHoleFromFloats', 1101.0, 1101.0, CLAMP)
+ Report.result(Tests.terrain_does_not_exist, terrainDoesNotExist)
+
+ terrainDoesNotExist = terrain.TerrainDataRequestBus(bus.Broadcast, 'GetIsHoleFromFloats', 9.0, 9.0, CLAMP)
+ Report.result(Tests.terrain_does_not_exist, terrainDoesNotExist)
+
+ # 13) Check height value is the expected one when query resolution is changed
+ testpoint = terrain.TerrainDataRequestBus(bus.Broadcast, 'GetHeightFromFloats', 10.5, 10.5, CLAMP)
+ height_query_resolution = azmath.Vector2(0.5, 0.5)
+ hydra.set_component_property_value(terrain_world_component, "Configuration|Height Query Resolution (m)", height_query_resolution)
+ general.idle_wait_frames(1)
+ testpoint2 = terrain.TerrainDataRequestBus(bus.Broadcast, 'GetHeightFromFloats', 10.5, 10.5, CLAMP)
+ Report.result(Tests.values_not_the_same, not math.isclose(testpoint, testpoint2, abs_tol = 0.000000001))
+
+ helper.wait_for_condition(lambda: section_tracer.has_errors or section_tracer.has_asserts, 1.0)
+ for error_info in section_tracer.errors:
+ Report.info(f"Error: {error_info.filename} {error_info.function} | {error_info.message}")
+ for assert_info in section_tracer.asserts:
+ Report.info(f"Assert: {assert_info.filename} {assert_info.function} | {assert_info.message}")
+
+
+if __name__ == "__main__":
+
+ from editor_python_test_tools.utils import Report
+ Report.start_test(Terrain_World_ConfigurationWorks)
+
diff --git a/AutomatedTesting/Gem/PythonTests/Terrain/TestSuite_Main.py b/AutomatedTesting/Gem/PythonTests/Terrain/TestSuite_Main.py
index 60d6e2b75f..98c4f8a660 100644
--- a/AutomatedTesting/Gem/PythonTests/Terrain/TestSuite_Main.py
+++ b/AutomatedTesting/Gem/PythonTests/Terrain/TestSuite_Main.py
@@ -36,3 +36,6 @@ class TestAutomation(EditorTestSuite):
class test_TerrainMacroMaterialComponent_MacroMaterialActivates(EditorSharedTest):
from .EditorScripts import TerrainMacroMaterialComponent_MacroMaterialActivates as test_module
+
+ class test_TerrainWorld_ConfigurationWorks(EditorSharedTest):
+ from .EditorScripts import Terrain_World_ConfigurationWorks as test_module
diff --git a/AutomatedTesting/Gem/Sponza/.gitignore b/AutomatedTesting/Gem/Sponza/.gitignore
new file mode 100644
index 0000000000..8bbb0be455
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/.gitignore
@@ -0,0 +1,4 @@
+/.maya_data/*
+/.mayaSwatches/*
+*.swatch
+[Uu]ser_env.bat
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/.src/objects/sponza.ma b/AutomatedTesting/Gem/Sponza/.src/objects/sponza.ma
new file mode 100644
index 0000000000..1c137a50b7
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/.src/objects/sponza.ma
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57848334af0220b7348a8f2583080acf1d9c139a78c9fb1a93a7d2bce61f3c40
+size 41335413
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Prefabs/test_sponza_material_conversion.prefab b/AutomatedTesting/Gem/Sponza/Assets/Prefabs/test_sponza_material_conversion.prefab
new file mode 100644
index 0000000000..92874574e4
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Prefabs/test_sponza_material_conversion.prefab
@@ -0,0 +1,1240 @@
+{
+ "Source": "Prefabs/test_sponza_material_conversion.prefab",
+ "ContainerEntity": {
+ "Id": "ContainerEntity",
+ "Name": "test_sponza_material_conversion",
+ "Components": {
+ "Component_[11355906858588942318]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 11355906858588942318
+ },
+ "Component_[12303631836799763574]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 12303631836799763574
+ },
+ "Component_[13884330903538620487]": {
+ "$type": "SelectionComponent",
+ "Id": 13884330903538620487
+ },
+ "Component_[14017626015546393905]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 14017626015546393905
+ },
+ "Component_[15706249274315432595]": {
+ "$type": "EditorLockComponent",
+ "Id": 15706249274315432595
+ },
+ "Component_[17662098699702294917]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 17662098699702294917
+ },
+ "Component_[1984406083399463185]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 1984406083399463185
+ },
+ "Component_[3645983967515381372]": {
+ "$type": "EditorPrefabComponent",
+ "Id": 3645983967515381372
+ },
+ "Component_[7000715958539023355]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 7000715958539023355
+ },
+ "Component_[7182760741886065388]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 7182760741886065388,
+ "Parent Entity": "",
+ "Cached World Transform Parent": ""
+ },
+ "Component_[7314978375961307600]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7314978375961307600
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entities": {
+ "Entity_[1220355829629]": {
+ "Id": "Entity_[1220355829629]",
+ "Name": "GiTestProbe",
+ "Components": {
+ "Component_[12581383605035992405]": {
+ "$type": "SelectionComponent",
+ "Id": 12581383605035992405
+ },
+ "Component_[14182862666898786767]": {
+ "$type": "AZ::Render::EditorReflectionProbeComponent",
+ "Id": 14182862666898786767,
+ "Controller": {
+ "Configuration": {
+ "OuterHeight": 8.0,
+ "OuterLength": 8.0,
+ "OuterWidth": 8.0,
+ "InnerHeight": 8.0,
+ "InnerLength": 8.0,
+ "InnerWidth": 8.0,
+ "BakedCubeMapRelativePath": "ReflectionProbes/GiTestProbe__0564394E-2435-488E-A30C-E999F79FB049__iblspecularcm256.dds",
+ "BakedCubeMapAsset": {
+ "assetId": {
+ "guid": "{B05482A4-7D4D-5C6D-96DD-54CB9A227307}",
+ "subId": 2000
+ },
+ "loadBehavior": "PreLoad",
+ "assetHint": "reflectionprobes/gitestprobe__0564394e-2435-488e-a30c-e999f79fb049__iblspecularcm256.dds.streamingimage"
+ },
+ "EntityId": 12080580926711778904
+ }
+ },
+ "bakedCubeMapRelativePath": "ReflectionProbes/GiTestProbe__0564394E-2435-488E-A30C-E999F79FB049__iblspecularcm256.dds"
+ },
+ "Component_[16557111097824744403]": {
+ "$type": "EditorBoxShapeComponent",
+ "Id": 16557111097824744403,
+ "BoxShape": {
+ "Configuration": {
+ "Dimensions": [
+ 8.0,
+ 8.0,
+ 8.0
+ ]
+ }
+ }
+ },
+ "Component_[16623349159368925155]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 16623349159368925155
+ },
+ "Component_[17588593493138070858]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 17588593493138070858
+ },
+ "Component_[18332655128892032441]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 18332655128892032441
+ },
+ "Component_[344586797989012598]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 344586797989012598,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ 4.0
+ ]
+ },
+ "Cached World Transform": {
+ "Translation": [
+ 0.0,
+ 0.0,
+ 4.099999904632568
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[5703653759245493769]": {
+ "$type": "EditorLockComponent",
+ "Id": 5703653759245493769
+ },
+ "Component_[7030857297912025340]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7030857297912025340,
+ "DisabledComponents": [
+ {
+ "$type": "AZ::Render::EditorDiffuseProbeGridComponent",
+ "Id": 1614505811629141904,
+ "Controller": {
+ "Configuration": {
+ "ProbeSpacing": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "Extents": [
+ 8.0,
+ 8.0,
+ 8.0
+ ]
+ }
+ },
+ "probeSpacingX": 0.5,
+ "probeSpacingY": 0.5,
+ "probeSpacingZ": 0.5
+ }
+ ]
+ },
+ "Component_[7984183259827618750]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 7984183259827618750
+ },
+ "Component_[827806435204448771]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 827806435204448771
+ },
+ "Component_[8673278437899912468]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 8673278437899912468
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1224650796925]": {
+ "Id": "Entity_[1224650796925]",
+ "Name": "Camera",
+ "Components": {
+ "Component_[10395754987446042279]": {
+ "$type": "AZ::Render::EditorPostFxLayerComponent",
+ "Id": 10395754987446042279
+ },
+ "Component_[11895140916889160460]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11895140916889160460
+ },
+ "Component_[16880285896855930892]": {
+ "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+ "Id": 16880285896855930892,
+ "Controller": {
+ "Configuration": {
+ "Field of View": 55.0,
+ "EditorEntityId": 8929576024571800510
+ }
+ }
+ },
+ "Component_[17187464423780271193]": {
+ "$type": "EditorLockComponent",
+ "Id": 17187464423780271193
+ },
+ "Component_[17495696818315413311]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 17495696818315413311
+ },
+ "Component_[1798550073623453489]": {
+ "$type": "AZ::Render::EditorExposureControlComponent",
+ "Id": 1798550073623453489,
+ "Controller": {
+ "Configuration": {
+ "ExposureControlType": 1
+ }
+ }
+ },
+ "Component_[18086214374043522055]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 18086214374043522055,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 1.7387686967849732,
+ 1.752368450164795,
+ 5.225453853607178
+ ],
+ "Rotate": [
+ 34.95081329345703,
+ -29.21880340576172,
+ 145.06878662109376
+ ]
+ },
+ "Cached World Transform": {
+ "Translation": [
+ 1.7387685775756837,
+ 1.7523683309555054,
+ 5.325453281402588
+ ],
+ "Rotation": [
+ -0.14265206456184388,
+ -0.3503122329711914,
+ 0.8573471903800964,
+ 0.3491239547729492
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[18387556550380114975]": {
+ "$type": "SelectionComponent",
+ "Id": 18387556550380114975
+ },
+ "Component_[2654521436129313160]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 2654521436129313160
+ },
+ "Component_[5265045084611556958]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5265045084611556958
+ },
+ "Component_[7169798125182238623]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 7169798125182238623
+ },
+ "Component_[8866210352157164042]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 8866210352157164042
+ },
+ "Component_[9129253381063760879]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 9129253381063760879
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1228945764221]": {
+ "Id": "Entity_[1228945764221]",
+ "Name": "Global Sky",
+ "Components": {
+ "Component_[11231930600558681245]": {
+ "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+ "Id": 11231930600558681245,
+ "Controller": {
+ "Configuration": {
+ "CubemapAsset": {
+ "assetId": {
+ "guid": "{874DA395-146F-5198-90AD-532F18954407}",
+ "subId": 1000
+ },
+ "assetHint": "testdata/white_latlong_iblskyboxcm.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[11980494120202836095]": {
+ "$type": "SelectionComponent",
+ "Id": 11980494120202836095
+ },
+ "Component_[1428633914413949476]": {
+ "$type": "EditorLockComponent",
+ "Id": 1428633914413949476
+ },
+ "Component_[14936200426671614999]": {
+ "$type": "AZ::Render::EditorImageBasedLightComponent",
+ "Id": 14936200426671614999,
+ "Controller": {
+ "Configuration": {
+ "diffuseImageAsset": {
+ "assetId": {
+ "guid": "{874DA395-146F-5198-90AD-532F18954407}",
+ "subId": 3000
+ },
+ "assetHint": "testdata/white_latlong_iblskyboxcm_ibldiffuse.exr.streamingimage"
+ },
+ "specularImageAsset": {
+ "assetId": {
+ "guid": "{874DA395-146F-5198-90AD-532F18954407}",
+ "subId": 2000
+ },
+ "assetHint": "testdata/white_latlong_iblskyboxcm_iblspecular.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[14994774102579326069]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 14994774102579326069
+ },
+ "Component_[15417479889044493340]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 15417479889044493340
+ },
+ "Component_[15826613364991382688]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 15826613364991382688
+ },
+ "Component_[1665003113283562343]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 1665003113283562343
+ },
+ "Component_[3704934735944502280]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 3704934735944502280
+ },
+ "Component_[5698542331457326479]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 5698542331457326479
+ },
+ "Component_[6644513399057217122]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 6644513399057217122,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ -0.10000000149011612
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[931091830724002070]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 931091830724002070
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1233240731517]": {
+ "Id": "Entity_[1233240731517]",
+ "Name": "Shader Ball",
+ "Components": {
+ "Component_[10789351944715265527]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 10789351944715265527
+ },
+ "Component_[12037033284781049225]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 12037033284781049225
+ },
+ "Component_[13759153306105970079]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 13759153306105970079
+ },
+ "Component_[14135560884830586279]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 14135560884830586279
+ },
+ "Component_[16247165675903986673]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 16247165675903986673
+ },
+ "Component_[18082433625958885247]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 18082433625958885247
+ },
+ "Component_[6472623349872972660]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 6472623349872972660,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Rotate": [
+ 0.0,
+ 0.10000000149011612,
+ 180.0
+ ]
+ },
+ "Cached World Transform": {
+ "Translation": [
+ 0.0,
+ 0.0,
+ 0.10000000149011612
+ ],
+ "Rotation": [
+ 0.0008726645028218627,
+ 0.0,
+ 0.9999996423721314,
+ 0.0
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[6495255223970673916]": {
+ "$type": "AZ::Render::EditorMeshComponent",
+ "Id": 6495255223970673916,
+ "Controller": {
+ "Configuration": {
+ "ModelAsset": {
+ "assetId": {
+ "guid": "{FD340C30-755C-5911-92A3-19A3F7A77931}",
+ "subId": 281415304
+ },
+ "assetHint": "objects/shaderball/shaderball_default_1m.azmodel"
+ }
+ }
+ }
+ },
+ "Component_[8056625192494070973]": {
+ "$type": "SelectionComponent",
+ "Id": 8056625192494070973
+ },
+ "Component_[8550141614185782969]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 8550141614185782969
+ },
+ "Component_[9439770997198325425]": {
+ "$type": "EditorLockComponent",
+ "Id": 9439770997198325425
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1237535698813]": {
+ "Id": "Entity_[1237535698813]",
+ "Name": "Sun",
+ "Components": {
+ "Component_[10440557478882592717]": {
+ "$type": "SelectionComponent",
+ "Id": 10440557478882592717
+ },
+ "Component_[13620450453324765907]": {
+ "$type": "EditorLockComponent",
+ "Id": 13620450453324765907
+ },
+ "Component_[2134313378593666258]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 2134313378593666258
+ },
+ "Component_[234010807770404186]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 234010807770404186
+ },
+ "Component_[2970359110423865725]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 2970359110423865725
+ },
+ "Component_[3722854130373041803]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3722854130373041803
+ },
+ "Component_[5992533738676323195]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5992533738676323195
+ },
+ "Component_[7378860763541895402]": {
+ "$type": "AZ::Render::EditorDirectionalLightComponent",
+ "Id": 7378860763541895402,
+ "Controller": {
+ "Configuration": {
+ "Intensity": 0.0,
+ "CameraEntityId": "",
+ "ShadowFilterMethod": 1
+ }
+ }
+ },
+ "Component_[7892834440890947578]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 7892834440890947578,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ 13.38704299926758
+ ],
+ "Rotate": [
+ -76.1310043334961,
+ -0.8469989895820618,
+ -15.8100004196167
+ ]
+ },
+ "Cached World Transform": {
+ "Translation": [
+ 0.0,
+ 0.0,
+ 13.487043380737305
+ ],
+ "Rotation": [
+ -0.609886109828949,
+ -0.09055805951356888,
+ -0.10376212745904924,
+ 0.7804304361343384
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[8599729549570828259]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 8599729549570828259
+ },
+ "Component_[952797371922080273]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 952797371922080273
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1241830666109]": {
+ "Id": "Entity_[1241830666109]",
+ "Name": "Ground",
+ "Components": {
+ "Component_[11701138785793981042]": {
+ "$type": "SelectionComponent",
+ "Id": 11701138785793981042
+ },
+ "Component_[12260880513256986252]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 12260880513256986252
+ },
+ "Component_[13711420870643673468]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 13711420870643673468
+ },
+ "Component_[138002849734991713]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 138002849734991713
+ },
+ "Component_[16578565737331764849]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 16578565737331764849,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ -0.10000000149011612
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[16919232076966545697]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 16919232076966545697
+ },
+ "Component_[5182430712893438093]": {
+ "$type": "EditorMaterialComponent",
+ "Id": 5182430712893438093,
+ "materialSlots": [
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
+ "subId": 803645540
+ }
+ }
+ }
+ ],
+ "materialSlotsByLod": [
+ [
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
+ "subId": 803645540
+ }
+ }
+ }
+ ]
+ ]
+ },
+ "Component_[5675108321710651991]": {
+ "$type": "AZ::Render::EditorMeshComponent",
+ "Id": 5675108321710651991,
+ "Controller": {
+ "Configuration": {
+ "ModelAsset": {
+ "assetId": {
+ "guid": "{0CD745C0-6AA8-569A-A68A-73A3270986C4}",
+ "subId": 277889906
+ },
+ "assetHint": "objects/groudplane/groundplane_512x512m.azmodel"
+ }
+ }
+ }
+ },
+ "Component_[5681893399601237518]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 5681893399601237518
+ },
+ "Component_[592692962543397545]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 592692962543397545
+ },
+ "Component_[7090012899106946164]": {
+ "$type": "EditorLockComponent",
+ "Id": 7090012899106946164
+ },
+ "Component_[9410832619875640998]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 9410832619875640998
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1246125633405]": {
+ "Id": "Entity_[1246125633405]",
+ "Name": "Grid",
+ "Components": {
+ "Component_[11443347433215807130]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11443347433215807130
+ },
+ "Component_[11779275529534764488]": {
+ "$type": "SelectionComponent",
+ "Id": 11779275529534764488
+ },
+ "Component_[14249419413039427459]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 14249419413039427459
+ },
+ "Component_[15448581635946161318]": {
+ "$type": "AZ::Render::EditorGridComponent",
+ "Id": 15448581635946161318,
+ "Controller": {
+ "Configuration": {
+ "primarySpacing": 4.0,
+ "primaryColor": [
+ 0.501960813999176,
+ 0.501960813999176,
+ 0.501960813999176
+ ],
+ "secondarySpacing": 0.5,
+ "secondaryColor": [
+ 0.250980406999588,
+ 0.250980406999588,
+ 0.250980406999588
+ ]
+ }
+ }
+ },
+ "Component_[1843303322527297409]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 1843303322527297409
+ },
+ "Component_[380249072065273654]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 380249072065273654,
+ "Parent Entity": "Entity_[1250420600701]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ -0.10000000149011612
+ ]
+ },
+ "Cached World Transform Parent": "Entity_[1250420600701]"
+ },
+ "Component_[7476660583684339787]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 7476660583684339787
+ },
+ "Component_[7557626501215118375]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 7557626501215118375
+ },
+ "Component_[7984048488947365511]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 7984048488947365511
+ },
+ "Component_[8118181039276487398]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 8118181039276487398
+ },
+ "Component_[9189909764215270515]": {
+ "$type": "EditorLockComponent",
+ "Id": 9189909764215270515
+ }
+ },
+ "IsDependencyReady": true
+ },
+ "Entity_[1250420600701]": {
+ "Id": "Entity_[1250420600701]",
+ "Name": "test_sponza_material_conversion",
+ "Components": {
+ "Component_[11342679732910125733]": {
+ "$type": "AZ::Render::EditorMeshComponent",
+ "Id": 11342679732910125733,
+ "Controller": {
+ "Configuration": {
+ "ModelAsset": {
+ "assetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 273579101
+ },
+ "assetHint": "testdata/test_sponza_material_conversion.azmodel"
+ }
+ }
+ }
+ },
+ "Component_[11482250315251448254]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11482250315251448254
+ },
+ "Component_[12520362418832404237]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 12520362418832404237
+ },
+ "Component_[13922696236864086628]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 13922696236864086628,
+ "ComponentOrderEntryArray": [
+ {
+ "ComponentId": 9795135998007712828
+ },
+ {
+ "ComponentId": 11342679732910125733,
+ "SortIndex": 1
+ },
+ {
+ "ComponentId": 14504829236779989058,
+ "SortIndex": 2
+ }
+ ]
+ },
+ "Component_[14504829236779989058]": {
+ "$type": "EditorMaterialComponent",
+ "Id": 14504829236779989058,
+ "Controller": {
+ "Configuration": {
+ "materials": [
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 40852248
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{1D8B391C-DEB3-549E-9A30-14A6989B1B50}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_floor.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 842740826
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{F3C97FF0-8FC7-5207-9E97-21D680962068}"
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 1262202891
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{AF16DFCF-E1E9-57B9-8F01-A49AAC1962AE}"
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2438226774
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{4310E0FE-532D-5436-A946-49B2E14B0375}"
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2816279700
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{6339FEBB-4293-5CEF-809A-2BE072AC94D6}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_bricks.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3157644117
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{3EF8BEDB-8DE0-5550-A994-D542086622B7}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_arch.azmaterial"
+ },
+ "PropertyOverrides": {
+ "general.applySpecularAA": {
+ "$type": "bool",
+ "Value": true
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3208782114
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{CCA05CBE-2606-59A3-91A9-E46F97980A38}"
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3591631827
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{B45DCFD4-6B12-5212-AB92-B64E064155CE}"
+ }
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3888291602
+ }
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{E6A159AA-989D-5534-8550-1E002148AC84}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_roof.azmaterial"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "materialSlots": [
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 842740826
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{F3C97FF0-8FC7-5207-9E97-21D680962068}"
+ }
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3208782114
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{CCA05CBE-2606-59A3-91A9-E46F97980A38}"
+ }
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3157644117
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{3EF8BEDB-8DE0-5550-A994-D542086622B7}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_arch.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2816279700
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{6339FEBB-4293-5CEF-809A-2BE072AC94D6}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_bricks.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 40852248
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{1D8B391C-DEB3-549E-9A30-14A6989B1B50}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_floor.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3888291602
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{E6A159AA-989D-5534-8550-1E002148AC84}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_roof.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2438226774
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{4310E0FE-532D-5436-A946-49B2E14B0375}"
+ }
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 1262202891
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{AF16DFCF-E1E9-57B9-8F01-A49AAC1962AE}"
+ }
+ }
+ },
+ {
+ "id": {
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3591631827
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{B45DCFD4-6B12-5212-AB92-B64E064155CE}"
+ }
+ }
+ }
+ ],
+ "materialSlotsByLod": [
+ [
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 842740826
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{F3C97FF0-8FC7-5207-9E97-21D680962068}"
+ }
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3208782114
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{CCA05CBE-2606-59A3-91A9-E46F97980A38}"
+ }
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3157644117
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{3EF8BEDB-8DE0-5550-A994-D542086622B7}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_arch.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2816279700
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{6339FEBB-4293-5CEF-809A-2BE072AC94D6}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_bricks.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 40852248
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{1D8B391C-DEB3-549E-9A30-14A6989B1B50}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_floor.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3888291602
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{E6A159AA-989D-5534-8550-1E002148AC84}"
+ },
+ "assetHint": "testdata/test_sponza_material_conversion_mat_roof.azmaterial"
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 2438226774
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{4310E0FE-532D-5436-A946-49B2E14B0375}"
+ }
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 1262202891
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{AF16DFCF-E1E9-57B9-8F01-A49AAC1962AE}"
+ }
+ }
+ },
+ {
+ "id": {
+ "lodIndex": 0,
+ "materialAssetId": {
+ "guid": "{7D2F89D6-2634-5EE6-A122-638377C0CB21}",
+ "subId": 3591631827
+ }
+ },
+ "materialAsset": {
+ "assetId": {
+ "guid": "{B45DCFD4-6B12-5212-AB92-B64E064155CE}"
+ }
+ }
+ }
+ ]
+ ]
+ },
+ "Component_[16137637180608547307]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 16137637180608547307
+ },
+ "Component_[17072211258387308642]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 17072211258387308642
+ },
+ "Component_[2587501640342227295]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 2587501640342227295
+ },
+ "Component_[4820742733748380832]": {
+ "$type": "SelectionComponent",
+ "Id": 4820742733748380832
+ },
+ "Component_[5027382790057670521]": {
+ "$type": "EditorLockComponent",
+ "Id": 5027382790057670521
+ },
+ "Component_[7651519254420083868]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 7651519254420083868,
+ "ChildEntityOrderEntryArray": [
+ {
+ "EntityId": "Entity_[1246125633405]"
+ },
+ {
+ "EntityId": "Entity_[1228945764221]",
+ "SortIndex": 1
+ },
+ {
+ "EntityId": "Entity_[1220355829629]",
+ "SortIndex": 2
+ },
+ {
+ "EntityId": "Entity_[1224650796925]",
+ "SortIndex": 3
+ },
+ {
+ "EntityId": "Entity_[1233240731517]",
+ "SortIndex": 4
+ },
+ {
+ "EntityId": "Entity_[1237535698813]",
+ "SortIndex": 5
+ },
+ {
+ "EntityId": "Entity_[1241830666109]",
+ "SortIndex": 6
+ }
+ ]
+ },
+ "Component_[9795135998007712828]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 9795135998007712828,
+ "Parent Entity": "ContainerEntity",
+ "Cached World Transform": {
+ "Translation": [
+ 0.0,
+ 0.0,
+ 0.10000000149011612
+ ]
+ },
+ "Cached World Transform Parent": "ContainerEntity"
+ }
+ },
+ "IsDependencyReady": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion.fbx b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion.fbx
new file mode 100644
index 0000000000..638828984a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion.fbx
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b936b72b5b45b52c188bf9f930d6066af65f0d79ff8abf5dc08927d97ac465e
+size 55264
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_black.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_black.material
new file mode 100644
index 0000000000..cc2c9e785b
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_black.material
@@ -0,0 +1,35 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_green.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_green.material
new file mode 100644
index 0000000000..a4bfb73d12
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_green.material
@@ -0,0 +1,35 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.0,
+ 1.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 1.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_arch.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_arch.material
new file mode 100644
index 0000000000..fe9c54bc02
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_arch.material
@@ -0,0 +1,49 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.800000011920929,
+ 1.0
+ ],
+ "textureMap": "Textures/arch_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.885053813457489,
+ 0.801281750202179,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "Textures/arch_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "Textures/arch_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "Textures/arch_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.050999999046325687,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "Textures/arch_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_bricks.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_bricks.material
new file mode 100644
index 0000000000..a19afa33e2
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_bricks.material
@@ -0,0 +1,54 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.800000011920929,
+ 1.0
+ ],
+ "textureMap": "Textures/bricks_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "Textures/bricks_1k_normal.jpg",
+ "roughness": 0.5
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.9703211784362793,
+ 0.9703211784362793,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "Textures/bricks_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "Textures/bricks_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "Textures/bricks_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "algorithm": "ContactRefinement",
+ "factor": 0.03500000014901161,
+ "quality": "Medium",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "Textures/bricks_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_floor.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_floor.material
new file mode 100644
index 0000000000..0c1208d8fb
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_floor.material
@@ -0,0 +1,51 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.800000011920929,
+ 1.0
+ ],
+ "textureMap": "Textures/floor_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "enable": true,
+ "influenceMap": "Textures/floor_1k_ao.png",
+ "normalMap": "Textures/floor_1k_normal.png",
+ "roughness": 0.25
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.9404135346412659,
+ 0.8688944578170776,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "Textures/floor_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "Textures/floor_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.012000000104308129,
+ "pdo": true,
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "Textures/floor_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_roof.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_roof.material
new file mode 100644
index 0000000000..6aad4d644a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_mat_roof.material
@@ -0,0 +1,44 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.800000011920929,
+ 1.0
+ ],
+ "textureBlendMode": "Lerp",
+ "textureMap": "Textures/roof_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "metallic": {
+ "useTexture": false
+ },
+ "normal": {
+ "factor": 0.5,
+ "flipY": true,
+ "textureMap": "Textures/roof_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "Textures/roof_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "algorithm": "ContactRefinement",
+ "factor": 0.019999999552965165,
+ "quality": "Medium",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "Textures/roof_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_phong5.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_phong5.material
new file mode 100644
index 0000000000..302589dc85
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_phong5.material
@@ -0,0 +1,35 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.0,
+ 0.0,
+ 1.0,
+ 1.0
+ ]
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.0,
+ 1.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_red.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_red.material
new file mode 100644
index 0000000000..5217a4e4be
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_red.material
@@ -0,0 +1,35 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_white.material b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_white.material
new file mode 100644
index 0000000000..dba44f7b49
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/Test_Sponza_Material_Conversion_white.material
@@ -0,0 +1,19 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/TestData/white_latlong_iblskyboxcm.exr b/AutomatedTesting/Gem/Sponza/Assets/TestData/white_latlong_iblskyboxcm.exr
new file mode 100644
index 0000000000..56d66de7fc
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/TestData/white_latlong_iblskyboxcm.exr
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9c14dc81887be7647d9afa9e5481634eded0b1d0285b59bb76bb2a91326ca8a
+size 3369
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_ao.png
new file mode 100644
index 0000000000..8bc54f1e55
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f21e251c50a657956ba8b401f102b8a3237a0c9c78eab0427332eb3ad8f5952
+size 281259
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_basecolor.png
new file mode 100644
index 0000000000..c8c21bbfea
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b37ec99d6f8d26b8313315d801b9c378456ed9ec31cc2e0566c17ea3287b4fa
+size 1643629
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_height.png
new file mode 100644
index 0000000000..425f2f4a74
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57657925d24ceb83881e614b3056b82dfc7197a3eebbb707a47f6721249d47c3
+size 108869
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_normal.jpg
new file mode 100644
index 0000000000..511d4412f8
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc5a747fef8c4d830b72e250645925f41125ea75c18b6fb094cafe7b19850ca5
+size 70950
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_roughness.png
new file mode 100644
index 0000000000..eb9ddee5f2
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/arch_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8438ee2f06842f54e493fe1eda34b6ca39e6db19d2e0f21342f0f4e52fc3f1e3
+size 689118
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_ao.png
new file mode 100644
index 0000000000..6ca9f441b1
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0e59f003d7c8d26e7ec8460acec442f31cf7a06eb76008989c1ae6fccd8e2f15
+size 537441
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_basecolor.png
new file mode 100644
index 0000000000..a1684d404f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1c69c97ffc402d63130b680af75128b431504c4dedcbd15a5fbb41c142317fe
+size 1305835
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_height.png
new file mode 100644
index 0000000000..e03e062c98
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6650f449128dee04f513961b9d65d81105f2bd4fa580f4dbd9d6fb7b0af932bc
+size 275302
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_metallic.png
new file mode 100644
index 0000000000..c7bceabff2
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f482b7b57d180c6df76b750d05547151731fc6c61d2b9674f3b9daa5ab0ac225
+size 440844
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_normal.jpg
new file mode 100644
index 0000000000..29f27d2bd5
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:955f60ebbe10948e9d47cb90e0e0359c4ee26bd8e76d95292a673a2adb68f410
+size 82102
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_roughness.png
new file mode 100644
index 0000000000..689da83af7
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/background_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5d0f40ab7b5153a44b87ee0c83c65ddc69cf845d16c8c9c3c2c043f85c1f04f
+size 542782
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_ao.png
new file mode 100644
index 0000000000..4b608a456f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e3d169b73a2852e404eaa113e91d32b66e0d45a1b55598cc58f64e16c9565bf9
+size 729137
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_basecolor.png
new file mode 100644
index 0000000000..cf78cde324
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f34b38f6e205b6bffec72ddfd1305a66d0146d61bcc2ef901fd146a0ec2708de
+size 1934899
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_height.png
new file mode 100644
index 0000000000..b4f639e01d
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9745b60c53a4b9fa33a6a3713b9b06ec7679883524533de44628cfe0d26ae038
+size 377230
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_normal.jpg
new file mode 100644
index 0000000000..e097988246
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:03eba2d92ed70e04d5278152e945cf3a170750b71a04fd0f835fd6030b731720
+size 166767
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_roughness.png
new file mode 100644
index 0000000000..9573d6ca3e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/bricks_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e35858a269d42405702102e7f7972a6330c3eaacfe637148c676e14d5c901c29
+size 784675
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_ao.png
new file mode 100644
index 0000000000..fd87eefdbd
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:22b80bfc1226fb587b230c51e9dac7fce6e295a4f0674326e96dc1232f40548b
+size 901463
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_basecolor.png
new file mode 100644
index 0000000000..161272e604
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6743770a3428721a42a25a331fdb1e9895f71848c8215377e690b7cf9b7397f
+size 1756093
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_height.png
new file mode 100644
index 0000000000..36b0f61834
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:756105faa27e722d6cc5915f33f8bcf9fd7afc022c41276a8c0e3b1f122303a3
+size 501917
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_normal.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_normal.png
new file mode 100644
index 0000000000..870d38abe9
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_normal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:08fa78ce8e7840189d22442ed46863b4eaf5a4a99c0655690a2c47b1b0ebd9ce
+size 1399902
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_roughness.png
new file mode 100644
index 0000000000..c5ce447017
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/ceiling_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c24b269cd413b86da8cdd44bb639f3b95cfd1a8c53a3a941cb5a22a1042f85d
+size 689214
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_alpha.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_alpha.png
new file mode 100644
index 0000000000..13f145b733
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_alpha.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:30a1308326a5b0288147d0fb92230ebd1cef107180e38f7d5795bdc13a62e368
+size 3389
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_basecolor.png
new file mode 100644
index 0000000000..8c6384ed12
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:51c661aa2ee3fb4b4735005a71e734eb25e433ef73ded5131b110e4df2e94acf
+size 384316
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_normal.jpg
new file mode 100644
index 0000000000..4a5575731f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/chain_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4619ec32e2de143db42639e0a4e0dfb174eb85057eb20f9e0d0af59e40977d9a
+size 11229
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_ao.png
new file mode 100644
index 0000000000..ec340ea1a0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a505d441c79f3ab674fd5a6b879a430970400fb9f56b379dde00900da296a47e
+size 599094
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_basecolor.png
new file mode 100644
index 0000000000..b6f499c922
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:552608851205bde18e2bc2f7cbf475ccefbb182c7bfcb9430fa931da22363c80
+size 1836310
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_height.png
new file mode 100644
index 0000000000..704638918a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79f1c3430a193ee78c72b84a461612ffd79aa23374949af13a200ec9a301ba2d
+size 274678
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_normal.jpg
new file mode 100644
index 0000000000..dc90933767
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d280d5676ccfd6e4b6efdc53e828cc6823f44339a87ec9cee8a79d989ad46175
+size 127305
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_roughness.png
new file mode 100644
index 0000000000..a7221fc001
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnA_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5c4fb7c8012891c7af4ff371c8e6a8ef85ef1160a5b93012b964158ab48b8e4a
+size 760602
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_ao.png
new file mode 100644
index 0000000000..9cf3966fba
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a9fe904a58b248937adde2b48ba320da5139700d03e3183fbadfaaa0ac8bb6f5
+size 651508
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_basecolor.png
new file mode 100644
index 0000000000..8315166b41
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:37d461594dca7eb3da8f6f135511d38efc7c1f333afb98d286fb36a0034f3100
+size 2158620
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_height.png
new file mode 100644
index 0000000000..30bd2b0585
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8e95e08eed20fb4d44a6461f38f27f21fd3ae3f024550afed95ecf3bc30929b1
+size 297329
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_normal.jpg
new file mode 100644
index 0000000000..9299417a78
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b00b684b53854ec24e86441e59220e6c49948429bd6fb7edab7058a11e8f92e
+size 139998
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_roughness.png
new file mode 100644
index 0000000000..4f4c674c6e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnB_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a6d428bf17ecee32d47c3feab27567a882b97dfa733dcf6ca8bf1b0bd0a025a
+size 908698
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_ao.png
new file mode 100644
index 0000000000..763aaedc50
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ab2c93badd7b72f45990c3859d6ddc7f2436a4aa5e93c0de65a139ea99120a97
+size 628789
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_basecolor.png
new file mode 100644
index 0000000000..f8f34d9232
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97ec8bd597b0805a8a36bcd90ccdba2ae9430ed3a8631b0f7f87796fb2ceefc5
+size 2128105
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_height.png
new file mode 100644
index 0000000000..46a96abc24
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f8bbbc46f0f1ccfefec202b1e26ecbd418d3283037746bd63a892d1a930fb36d
+size 282637
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_normal.jpg
new file mode 100644
index 0000000000..270b9d12d1
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44db84371fb81e1712b5f6aa9777fcfe76728dc25a51f0423e07c294b062c724
+size 137528
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_roughness.png
new file mode 100644
index 0000000000..8682bae62c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/columnC_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c07d4a1af570a6b3817e97c92daa17f2593ea2b88e0e167ed43f7869b77971ab
+size 881064
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainBlue_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainBlue_1k_basecolor.png
new file mode 100644
index 0000000000..b6b394e860
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainBlue_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4310237ce83738635b3880ccd896f78ea2c70bebadd620cb6ffaaccc78ba7cbf
+size 9231896
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainGreen_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainGreen_1k_basecolor.png
new file mode 100644
index 0000000000..59e47b4e75
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainGreen_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e093cf9538bb40615d32bec6fa9c60d4308bc017c5ab02a7c388310159bc87fe
+size 8342440
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainRed_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainRed_1k_basecolor.png
new file mode 100644
index 0000000000..dc708deba0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtainRed_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:465efab4da8d2b6698c83844d2fbe662e38a92f278aa27d356bbc1bca1e23f8b
+size 8879938
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_ao.png
new file mode 100644
index 0000000000..fcce123429
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4faebdc849479a6b5d10db4cac8b6e9823bf447aeb4b45945f6acd43333def8
+size 4557863
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_height.png
new file mode 100644
index 0000000000..c983ec6ca8
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:064fbdba14e1ca04e438f4ec85d3f9a0fe3203620ee2a014113ec99454fbee65
+size 2709058
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_metallic.png
new file mode 100644
index 0000000000..cf63b48d04
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c8159b1ad888143ec3cbf5e2535f87abbe238a1474619696355d11bc4e4bb49
+size 812014
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_normal.jpg
new file mode 100644
index 0000000000..d677f3650b
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0da92f21f46502a7c58c1a7ce7280354b4b41e553a5bf181d9962cacf8ed2191
+size 2327816
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_roughness.png
new file mode 100644
index 0000000000..60e2328213
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/curtain_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a701afeb01e19efdff72393370c86ee148f6d81c1551bcbd211937df503be9b
+size 3694284
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_ao.png
new file mode 100644
index 0000000000..ed4d761fdb
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:368262bb832ab61b4649aadffe4158b64d46b70985e99106300fa0c7a7989c35
+size 666377
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_basecolor.png
new file mode 100644
index 0000000000..090f5eaef8
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2021b64706bc328959d521f056dcb9b9acf3062a5f9ad35da9e93b2351dcab97
+size 1371185
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_height.png
new file mode 100644
index 0000000000..8cfe37da45
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fdbb251cf483ffccc6cb1b344eba1b3262fa8087c37a36aa843f0c0e9d222f8f
+size 403018
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_metallic.png
new file mode 100644
index 0000000000..fe1ced8718
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8b67d6bea4c9fbc8412944b261a0c0f2dc1dc2e4103a6742bfb57d3c2d36429c
+size 499028
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_normal.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_normal.png
new file mode 100644
index 0000000000..be8a9932e9
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_normal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae4c4d95bb92dfe25f5fba8564780c10ee663268360fccf1aa707b6c7c6a079c
+size 1121073
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_roughness.png
new file mode 100644
index 0000000000..dc633ad668
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/details_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5429087af4e8c33d19b2f13bd194c983bcdbe0c43165bea3dc0711874c2e50b9
+size 523398
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricBlue_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricBlue_1k_basecolor.png
new file mode 100644
index 0000000000..54373a9f98
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricBlue_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a1b6588cfdaa69b671ba879aa56712e88d6fcd74c160a751440441c9f18c727b
+size 2102967
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricGreen_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricGreen_1k_basecolor.png
new file mode 100644
index 0000000000..c77a44eca9
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricGreen_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:09c5ff45b66e5a65746c9bef6cbad8a897f58552b896ca6692e5498d91da71ab
+size 2166239
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricPurple_2k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricPurple_2k_basecolor.png
new file mode 100644
index 0000000000..c6ef949040
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricPurple_2k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abd3b68e5c2982ef558593017bd4c7a6e3f23681827aa8b8e19dbe21564493e2
+size 1158454
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricRed_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricRed_1k_basecolor.png
new file mode 100644
index 0000000000..ab603245df
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabricRed_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27ee68e81cb549f65e437debaf97f8eaa57a0f6975a15adee7f395a8bb6f0028
+size 2211896
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_ao.png
new file mode 100644
index 0000000000..f4ae398a33
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d3ddbc3833531aba81f9e16fcc1e9c88af1c8b329a8e8a4dfb6a9df08913085a
+size 977058
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_height.png
new file mode 100644
index 0000000000..f891a127a4
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f44f224b5a162f56ad0e8b931f781eed5fdbfd5a8b9b143aedb5ab69f5c3ca29
+size 564113
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_metallic.png
new file mode 100644
index 0000000000..7de5d2d8ce
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c456fec0df8f7c72680b855a2c8dd183014429e93bce68a4b2c38059a765c5b6
+size 126769
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_normal.jpg
new file mode 100644
index 0000000000..928bd38b87
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee04cb3dc6a718510f662ae06e04fe8fe52230472f4a504a4a513ab3ab344790
+size 479191
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_roughness.png
new file mode 100644
index 0000000000..63fe4a8b2f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/fabric_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4097ae87d2d55653c44efa6c607da9513f35057a2556f2f41cd412e1ef447dc4
+size 755476
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_ao.png
new file mode 100644
index 0000000000..ee5613ebcb
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ce7d28833be640b1b4809040580b25bc5ed0caa10f9fcb8b7f28c5b952102d5
+size 689711
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_basecolor.png
new file mode 100644
index 0000000000..431210e5ee
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd515352a030a1a8cf766dfbf9ff78ce27608349e7b661e48d5ec0b59c6d5a93
+size 1376341
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_height.png
new file mode 100644
index 0000000000..2dd9284a27
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:883499e06b12d8f25d3381954d56c34aefc9346a972c3a6a21ec5bb34029160c
+size 427516
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_metallic.png
new file mode 100644
index 0000000000..4ed2320ab8
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5291109e90b65a1581ea05046d01c6918c10c87805790af915d62e57acd2d29a
+size 1148004
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_normal.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_normal.png
new file mode 100644
index 0000000000..4913bf9352
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_normal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40b175859bf806237bee5ea72efc935b2dd28e3f6198d0604d5e474aea3725c7
+size 1215323
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_roughness.png
new file mode 100644
index 0000000000..f7ea0b06f0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/flagpole_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24fdf0849349745e7abdd0c42baa82ec2cc2d5b5a9c1a683bbf677a156251316
+size 1316334
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_ao.png
new file mode 100644
index 0000000000..2a3e9ac3db
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:04fba251cdae222d9f82b6cf6d1e8135ee1e066911967489f8c07ba20d076b14
+size 436348
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_basecolor.png
new file mode 100644
index 0000000000..3a79998f5b
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80d91120f7213e835e342c150386e468865c5b68994915e9febf54c5cc83cf5a
+size 1883340
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_height.png
new file mode 100644
index 0000000000..f4fa9f2604
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bf6fd8259710d106daab4c459172ed3e98f29640d655b238a462cd36039be40a
+size 543386
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_metallic.png
new file mode 100644
index 0000000000..fdb6071b7c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:89ef6e57efdf8c232b771a4ff988799f9f4ae5aefe2149578c9fa661b8f66cd9
+size 1062809
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_normal.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_normal.png
new file mode 100644
index 0000000000..2e24080b5c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_normal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d1dd751aaed6dce2085e1a886be1d72845dd68df34d33cc8401618b03aed991
+size 1509938
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_roughness.png
new file mode 100644
index 0000000000..083cda1634
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/floor_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb0a952c7976e646a5c14b222e23a8fde2510425567e12c73c6f6dc957108d0b
+size 1326209
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_ao.png
new file mode 100644
index 0000000000..9cc32ad4b4
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:686bb3c1274e5f48f9b390a67a6ce1e28b127546e1ae7a0d5d01152a2a7c537b
+size 519499
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_basecolor.png
new file mode 100644
index 0000000000..64092a39d1
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c919b25301c084a2f4f03e5e80142d1ff72747bfb9cacb5332cdf80c4f62109
+size 1691028
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_height.png
new file mode 100644
index 0000000000..ad711b9144
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aedb902b3256c3741fc4fe176608b8b033a22b52c689bc87fe4796f1720d9d54
+size 605847
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_metallic.png
new file mode 100644
index 0000000000..7617fd3cae
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f2564801b00ffa0ef05ca18ae2222abc257c2b940720b0a73c1c95bccf61c73
+size 1008929
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_normal.jpg
new file mode 100644
index 0000000000..648c37d670
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ac327e8140639b4ef77a22f0ab1ecbc9738f84d6f0513b85a0fa2c18991ce5a
+size 117602
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_roughness.png
new file mode 100644
index 0000000000..faafa83d28
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/lion_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dee59798e56c34d7c014c6e608ba0090dea0a160c44a57b4c61ca587c69950d0
+size 1336005
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_ao.png
new file mode 100644
index 0000000000..58ec3d1bae
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:112bf756fab862ecf71c47dabbf601330e406ed9486500566a5fb012774af7a1
+size 845332
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_basecolor.png
new file mode 100644
index 0000000000..dd93a2c546
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:31c065bfd67e0b0ea459d81f134e9c1545f7601764c84544099d8c8f800f583c
+size 2403959
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_height.png
new file mode 100644
index 0000000000..b9b65fc1d2
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:77830ec6672f68124d974657537abce461519f9a0ae705bd79d60ebcf18f4f99
+size 765576
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_metallic.png
new file mode 100644
index 0000000000..a82a51c778
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc4d854ae199fe8285c51b115005de50f35ddd5553c72867ff6a29e65454fc57
+size 1451908
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_normal.jpg
new file mode 100644
index 0000000000..ead40b8bd9
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68b7477af3006f68f882ff0160f85b4e4b880737281b80f82de36a317c177f58
+size 557594
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_roughness.png
new file mode 100644
index 0000000000..b666c149ed
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/roof_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7b8af2651ce3a8a57244e174231b8ae954dff3bf7a70c024a8acfa9371768eac
+size 1820103
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_alpha.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_alpha.png
new file mode 100644
index 0000000000..c6c678849f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_alpha.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1128834ae704583af703df8c63d1671f846d4a89927f90033573b9d8cd495bbd
+size 76001
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_basecolor.png
new file mode 100644
index 0000000000..dad1c18f0c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae57e9e7fc478ee9ad28821af35c3266174795eb10293eb598353efe72c85cc7
+size 430161
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_height.png
new file mode 100644
index 0000000000..156e5e6d44
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f6727b858621faaa5930a974e7d60aa66cf3f694234ccfec4e80aeed033b2f1
+size 149055
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_metallic.png
new file mode 100644
index 0000000000..8b6340bcdd
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c67dadbce8c39c43e12137a48b662e2f71def0a1bcdc197a6ba87ecc391c0334
+size 244023
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_normal.jpg
new file mode 100644
index 0000000000..e928f2bb36
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3e0f3396a78712d283247a9c0fc539a671fc8ec01c60f98d48d9a129cfad58f
+size 10762
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_roughness.png
new file mode 100644
index 0000000000..8f319021a4
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/thorn_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00295c69a981a7b0af074267062693ae9c5f698d295b96f884729fb9af109385
+size 295295
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_ao.png
new file mode 100644
index 0000000000..42330f43fc
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:342c4b0811833ae0826b7c10e4987f43ff10df38ee7df1719e540f35d2d3499e
+size 345240
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_basecolor.png
new file mode 100644
index 0000000000..d6fbff7d0e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b5fb7c0472b9643cfd619d9e6c5527899492e7746147a2d975406d25374be78
+size 1314027
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_height.png
new file mode 100644
index 0000000000..ac9285bca7
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:caaa5ec46d6059ae3b245e9f7eadf886c4290c89958a13583dc4bc9293495cb0
+size 398025
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_metallic.png
new file mode 100644
index 0000000000..ede79d9158
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62832e5e067086c97c46fee31baab1cb6dd2c807af685574a90c0afa8088ee43
+size 1401314
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_normal.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_normal.png
new file mode 100644
index 0000000000..4645b54d64
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_normal.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f5d23737cc43a2e445dffd4221f8236e61dc553184c2a63b9d5c71d066d84573
+size 1147257
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_roughness.png
new file mode 100644
index 0000000000..235780d752
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseHanging_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:72ff5ec3b6a469d86f34e93d9fb143fe4846588e44f0e851e509be88745a25aa
+size 1365617
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_alpha.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_alpha.png
new file mode 100644
index 0000000000..8556f67471
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_alpha.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85ee26dcfdf8cb3ddcd378e92fd52e313ee23a58f7cc5a37556d96556986ba0b
+size 62658
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_basecolor.png
new file mode 100644
index 0000000000..5f6cd0377f
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vasePlant_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05d7a544ccf6b04dcfb37411927a79e8f4b2e6224b09651f92885604d825dc9c
+size 860074
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_ao.png
new file mode 100644
index 0000000000..c865df4c29
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a63c38ed593010cd495256c1b2b5f2d39659e0d4e9c699dd97a2d0a5582a65d7
+size 255623
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_basecolor.png
new file mode 100644
index 0000000000..942b1a859a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f438726b2dd4107d85b2542476243bc6977362a4865a5c21916d186fdf0eb5f4
+size 1846782
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_height.png
new file mode 100644
index 0000000000..d0aaaa46c1
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ddea2c560e2c86d58722b3728e0018c41b20fb64d543bd5241bc7de482bfcae
+size 584961
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_metallic.png
new file mode 100644
index 0000000000..b040d20cd6
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:12e3d690707f3fad9c26c402329ba1c1c7e751b6c38e11d965a1cfd8f67f61c3
+size 1143341
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_normal.jpg
new file mode 100644
index 0000000000..866c9e0907
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cd9f31741ebd52c9ddcc65b3d33b875b39af16379fcaed35fcb662a12c382cf
+size 81207
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_roughness.png
new file mode 100644
index 0000000000..05e201d968
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vaseRound_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f7a398b8c249c20d199d53f203df79826a63d1f56d62c28403ce9e52065fb49f
+size 1397051
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_ao.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_ao.png
new file mode 100644
index 0000000000..53e7968cbf
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_ao.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3740f6f1cac7251ee455c24498e0026da033d0c4994960a99cad4c78f0edcccb
+size 639510
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_basecolor.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_basecolor.png
new file mode 100644
index 0000000000..76c61bfe2e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_basecolor.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3b6b3d8fe5c470adbff0f9d9063c7efa1921491693a34b1fb383a9a60d7d7a9c
+size 1838562
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_height.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_height.png
new file mode 100644
index 0000000000..50a9cab822
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_height.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bc63680f8772effdad47e0a04def2bd8b6ec1dae8e8e7bfce2a11409a0c767a8
+size 572074
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_metallic.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_metallic.png
new file mode 100644
index 0000000000..d847f3d4a3
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_metallic.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d90cac110f7f129df7bd37d9c5e735be8f253be9e3798c3e2932ba351b8d7b5
+size 1044158
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_normal.jpg b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_normal.jpg
new file mode 100644
index 0000000000..559222c38c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_normal.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:387a9873c1ec3ebda366c19b94ca0c553f8015f7b48dd4adf8a53d3d83f3ad3d
+size 217939
diff --git a/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_roughness.png b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_roughness.png
new file mode 100644
index 0000000000..999fdab25e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/Textures/vase_1k_roughness.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e5b7e0a1b62aa2b3f270e2fd4be4acb6a9b5c1c45f6eb83fa177c777e9f14b8
+size 1317066
diff --git a/AutomatedTesting/Gem/Sponza/Assets/license.txt b/AutomatedTesting/Gem/Sponza/Assets/license.txt
new file mode 100644
index 0000000000..e303d8c767
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/license.txt
@@ -0,0 +1,8 @@
+The content in this gem "O3DE\Gems\AtomContent\Sponza" is ported
+from the original source, and modified for the O3DE Engine and Atom Renderer.
+
+The original "Crytek Sponza" scene data can be downloaded from the
+"McGuire Computer Graphics Archive": https://casual-effects.com/data/
+
+The original content is under the "CC BY 3.0" License:
+https://creativecommons.org/licenses/by/3.0/
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker.fbx b/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker.fbx
new file mode 100644
index 0000000000..8064e80546
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker.fbx
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4284aa2655fefad45723d899824b99a732f8b1d5b231bb8b26734cae251e15d0
+size 23216
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker_lambert1.material b/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker_lambert1.material
new file mode 100644
index 0000000000..c8e9f1f8f7
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/lightBlocker_lambert1.material
@@ -0,0 +1,19 @@
+{
+ "description": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "parentMaterial": "",
+ "propertyLayoutVersion": 3,
+ "properties": {
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "factor": 1.0
+ }
+ }
+}
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sphere.fbx b/AutomatedTesting/Gem/Sponza/Assets/objects/sphere.fbx
new file mode 100644
index 0000000000..734dbb2843
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sphere.fbx
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:67a3f676de88eb967df30d526a810e1c569a611904ff1a85628b66e75c4181f0
+size 47168
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sphereTwo.fbx b/AutomatedTesting/Gem/Sponza/Assets/objects/sphereTwo.fbx
new file mode 100644
index 0000000000..99c96e832a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sphereTwo.fbx
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a3abce1aadb4f505bf2eebbf8256598f9dab4cd5e9239e9a1523a70b4302912d
+size 47184
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza.fbx b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza.fbx
new file mode 100644
index 0000000000..a38f51750a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza.fbx
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6a8e686bd64cda37e8b27adcb691a846e62bcea6491547d53334ef4ed5424493
+size 21247456
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_arch.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_arch.material
new file mode 100644
index 0000000000..6518091265
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_arch.material
@@ -0,0 +1,40 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/arch_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.2663614749908447,
+ 0.2383916974067688,
+ 0.18117037415504456,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/arch_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/arch_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.050999999046325684,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/arch_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_background.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_background.material
new file mode 100644
index 0000000000..2fd7ed39cc
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_background.material
@@ -0,0 +1,45 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/background_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/background_1k_normal.jpg",
+ "roughness": 0.4000000059604645
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.19806210696697235,
+ 0.1746547669172287,
+ 0.16513313353061676,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/background_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/background_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.03099999949336052,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/background_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_bricks.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_bricks.material
new file mode 100644
index 0000000000..52fdf9e3a2
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_bricks.material
@@ -0,0 +1,45 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/bricks_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/bricks_1k_normal.jpg",
+ "roughness": 0.5
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.27467766404151917,
+ 0.27467766404151917,
+ 0.270496666431427,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/bricks_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/bricks_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "algorithm": "ContactRefinement",
+ "factor": 0.03500000014901161,
+ "quality": "Medium",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/bricks_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_ceiling.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_ceiling.material
new file mode 100644
index 0000000000..10f5a01a8e
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_ceiling.material
@@ -0,0 +1,36 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/ceiling_1k_basecolor.png"
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 0.29176774621009827,
+ 0.27888914942741394,
+ 0.2501564025878906,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/ceiling_1k_normal.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/ceiling_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_chain.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_chain.material
new file mode 100644
index 0000000000..caf03bd3ce
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_chain.material
@@ -0,0 +1,35 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureBlendMode": "Lerp",
+ "textureMap": "../Textures/chain_basecolor.png"
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "general": {
+ "doubleSided": true
+ },
+ "metallic": {
+ "factor": 0.8899999856948853
+ },
+ "normal": {
+ "textureMap": "../Textures/chain_normal.jpg"
+ },
+ "opacity": {
+ "alphaSource": "Split",
+ "factor": 1.0,
+ "mode": "Cutout",
+ "textureMap": "../Textures/chain_alpha.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columna.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columna.material
new file mode 100644
index 0000000000..15c3fec349
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columna.material
@@ -0,0 +1,45 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/columnA_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/columnA_1k_normal.jpg",
+ "roughness": 0.30000001192092896
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.8964369893074036,
+ 0.8264744281768799,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/columnA_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnA_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.017000000923871994,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/columnA_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnb.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnb.material
new file mode 100644
index 0000000000..e13f96b2bb
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnb.material
@@ -0,0 +1,45 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/columnB_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/columnB_1k_normal.jpg",
+ "roughness": 0.30000001192092896
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.41788357496261597,
+ 0.40723279118537903,
+ 0.4286869466304779,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/columnB_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnB_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.020999999716877937,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/columnB_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnc.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnc.material
new file mode 100644
index 0000000000..479692848a
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_columnc.material
@@ -0,0 +1,45 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/columnC_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/columnC_1k_normal.jpg",
+ "roughness": 0.30000001192092896
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.32314029335975647,
+ 0.29176774621009827,
+ 0.24228274822235107,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/columnC_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnC_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.014000000432133675,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/columnC_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainblue.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainblue.material
new file mode 100644
index 0000000000..50fd968956
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainblue.material
@@ -0,0 +1,52 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "textureMap": "../Textures/curtainBlue_1k_basecolor.png"
+ },
+ "emissive": {
+ "color": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ]
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.14901961386203766,
+ 1.0,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/curtain_metallic.png"
+ },
+ "normal": {
+ "factor": 0.5,
+ "textureMap": "../Textures/curtain_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
+ },
+ "roughness": {
+ "textureMap": "../Textures/curtain_roughness.png"
+ },
+ "specularF0": {
+ "enableMultiScatterCompensation": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtaingreen.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtaingreen.material
new file mode 100644
index 0000000000..6e70a42d24
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtaingreen.material
@@ -0,0 +1,38 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/curtainGreen_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.15294118225574493,
+ 0.0,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/curtain_metallic.png"
+ },
+ "normal": {
+ "factor": 0.5,
+ "textureMap": "../Textures/curtain_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/curtain_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainred.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainred.material
new file mode 100644
index 0000000000..8233633310
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_curtainred.material
@@ -0,0 +1,43 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/curtainRed_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.41960784792900085,
+ 0.003921568859368563,
+ 0.003921568859368563,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/curtain_metallic.png"
+ },
+ "normal": {
+ "textureMap": "../Textures/curtain_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/curtain_roughness.png"
+ },
+ "uv": {
+ "center": [
+ 16.0,
+ 0.0
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_details.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_details.material
new file mode 100644
index 0000000000..b66d8fa679
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_details.material
@@ -0,0 +1,39 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/details_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "normalMap": "../Textures/details_1k_normal.png",
+ "roughness": 0.25
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "metallic": {
+ "textureMap": "../Textures/details_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "../Textures/details_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/details_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.02500000037252903,
+ "pdo": true,
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/details_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricblue.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricblue.material
new file mode 100644
index 0000000000..19ce3a6839
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricblue.material
@@ -0,0 +1,39 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/fabricBlue_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.15049973130226135,
+ 1.0,
+ 1.0
+ ],
+ "factor": 0.30000001192092896
+ },
+ "metallic": {
+ "textureMap": "../Textures/fabric_metallic.png"
+ },
+ "normal": {
+ "factor": 0.5,
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/fabric_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricgreen.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricgreen.material
new file mode 100644
index 0000000000..94b8270fef
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricgreen.material
@@ -0,0 +1,39 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/fabricGreen_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.0,
+ 0.15292592346668243,
+ 0.0012207217514514923,
+ 1.0
+ ],
+ "factor": 0.30000001192092896
+ },
+ "metallic": {
+ "textureMap": "../Textures/fabric_metallic.png"
+ },
+ "normal": {
+ "factor": 0.5,
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/fabric_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricred.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricred.material
new file mode 100644
index 0000000000..7bd2ecddd0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_fabricred.material
@@ -0,0 +1,39 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/fabricRed_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.42040130496025085,
+ 0.004654001910239458,
+ 0.0037232013419270515,
+ 1.0
+ ],
+ "factor": 0.30000001192092896
+ },
+ "metallic": {
+ "textureMap": "../Textures/fabric_metallic.png"
+ },
+ "normal": {
+ "factor": 0.5,
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/fabric_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_flagpole.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_flagpole.material
new file mode 100644
index 0000000000..aca6c05d29
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_flagpole.material
@@ -0,0 +1,46 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/flagpole_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.6520485281944275,
+ 0.7122911214828491,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/flagpole_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "../Textures/flagpole_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/flagpole_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.014000000432133675,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/flagpole_1k_roughness.png"
+ },
+ "specularF0": {
+ "enableMultiScatterCompensation": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_floor.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_floor.material
new file mode 100644
index 0000000000..b75143326d
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_floor.material
@@ -0,0 +1,44 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/floor_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "influenceMap": "../Textures/floor_1k_ao.png",
+ "normalMap": "../Textures/floor_1k_normal.png",
+ "roughness": 0.25
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.9404135346412659,
+ 0.8688944578170776,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/floor_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/floor_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.012000000104308128,
+ "pdo": true,
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/floor_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_leaf.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_leaf.material
new file mode 100644
index 0000000000..51638d6d94
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_leaf.material
@@ -0,0 +1,43 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/thorn_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.05000000074505806,
+ "normalMap": "../Textures/thorn_normal.jpg",
+ "roughness": 0.10000000149011612
+ },
+ "general": {
+ "applySpecularAA": true,
+ "doubleSided": true
+ },
+ "irradiance": {
+ "color": [
+ 0.46506446599960327,
+ 1.0,
+ 0.3944609761238098,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/thorn_normal.jpg"
+ },
+ "opacity": {
+ "alphaSource": "Split",
+ "factor": 0.20000000298023224,
+ "mode": "Cutout",
+ "textureMap": "../Textures/thorn_alpha.png"
+ },
+ "parallax": {
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/thorn_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_lion.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_lion.material
new file mode 100644
index 0000000000..eee41e9c13
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_lion.material
@@ -0,0 +1,36 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/lion_1k_basecolor.png"
+ },
+ "emissive": {
+ "color": [
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ "irradiance": {
+ "color": [
+ 0.5583428740501404,
+ 0.496940553188324,
+ 0.4125429093837738,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/lion_1k_normal.jpg"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/lion_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_roof.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_roof.material
new file mode 100644
index 0000000000..fec7bb1e34
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_roof.material
@@ -0,0 +1,47 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureBlendMode": "Lerp",
+ "textureMap": "../Textures/roof_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.29613184928894043,
+ 0.3324483036994934,
+ 0.45078203082084656,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/roof_1k_metallic.png",
+ "useTexture": false
+ },
+ "normal": {
+ "factor": 0.5,
+ "flipY": true,
+ "textureMap": "../Textures/roof_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/roof_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "algorithm": "ContactRefinement",
+ "factor": 0.019999999552965164,
+ "quality": "Medium",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/roof_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vase.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vase.material
new file mode 100644
index 0000000000..da7a9de3a8
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vase.material
@@ -0,0 +1,46 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/vase_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 1.0,
+ 0.8713664412498474,
+ 0.6021667718887329,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/vase_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "../Textures/vase_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vase_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.027000000700354576,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/vase_1k_roughness.png"
+ },
+ "specularF0": {
+ "enableMultiScatterCompensation": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vasehanging.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vasehanging.material
new file mode 100644
index 0000000000..bda7aad38c
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vasehanging.material
@@ -0,0 +1,43 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/vaseHanging_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.765606164932251,
+ 1.0,
+ 0.7052567601203918,
+ 1.0
+ ]
+ },
+ "metallic": {
+ "textureMap": "../Textures/vaseHanging_1k_metallic.png"
+ },
+ "normal": {
+ "textureMap": "../Textures/vaseHanging_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vaseHanging_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.04600000008940697,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/vaseHanging_1k_roughness.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseplant.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseplant.material
new file mode 100644
index 0000000000..5546daa0e0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseplant.material
@@ -0,0 +1,36 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "color": [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.800000011920929,
+ 1.0
+ ],
+ "textureBlendMode": "Lerp",
+ "textureMap": "../Textures/vasePlant_1k_basecolor.png"
+ },
+ "general": {
+ "applySpecularAA": true,
+ "doubleSided": true
+ },
+ "irradiance": {
+ "color": [
+ 0.09086747467517853,
+ 0.4111391007900238,
+ 0.0474097803235054,
+ 1.0
+ ]
+ },
+ "opacity": {
+ "alphaSource": "Split",
+ "factor": 0.23999999463558197,
+ "mode": "Cutout",
+ "textureMap": "../Textures/vasePlant_1k_alpha.png"
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseround.material b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseround.material
new file mode 100644
index 0000000000..268e3ab613
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/objects/sponza_mat_vaseround.material
@@ -0,0 +1,49 @@
+{
+ "description": "",
+ "parentMaterial": "",
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
+ "properties": {
+ "baseColor": {
+ "textureMap": "../Textures/vaseRound_1k_basecolor.png"
+ },
+ "clearCoat": {
+ "factor": 0.5,
+ "influenceMap": "../Textures/vaseRound_1k_ao.png",
+ "normalMap": "../Textures/vaseRound_1k_normal.jpg",
+ "roughness": 0.25
+ },
+ "general": {
+ "applySpecularAA": true
+ },
+ "irradiance": {
+ "color": [
+ 0.46933698654174805,
+ 0.3824063539505005,
+ 0.47861447930336,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/vaseRound_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vaseRound_1k_ao.png"
+ },
+ "opacity": {
+ "factor": 1.0
+ },
+ "parallax": {
+ "factor": 0.019999999552965164,
+ "pdo": true,
+ "quality": "High",
+ "useTexture": false
+ },
+ "roughness": {
+ "textureMap": "../Textures/vaseRound_1k_roughness.png"
+ },
+ "specularF0": {
+ "enableMultiScatterCompensation": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Assets/slices/lightingGRP.slice b/AutomatedTesting/Gem/Sponza/Assets/slices/lightingGRP.slice
new file mode 100644
index 0000000000..97f3b3bb55
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Assets/slices/lightingGRP.slice
@@ -0,0 +1,962 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AutomatedTesting/Gem/Sponza/CMakeLists.txt b/AutomatedTesting/Gem/Sponza/CMakeLists.txt
new file mode 100644
index 0000000000..2d625a71b6
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/CMakeLists.txt
@@ -0,0 +1,11 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+#
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+# This will export its "SourcePaths" to the generated "cmake_dependencies..assetbuilder.setreg"
+if(PAL_TRAIT_BUILD_HOST_TOOLS)
+ ly_create_alias(NAME AtomContent_Sponza.Builders NAMESPACE Gem)
+endif()
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Registry/AssetProcessorPlatformConfig.setreg b/AutomatedTesting/Gem/Sponza/Registry/AssetProcessorPlatformConfig.setreg
new file mode 100644
index 0000000000..206a0a2a87
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Registry/AssetProcessorPlatformConfig.setreg
@@ -0,0 +1,14 @@
+{
+ "Amazon": {
+ "AssetProcessor": {
+ "Settings": {
+ // ------------------------------------------------------------------------------
+ // Sample Gems, Block source folders
+ // ------------------------------------------------------------------------------
+ "Exclude Work In Progress Folders": {
+ "pattern": "(^|.+/).[Ss]rc(/.*)?$"
+ }
+ }
+ }
+ }
+}
diff --git a/AutomatedTesting/Gem/Sponza/Tools/Launch_Cmd.bat b/AutomatedTesting/Gem/Sponza/Tools/Launch_Cmd.bat
new file mode 100644
index 0000000000..0b94be5bea
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Tools/Launch_Cmd.bat
@@ -0,0 +1,43 @@
+@echo off
+:: Keep changes local
+SETLOCAL enableDelayedExpansion
+
+REM
+REM Copyright (c) Contributors to the Open 3D Engine Project
+REM
+REM SPDX-License-Identifier: Apache-2.0 OR MIT
+REM For complete copyright and license terms please see the LICENSE at the root of this distribution.
+REM
+REM
+
+:: Set up and start a O3DE CMD prompt
+:: Sets up the current (DCC) Project_Env,
+:: Puts you in the CMD within the dev environment
+
+:: Set up window
+TITLE O3DE DCC Scripting Interface Cmd
+:: Use obvious color to prevent confusion (Grey with Yellow Text)
+COLOR 8E
+
+%~d0
+cd %~dp0
+PUSHD %~dp0
+
+CALL %~dp0\Project_Env.bat
+
+echo.
+echo _____________________________________________________________________
+echo.
+echo ~ O3DE %O3DE_PROJECT% Asset Gem CMD ...
+echo _____________________________________________________________________
+echo.
+
+:: Create command prompt with environment
+CALL %windir%\system32\cmd.exe
+
+ENDLOCAL
+
+:: Return to starting directory
+POPD
+
+:END_OF_FILE
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/Tools/Launch_Maya.bat b/AutomatedTesting/Gem/Sponza/Tools/Launch_Maya.bat
new file mode 100644
index 0000000000..0af25905a0
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Tools/Launch_Maya.bat
@@ -0,0 +1,66 @@
+@echo off
+
+REM
+REM Copyright (c) Contributors to the Open 3D Engine Project.
+REM For complete copyright and license terms please see the LICENSE at the root of this distribution.
+REM
+REM SPDX-License-Identifier: Apache-2.0 OR MIT
+REM
+REM
+
+%~d0
+cd %~dp0
+PUSHD %~dp0
+
+echo ________________________________
+echo ~ calling PROJ_Env.bat
+
+:: Keep changes local
+SETLOCAL enableDelayedExpansion
+
+:: PY version Major
+IF "%DCCSI_PY_VERSION_MAJOR%"=="" (set DCCSI_PY_VERSION_MAJOR=2)
+echo DCCSI_PY_VERSION_MAJOR = %DCCSI_PY_VERSION_MAJOR%
+
+:: PY version Major
+IF "%DCCSI_PY_VERSION_MINOR%"=="" (set DCCSI_PY_VERSION_MINOR=7)
+echo DCCSI_PY_VERSION_MINOR = %DCCSI_PY_VERSION_MINOR%
+
+:: Maya Version
+IF "%DCCSI_MAYA_VERSION%"=="" (set DCCSI_MAYA_VERSION=2020)
+echo DCCSI_MAYA_VERSION = %DCCSI_MAYA_VERSION%
+
+:: if a local customEnv.bat exists, run it
+IF EXIST "%~dp0Project_Env.bat" CALL %~dp0Project_Env.bat
+
+echo ________________________________
+echo Launching Maya %DCCSI_MAYA_VERSION% for O3DE: %O3DE_PROJECT%...
+
+:::: Set Maya native project acess to this project
+::set MAYA_PROJECT=%LY_PROJECT%
+::echo MAYA_PROJECT = %MAYA_PROJECT%
+
+:: DX11 Viewport
+Set MAYA_VP2_DEVICE_OVERRIDE = VirtualDeviceDx11
+
+:: Default to the right version of Maya if we can detect it... and launch
+echo MAYA_BIN_PATH = %MAYA_BIN_PATH%
+
+IF EXIST "%MAYA_BIN_PATH%\Maya.exe" (
+ start "" "%MAYA_BIN_PATH%\Maya.exe" %*
+) ELSE (
+ Where maya.exe 2> NUL
+ IF ERRORLEVEL 1 (
+ echo Maya.exe could not be found
+ pause
+ ) ELSE (
+ start "" Maya.exe %*
+ )
+)
+
+:: Return to starting directory
+POPD
+
+:END_OF_FILE
+
+exit /b 0
diff --git a/AutomatedTesting/Gem/Sponza/Tools/Project_Env.bat b/AutomatedTesting/Gem/Sponza/Tools/Project_Env.bat
new file mode 100644
index 0000000000..ddf934d206
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Tools/Project_Env.bat
@@ -0,0 +1,107 @@
+@echo off
+
+REM
+REM Copyright (c) Contributors to the Open 3D Engine Project
+REM
+REM SPDX-License-Identifier: Apache-2.0 OR MIT
+REM For complete copyright and license terms please see the LICENSE at the root of this distribution.
+REM
+REM
+
+:: Sets up environment for O3DE DCC tools and code access
+
+:: Set up window
+TITLE O3DE Asset Gem
+:: Use obvious color to prevent confusion (Grey with Yellow Text)
+COLOR 8E
+
+:: Skip initialization if already completed
+IF "%O3DE_PROJ_ENV_INIT%"=="1" GOTO :END_OF_FILE
+
+:: Store current dir
+%~d0
+cd %~dp0
+PUSHD %~dp0
+
+:: Put you project env vars and overrides in this file
+
+:: chanhe the relative path up to dev
+set ABS_PATH=%~dp0
+
+:: project name as a str tag
+IF "%O3DE_PROJECT%"=="" (
+ for %%I in ("%~dp0.") do for %%J in ("%%~dpI.") do set O3DE_PROJECT=%%~nxJ
+ )
+
+echo.
+echo _____________________________________________________________________
+echo.
+echo ~ Setting up O3DE %O3DE_PROJECT% Environment ...
+echo _____________________________________________________________________
+echo.
+echo O3DE_PROJECT = %O3DE_PROJECT%
+
+:: if the user has set up a custom env call it
+:: this should allow the user to locally
+:: set env hooks like O3DE_DEV or O3DE_PROJECT_PATH
+IF EXIST "%~dp0User_Env.bat" CALL %~dp0User_Env.bat
+echo O3DE_DEV = %O3DE_DEV%
+
+:: Constant Vars (Global)
+:: global debug flag (propogates)
+:: The intent here is to set and globally enter a debug mode
+IF "%DCCSI_GDEBUG%"=="" (set DCCSI_GDEBUG=false)
+echo DCCSI_GDEBUG = %DCCSI_GDEBUG%
+:: initiates earliest debugger connection
+:: we support attaching to WingIDE... PyCharm and VScode in the future
+IF "%DCCSI_DEV_MODE%"=="" (set DCCSI_DEV_MODE=false)
+echo DCCSI_DEV_MODE = %DCCSI_DEV_MODE%
+:: sets debugger, options: WING, PYCHARM
+IF "%DCCSI_GDEBUGGER%"=="" (set DCCSI_GDEBUGGER=WING)
+echo DCCSI_GDEBUGGER = %DCCSI_GDEBUGGER%
+:: Default level logger will handle
+:: Override this to control the setting
+:: CRITICAL:50
+:: ERROR:40
+:: WARNING:30
+:: INFO:20
+:: DEBUG:10
+:: NOTSET:0
+IF "%DCCSI_LOGLEVEL%"=="" (set DCCSI_LOGLEVEL=20)
+echo DCCSI_LOGLEVEL = %DCCSI_LOGLEVEL%
+
+:: Override the default maya version
+IF "%DCCSI_MAYA_VERSION%"=="" (set DCCSI_MAYA_VERSION=2020)
+echo DCCSI_MAYA_VERSION = %DCCSI_MAYA_VERSION%
+
+:: O3DE_PROJECT_PATH is ideally treated as a full path in the env launchers
+:: do to changes in o3de, external engine/project/gem folder structures, etc.
+IF "%O3DE_PROJECT_PATH%"=="" (
+ for %%i in ("%~dp0..") do set "O3DE_PROJECT_PATH=%%~fi"
+ )
+echo O3DE_PROJECT_PATH = %O3DE_PROJECT_PATH%
+
+:: Change to root O3DE dev dir
+IF "%O3DE_DEV%"=="" echo ~ You must set O3DE_DEV in a User_Env.bat to match your local engine repo!
+IF "%O3DE_DEV%"=="" echo ~ Using default O3DE_DEV=C:\Depot\o3de-engine
+IF "%O3DE_DEV%"=="" (set O3DE_DEV=C:\Depot\o3de-engine)
+echo O3DE_DEV = %O3DE_DEV%
+
+CALL %O3DE_DEV%\Gems\AtomLyIntegration\TechnicalArt\DccScriptingInterface\Tools\Dev\Windows\Env_Maya.bat
+
+:: Restore original directory
+popd
+
+:: Change to root dir
+CD /D %ABS_PATH%
+
+::ENDLOCAL
+
+:: Set flag so we don't initialize dccsi environment twice
+SET O3DE_PROJ_ENV_INIT=1
+GOTO END_OF_FILE
+
+:: Return to starting directory
+POPD
+
+:END_OF_FILE
diff --git a/AutomatedTesting/Gem/Sponza/Tools/User_Env.bat.template b/AutomatedTesting/Gem/Sponza/Tools/User_Env.bat.template
new file mode 100644
index 0000000000..d108f30a5b
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/Tools/User_Env.bat.template
@@ -0,0 +1,42 @@
+@echo off
+
+REM
+REM Copyright (c) Contributors to the Open 3D Engine Project
+REM
+REM SPDX-License-Identifier: Apache-2.0 OR MIT
+REM For complete copyright and license terms please see the LICENSE at the root of this distribution.
+REM
+REM
+
+:: copy this file, rename to User_Env.bat (remove .template)
+:: use this file to override any local properties that differ from base
+
+:: Skip initialization if already completed
+IF "%O3DE_USER_ENV_INIT%"=="1" GOTO :END_OF_FILE
+
+:: Store current dir
+%~d0
+cd %~dp0
+PUSHD %~dp0
+
+SET O3DE_DEV=C:\Depot\o3de-engine
+::SET OCIO_APPS=C:\Depot\o3de-engine\Tools\ColorGrading\ocio\build\src\apps
+SET TAG_LY_BUILD_PATH=build
+SET DCCSI_GDEBUG=True
+SET DCCSI_DEV_MODE=True
+
+set DCCSI_MAYA_VERSION=2020
+
+:: set the your user name here for windows path
+SET TAG_USERNAME=NOT_SET
+SET DCCSI_PY_REV=rev1
+SET DCCSI_PY_PLATFORM=windows
+
+:: Set flag so we don't initialize dccsi environment twice
+SET O3DE_USER_ENV_INIT=1
+GOTO END_OF_FILE
+
+:: Return to starting directory
+POPD
+
+:END_OF_FILE
\ No newline at end of file
diff --git a/AutomatedTesting/Gem/Sponza/gem.json b/AutomatedTesting/Gem/Sponza/gem.json
new file mode 100644
index 0000000000..68749cd5f4
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/gem.json
@@ -0,0 +1,17 @@
+{
+ "gem_name": "Sponza",
+ "display_name": "Sponza",
+ "license": "Apache-2.0 Or MIT",
+ "license_url": "https://github.com/o3de/o3de/blob/development/LICENSE.txt",
+ "origin": "Open 3D Engine - o3de.org",
+ "type": "Asset",
+ "summary": "A standard test scene for Global Illumination (forked from crytek sponza scene)",
+ "canonical_tags": [
+ "Gem"
+ ],
+ "user_tags": [
+ "Assets"
+ ],
+ "requirements": "",
+ "dependencies": []
+}
diff --git a/AutomatedTesting/Gem/Sponza/workspace.mel b/AutomatedTesting/Gem/Sponza/workspace.mel
new file mode 100644
index 0000000000..b082b73ef7
--- /dev/null
+++ b/AutomatedTesting/Gem/Sponza/workspace.mel
@@ -0,0 +1,89 @@
+//Maya 2020 Project Definition
+
+workspace -fr "fluidCache" "";
+workspace -fr "JT_ATF" "";
+workspace -fr "images" ".maya_data/Images";
+workspace -fr "offlineEdit" ".maya_data/scenes/edits";
+workspace -fr "STEP_ATF Export" "";
+workspace -fr "furShadowMap" "";
+workspace -fr "SVG" "";
+workspace -fr "scripts" "ArtSource/Maya/Scripts";
+workspace -fr "DAE_FBX" "";
+workspace -fr "shaders" "ArtSource/Maya/Shaders";
+workspace -fr "NX_ATF" "";
+workspace -fr "CATIAV5_ATF Export" "";
+workspace -fr "furFiles" "";
+workspace -fr "OBJ" ".maya_data/obj";
+workspace -fr "PARASOLID_ATF Export" "";
+workspace -fr "FBX export" "Assets/Objects";
+workspace -fr "furEqualMap" "";
+workspace -fr "textures" "Assets/textures";
+workspace -fr "BIF" "";
+workspace -fr "lights" ".maya_data/renderData/shaders";
+workspace -fr "DAE_FBX export" "";
+workspace -fr "aliasWire" ".maya_data/data";
+workspace -fr "CATIAV5_ATF" "";
+workspace -fr "SAT_ATF Export" "";
+workspace -fr "movie" ".maya_data/movies";
+workspace -fr "ASS Export" "";
+workspace -fr "mayaAscii" "";
+workspace -fr "move" ".maya_data";
+workspace -fr "autoSave" ".maya_data/autoSave";
+workspace -fr "NX_ATF Export" "";
+workspace -fr "sound" ".maya_data/sound";
+workspace -fr "mayaBinary" "";
+workspace -fr "timeEditor" "";
+workspace -fr "RIBexport" ".maya_data/data";
+workspace -fr "DWG_ATF" "";
+workspace -fr "mentalray" ".maya_data/renderData/mentalray";
+workspace -fr "Arnold-USD" "";
+workspace -fr "JT_ATF Export" "";
+workspace -fr "iprImages" ".maya_data/renderData/iprImages";
+workspace -fr "FBX" "Assets/Objects";
+workspace -fr "renderData" ".maya_data/renderData";
+workspace -fr "CATIAV4_ATF" "";
+workspace -fr "fileCache" "";
+workspace -fr "Fbx" "Assets/Objects";
+workspace -fr "eps" "";
+workspace -fr "IGESexport" ".maya_data/data";
+workspace -fr "3dPaintTextures" ".maya_data/3dPaintTextures";
+workspace -fr "DXF_ATF Export" "";
+workspace -fr "mel" ".maya_data/mel";
+workspace -fr "translatorData" "";
+workspace -fr "IGES" ".maya_data/data";
+workspace -fr "particles" ".maya_data/particles";
+workspace -fr "DXFexport" ".maya_data/data";
+workspace -fr "DXF_ATF" "";
+workspace -fr "scene" "Assets/Objects";
+workspace -fr "renderScenes" ".maya_data/renderScenes";
+workspace -fr "SAT_ATF" "";
+workspace -fr "PROE_ATF" "";
+workspace -fr "WIRE_ATF Export" "";
+workspace -fr "sourceImages" "ArtSource/Images";
+workspace -fr "RIB" ".maya_data/data";
+workspace -fr "furImages" "";
+workspace -fr "clips" ".maya_data/clips";
+workspace -fr "Adobe(R) Illustrator(R)" ".maya_data/data";
+workspace -fr "animExport" ".maya_data/data";
+workspace -fr "mentalRay" ".maya_data/mentalRay";
+workspace -fr "STEP_ATF" "";
+workspace -fr "DWG_ATF Export" "";
+workspace -fr "depth" ".maya_data/renderData/depth";
+workspace -fr "sceneAssembly" "";
+workspace -fr "IGES_ATF Export" "";
+workspace -fr "teClipExports" "";
+workspace -fr "IGES_ATF" "";
+workspace -fr "PARASOLID_ATF" "";
+workspace -fr "ASS" "";
+workspace -fr "Substance" ".maya_data/data";
+workspace -fr "audio" ".maya_data/sound";
+workspace -fr "EPS" ".maya_data/data";
+workspace -fr "Alembic" "Assets/Objects";
+workspace -fr "diskCache" ".maya_data/cache";
+workspace -fr "illustrator" "";
+workspace -fr "WIRE_ATF" "";
+workspace -fr "templates" "ArtSource/SceneTemplates";
+workspace -fr "animImport" ".maya_data/data";
+workspace -fr "OBJexport" "Assets/Objects";
+workspace -fr "furAttrMap" "";
+workspace -fr "DXF" ".maya_data/data";
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/Environment.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/Environment.xml
deleted file mode 100644
index 4ba36f66ae..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/Environment.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TerrainTexture.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TerrainTexture.xml
deleted file mode 100644
index f43df05b22..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TerrainTexture.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TimeOfDay.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TimeOfDay.xml
deleted file mode 100644
index 6ea168cc6b..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/TimeOfDay.xml
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/VegetationMap.dat b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/VegetationMap.dat
deleted file mode 100644
index dce5631cd0..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/LevelData/VegetationMap.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e6a5435c928079b27796f6b202bbc2623e7e454244ddc099a3cadf33b7cb9e9
-size 63
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.ly b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.ly
deleted file mode 100644
index 23397bf18d..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.ly
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b59cbe84cb77090d723d120597f9d11817aa67a267a7f495f8b012fdd8a9dd86
-size 5536
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.prefab b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.prefab
new file mode 100644
index 0000000000..de23da874f
--- /dev/null
+++ b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/NvCloth_AddClothSimulationToActor.prefab
@@ -0,0 +1,387 @@
+{
+ "ContainerEntity": {
+ "Id": "Entity_[1146574390643]",
+ "Name": "Level",
+ "Components": {
+ "Component_[10641544592923449938]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 10641544592923449938
+ },
+ "Component_[12039882709170782873]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 12039882709170782873
+ },
+ "Component_[12265484671603697631]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 12265484671603697631
+ },
+ "Component_[14126657869720434043]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 14126657869720434043,
+ "Child Entity Order": [
+ "Entity_[1176639161715]",
+ "Instance_[1015201222663]/ContainerEntity"
+ ]
+ },
+ "Component_[15230859088967841193]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 15230859088967841193,
+ "Parent Entity": ""
+ },
+ "Component_[16239496886950819870]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 16239496886950819870
+ },
+ "Component_[5688118765544765547]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 5688118765544765547
+ },
+ "Component_[6545738857812235305]": {
+ "$type": "SelectionComponent",
+ "Id": 6545738857812235305
+ },
+ "Component_[7247035804068349658]": {
+ "$type": "EditorPrefabComponent",
+ "Id": 7247035804068349658
+ },
+ "Component_[9307224322037797205]": {
+ "$type": "EditorLockComponent",
+ "Id": 9307224322037797205
+ },
+ "Component_[9562516168917670048]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 9562516168917670048
+ }
+ }
+ },
+ "Entities": {
+ "Entity_[1155164325235]": {
+ "Id": "Entity_[1155164325235]",
+ "Name": "Sun",
+ "Components": {
+ "Component_[10440557478882592717]": {
+ "$type": "SelectionComponent",
+ "Id": 10440557478882592717
+ },
+ "Component_[13620450453324765907]": {
+ "$type": "EditorLockComponent",
+ "Id": 13620450453324765907
+ },
+ "Component_[2134313378593666258]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 2134313378593666258
+ },
+ "Component_[234010807770404186]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 234010807770404186
+ },
+ "Component_[2970359110423865725]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 2970359110423865725
+ },
+ "Component_[3722854130373041803]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3722854130373041803
+ },
+ "Component_[5992533738676323195]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5992533738676323195
+ },
+ "Component_[7378860763541895402]": {
+ "$type": "AZ::Render::EditorDirectionalLightComponent",
+ "Id": 7378860763541895402,
+ "Controller": {
+ "Configuration": {
+ "Intensity": 1.0,
+ "CameraEntityId": "",
+ "ShadowFilterMethod": 1
+ }
+ }
+ },
+ "Component_[7892834440890947578]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 7892834440890947578,
+ "Parent Entity": "Entity_[1176639161715]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ 13.487043380737305
+ ],
+ "Rotate": [
+ -76.13099670410156,
+ -0.847000002861023,
+ -15.8100004196167
+ ]
+ }
+ },
+ "Component_[8599729549570828259]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 8599729549570828259
+ },
+ "Component_[952797371922080273]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 952797371922080273
+ }
+ }
+ },
+ "Entity_[1163754259827]": {
+ "Id": "Entity_[1163754259827]",
+ "Name": "Camera",
+ "Components": {
+ "Component_[11895140916889160460]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11895140916889160460
+ },
+ "Component_[16880285896855930892]": {
+ "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+ "Id": 16880285896855930892,
+ "Controller": {
+ "Configuration": {
+ "Field of View": 55.0,
+ "EditorEntityId": 8929576024571800510
+ }
+ }
+ },
+ "Component_[17187464423780271193]": {
+ "$type": "EditorLockComponent",
+ "Id": 17187464423780271193
+ },
+ "Component_[17495696818315413311]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 17495696818315413311
+ },
+ "Component_[18086214374043522055]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 18086214374043522055,
+ "Parent Entity": "Entity_[1176639161715]",
+ "Transform Data": {
+ "Translate": [
+ 1.511600136756897,
+ -1.3604341745376587,
+ 1.412430763244629
+ ],
+ "Rotate": [
+ -7.442450523376465,
+ -6.665996551513672,
+ 41.62498092651367
+ ]
+ }
+ },
+ "Component_[18387556550380114975]": {
+ "$type": "SelectionComponent",
+ "Id": 18387556550380114975
+ },
+ "Component_[2654521436129313160]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 2654521436129313160
+ },
+ "Component_[5265045084611556958]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5265045084611556958
+ },
+ "Component_[7169798125182238623]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 7169798125182238623
+ },
+ "Component_[7255796294953281766]": {
+ "$type": "GenericComponentWrapper",
+ "Id": 7255796294953281766,
+ "m_template": {
+ "$type": "FlyCameraInputComponent"
+ }
+ },
+ "Component_[8866210352157164042]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 8866210352157164042
+ },
+ "Component_[9129253381063760879]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 9129253381063760879
+ }
+ }
+ },
+ "Entity_[1176639161715]": {
+ "Id": "Entity_[1176639161715]",
+ "Name": "Atom Default Environment",
+ "Components": {
+ "Component_[10757302973393310045]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 10757302973393310045,
+ "Parent Entity": "Entity_[1146574390643]"
+ },
+ "Component_[14505817420424255464]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 14505817420424255464,
+ "ComponentOrderEntryArray": [
+ {
+ "ComponentId": 10757302973393310045
+ }
+ ]
+ },
+ "Component_[14988041764659020032]": {
+ "$type": "EditorLockComponent",
+ "Id": 14988041764659020032
+ },
+ "Component_[15808690248755038124]": {
+ "$type": "SelectionComponent",
+ "Id": 15808690248755038124
+ },
+ "Component_[15900837685796817138]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 15900837685796817138
+ },
+ "Component_[3298767348226484884]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3298767348226484884
+ },
+ "Component_[4076975109609220594]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 4076975109609220594
+ },
+ "Component_[5679760548946028854]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5679760548946028854
+ },
+ "Component_[5855590796136709437]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 5855590796136709437,
+ "Child Entity Order": [
+ "Entity_[1155164325235]",
+ "Entity_[1180934129011]",
+ "Entity_[1163754259827]"
+ ]
+ },
+ "Component_[9277695270015777859]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 9277695270015777859
+ }
+ }
+ },
+ "Entity_[1180934129011]": {
+ "Id": "Entity_[1180934129011]",
+ "Name": "Global Sky",
+ "Components": {
+ "Component_[11231930600558681245]": {
+ "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+ "Id": 11231930600558681245,
+ "Controller": {
+ "Configuration": {
+ "CubemapAsset": {
+ "assetId": {
+ "guid": "{215E47FD-D181-5832-B1AB-91673ABF6399}",
+ "subId": 1000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_skyboxcm.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[11980494120202836095]": {
+ "$type": "SelectionComponent",
+ "Id": 11980494120202836095
+ },
+ "Component_[1428633914413949476]": {
+ "$type": "EditorLockComponent",
+ "Id": 1428633914413949476
+ },
+ "Component_[14936200426671614999]": {
+ "$type": "AZ::Render::EditorImageBasedLightComponent",
+ "Id": 14936200426671614999,
+ "Controller": {
+ "Configuration": {
+ "diffuseImageAsset": {
+ "assetId": {
+ "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+ "subId": 3000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_ibldiffuse.exr.streamingimage"
+ },
+ "specularImageAsset": {
+ "assetId": {
+ "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+ "subId": 2000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_iblspecular.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[14994774102579326069]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 14994774102579326069
+ },
+ "Component_[15417479889044493340]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 15417479889044493340
+ },
+ "Component_[15826613364991382688]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 15826613364991382688
+ },
+ "Component_[1665003113283562343]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 1665003113283562343
+ },
+ "Component_[3704934735944502280]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 3704934735944502280
+ },
+ "Component_[5698542331457326479]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 5698542331457326479
+ },
+ "Component_[6644513399057217122]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 6644513399057217122,
+ "Parent Entity": "Entity_[1176639161715]"
+ },
+ "Component_[931091830724002070]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 931091830724002070
+ }
+ }
+ }
+ },
+ "Instances": {
+ "Instance_[1015201222663]": {
+ "Source": "prefabs/Cloth/Chicken_Actor.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": 0.31251561641693115
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": -0.006644248962402344
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 0.3271239995956421
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Rotate/2",
+ "value": 179.72178649902344
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303447173544404]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/TerrainTexture.pak b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/TerrainTexture.pak
deleted file mode 100644
index fe3604a050..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/TerrainTexture.pak
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8739c76e681f900923b900c9df0ef75cf421d39cabb54650c4b9ad19b6a76d85
-size 22
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/filelist.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/filelist.xml
deleted file mode 100644
index 20952a47ce..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/filelist.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/level.pak b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/level.pak
deleted file mode 100644
index 4259131c4f..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToActor/level.pak
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:46051f4116003e1a2d13855bea92a1b15501166b1379a11d02c4d2239ccd2530
-size 3648
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/Environment.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/Environment.xml
deleted file mode 100644
index 4ba36f66ae..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/Environment.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TerrainTexture.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TerrainTexture.xml
deleted file mode 100644
index f43df05b22..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TerrainTexture.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TimeOfDay.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TimeOfDay.xml
deleted file mode 100644
index 6ea168cc6b..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/TimeOfDay.xml
+++ /dev/null
@@ -1,356 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/VegetationMap.dat b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/VegetationMap.dat
deleted file mode 100644
index dce5631cd0..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/LevelData/VegetationMap.dat
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0e6a5435c928079b27796f6b202bbc2623e7e454244ddc099a3cadf33b7cb9e9
-size 63
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.ly b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.ly
deleted file mode 100644
index 861626993e..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.ly
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bedd2adc60f244a8595e64619069046d5036dd762f61b5393f9b759d69281362
-size 5276
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.prefab b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.prefab
new file mode 100644
index 0000000000..93d0d1e707
--- /dev/null
+++ b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/NvCloth_AddClothSimulationToMesh.prefab
@@ -0,0 +1,522 @@
+{
+ "ContainerEntity": {
+ "Id": "Entity_[1146574390643]",
+ "Name": "Level",
+ "Components": {
+ "Component_[10641544592923449938]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 10641544592923449938
+ },
+ "Component_[12039882709170782873]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 12039882709170782873
+ },
+ "Component_[12265484671603697631]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 12265484671603697631
+ },
+ "Component_[14126657869720434043]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 14126657869720434043,
+ "Child Entity Order": [
+ "Entity_[1176639161715]",
+ "Instance_[811083782986]/ContainerEntity",
+ "Instance_[503204883039]/ContainerEntity",
+ "Instance_[563334425183]/ContainerEntity",
+ "Instance_[640643836511]/ContainerEntity",
+ "Instance_[735133117023]/ContainerEntity"
+ ]
+ },
+ "Component_[15230859088967841193]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 15230859088967841193,
+ "Parent Entity": ""
+ },
+ "Component_[16239496886950819870]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 16239496886950819870
+ },
+ "Component_[5688118765544765547]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 5688118765544765547
+ },
+ "Component_[6545738857812235305]": {
+ "$type": "SelectionComponent",
+ "Id": 6545738857812235305
+ },
+ "Component_[7247035804068349658]": {
+ "$type": "EditorPrefabComponent",
+ "Id": 7247035804068349658
+ },
+ "Component_[9307224322037797205]": {
+ "$type": "EditorLockComponent",
+ "Id": 9307224322037797205
+ },
+ "Component_[9562516168917670048]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 9562516168917670048
+ }
+ }
+ },
+ "Entities": {
+ "Entity_[1155164325235]": {
+ "Id": "Entity_[1155164325235]",
+ "Name": "Sun",
+ "Components": {
+ "Component_[10440557478882592717]": {
+ "$type": "SelectionComponent",
+ "Id": 10440557478882592717
+ },
+ "Component_[13620450453324765907]": {
+ "$type": "EditorLockComponent",
+ "Id": 13620450453324765907
+ },
+ "Component_[2134313378593666258]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 2134313378593666258
+ },
+ "Component_[234010807770404186]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 234010807770404186
+ },
+ "Component_[2970359110423865725]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 2970359110423865725
+ },
+ "Component_[3722854130373041803]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3722854130373041803
+ },
+ "Component_[5992533738676323195]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5992533738676323195
+ },
+ "Component_[7378860763541895402]": {
+ "$type": "AZ::Render::EditorDirectionalLightComponent",
+ "Id": 7378860763541895402,
+ "Controller": {
+ "Configuration": {
+ "Intensity": 1.0,
+ "CameraEntityId": "",
+ "ShadowFilterMethod": 1
+ }
+ }
+ },
+ "Component_[7892834440890947578]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 7892834440890947578,
+ "Parent Entity": "Entity_[1176639161715]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 0.0,
+ 13.487043380737305
+ ],
+ "Rotate": [
+ -76.13099670410156,
+ -0.847000002861023,
+ -15.8100004196167
+ ]
+ }
+ },
+ "Component_[8599729549570828259]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 8599729549570828259
+ },
+ "Component_[952797371922080273]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 952797371922080273
+ }
+ }
+ },
+ "Entity_[1163754259827]": {
+ "Id": "Entity_[1163754259827]",
+ "Name": "Camera",
+ "Components": {
+ "Component_[11895140916889160460]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11895140916889160460
+ },
+ "Component_[16880285896855930892]": {
+ "$type": "{CA11DA46-29FF-4083-B5F6-E02C3A8C3A3D} EditorCameraComponent",
+ "Id": 16880285896855930892,
+ "Controller": {
+ "Configuration": {
+ "Field of View": 55.0,
+ "EditorEntityId": 8929576024571800510
+ }
+ }
+ },
+ "Component_[17187464423780271193]": {
+ "$type": "EditorLockComponent",
+ "Id": 17187464423780271193
+ },
+ "Component_[17495696818315413311]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 17495696818315413311
+ },
+ "Component_[18086214374043522055]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 18086214374043522055,
+ "Parent Entity": "Entity_[1176639161715]",
+ "Transform Data": {
+ "Translate": [
+ 3.288902521133423,
+ -3.0976791381835938,
+ 1.595407247543335
+ ],
+ "Rotate": [
+ -6.36656379699707,
+ -6.542551040649414,
+ 45.600582122802734
+ ]
+ }
+ },
+ "Component_[18387556550380114975]": {
+ "$type": "SelectionComponent",
+ "Id": 18387556550380114975
+ },
+ "Component_[2654521436129313160]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 2654521436129313160
+ },
+ "Component_[5265045084611556958]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5265045084611556958
+ },
+ "Component_[7169798125182238623]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 7169798125182238623
+ },
+ "Component_[7255796294953281766]": {
+ "$type": "GenericComponentWrapper",
+ "Id": 7255796294953281766,
+ "m_template": {
+ "$type": "FlyCameraInputComponent"
+ }
+ },
+ "Component_[8866210352157164042]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 8866210352157164042
+ },
+ "Component_[9129253381063760879]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 9129253381063760879
+ }
+ }
+ },
+ "Entity_[1176639161715]": {
+ "Id": "Entity_[1176639161715]",
+ "Name": "Atom Default Environment",
+ "Components": {
+ "Component_[10757302973393310045]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 10757302973393310045,
+ "Parent Entity": "Entity_[1146574390643]"
+ },
+ "Component_[14505817420424255464]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 14505817420424255464,
+ "ComponentOrderEntryArray": [
+ {
+ "ComponentId": 10757302973393310045
+ }
+ ]
+ },
+ "Component_[14988041764659020032]": {
+ "$type": "EditorLockComponent",
+ "Id": 14988041764659020032
+ },
+ "Component_[15808690248755038124]": {
+ "$type": "SelectionComponent",
+ "Id": 15808690248755038124
+ },
+ "Component_[15900837685796817138]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 15900837685796817138
+ },
+ "Component_[3298767348226484884]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 3298767348226484884
+ },
+ "Component_[4076975109609220594]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 4076975109609220594
+ },
+ "Component_[5679760548946028854]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 5679760548946028854
+ },
+ "Component_[5855590796136709437]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 5855590796136709437,
+ "Child Entity Order": [
+ "Entity_[1155164325235]",
+ "Entity_[1180934129011]",
+ "Entity_[1163754259827]"
+ ]
+ },
+ "Component_[9277695270015777859]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 9277695270015777859
+ }
+ }
+ },
+ "Entity_[1180934129011]": {
+ "Id": "Entity_[1180934129011]",
+ "Name": "Global Sky",
+ "Components": {
+ "Component_[11231930600558681245]": {
+ "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+ "Id": 11231930600558681245,
+ "Controller": {
+ "Configuration": {
+ "CubemapAsset": {
+ "assetId": {
+ "guid": "{215E47FD-D181-5832-B1AB-91673ABF6399}",
+ "subId": 1000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_skyboxcm.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[11980494120202836095]": {
+ "$type": "SelectionComponent",
+ "Id": 11980494120202836095
+ },
+ "Component_[1428633914413949476]": {
+ "$type": "EditorLockComponent",
+ "Id": 1428633914413949476
+ },
+ "Component_[14936200426671614999]": {
+ "$type": "AZ::Render::EditorImageBasedLightComponent",
+ "Id": 14936200426671614999,
+ "Controller": {
+ "Configuration": {
+ "diffuseImageAsset": {
+ "assetId": {
+ "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+ "subId": 3000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_ibldiffuse.exr.streamingimage"
+ },
+ "specularImageAsset": {
+ "assetId": {
+ "guid": "{3FD09945-D0F2-55C8-B9AF-B2FD421FE3BE}",
+ "subId": 2000
+ },
+ "assetHint": "lightingpresets/highcontrast/goegap_4k_iblglobalcm_iblspecular.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[14994774102579326069]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 14994774102579326069
+ },
+ "Component_[15417479889044493340]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 15417479889044493340
+ },
+ "Component_[15826613364991382688]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 15826613364991382688
+ },
+ "Component_[1665003113283562343]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 1665003113283562343
+ },
+ "Component_[3704934735944502280]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 3704934735944502280
+ },
+ "Component_[5698542331457326479]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 5698542331457326479
+ },
+ "Component_[6644513399057217122]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 6644513399057217122,
+ "Parent Entity": "Entity_[1176639161715]"
+ },
+ "Component_[931091830724002070]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 931091830724002070
+ }
+ }
+ }
+ },
+ "Instances": {
+ "Instance_[503204883039]": {
+ "Source": "prefabs/Cloth/cloth_blinds_broken.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": -3.9779629707336426
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": -0.7587795257568359
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 1.0752365589141846
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303326914460116]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ },
+ "Instance_[563334425183]": {
+ "Source": "prefabs/Cloth/cloth_locked_corners_four.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": -4.94368839263916
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": 0.805694580078125
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 2.2616283893585205
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303417108773332]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ },
+ "Instance_[640643836511]": {
+ "Source": "prefabs/Cloth/cloth_locked_corners_two.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": -2.416099786758423
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": 2.790005683898926
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 2.1456499099731445
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303387044002260]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ },
+ "Instance_[735133117023]": {
+ "Source": "prefabs/Cloth/cloth_locked_edge.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": -1.9405040740966797
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": -0.8027572631835938
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 0.2776646614074707
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303356979231188]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ },
+ "Instance_[811083782986]": {
+ "Source": "prefabs/Cloth/cloth_blinds.prefab",
+ "Patches": [
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Parent Entity",
+ "value": "../Entity_[1146574390643]"
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/0",
+ "value": 0.6851601600646973
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/1",
+ "value": 0.1960926055908203
+ },
+ {
+ "op": "replace",
+ "path": "/ContainerEntity/Components/Component_[4272963378099646759]/Transform Data/Translate/2",
+ "value": 0.3339226245880127
+ },
+ {
+ "op": "add",
+ "path": "/ContainerEntity/Components/Component_[7874177159288365422]/Child Entity Order/0",
+ "value": "Entity_[303275374852564]"
+ },
+ {
+ "op": "remove",
+ "path": "/LinkId"
+ }
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/TerrainTexture.pak b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/TerrainTexture.pak
deleted file mode 100644
index fe3604a050..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/TerrainTexture.pak
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8739c76e681f900923b900c9df0ef75cf421d39cabb54650c4b9ad19b6a76d85
-size 22
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/filelist.xml b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/filelist.xml
deleted file mode 100644
index d3492ca7b6..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/filelist.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/level.pak b/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/level.pak
deleted file mode 100644
index 7fa23ea67f..0000000000
--- a/AutomatedTesting/Levels/NvCloth/NvCloth_AddClothSimulationToMesh/level.pak
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:81fc98854424d55e594a3983da53d2f5a4d7a7cf60e52e12366e4800d1d3f080
-size 38559
diff --git a/AutomatedTesting/Levels/Sponza/Sponza.prefab b/AutomatedTesting/Levels/Sponza/Sponza.prefab
new file mode 100644
index 0000000000..d755eb9774
--- /dev/null
+++ b/AutomatedTesting/Levels/Sponza/Sponza.prefab
@@ -0,0 +1,1489 @@
+{
+ "ContainerEntity": {
+ "Id": "Entity_[406217483857]",
+ "Name": "Level",
+ "Components": {
+ "Component_[10588931505759123943]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 10588931505759123943
+ },
+ "Component_[135321489898029517]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 135321489898029517
+ },
+ "Component_[14858507413812498857]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 14858507413812498857
+ },
+ "Component_[15178816766766638692]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 15178816766766638692
+ },
+ "Component_[17951702430591084334]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 17951702430591084334
+ },
+ "Component_[2563280132145207190]": {
+ "$type": "EditorLockComponent",
+ "Id": 2563280132145207190
+ },
+ "Component_[2822556265044965634]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 2822556265044965634
+ },
+ "Component_[446057404408737487]": {
+ "$type": "EditorPrefabComponent",
+ "Id": 446057404408737487
+ },
+ "Component_[5683088399314452447]": {
+ "$type": "SelectionComponent",
+ "Id": 5683088399314452447
+ },
+ "Component_[5801776107759571453]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 5801776107759571453,
+ "Parent Entity": ""
+ },
+ "Component_[9426929613394548724]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 9426929613394548724,
+ "ChildEntityOrderEntryArray": [
+ {
+ "EntityId": "Entity_[1081216208506]"
+ },
+ {
+ "EntityId": "Entity_[935187320442]",
+ "SortIndex": 1
+ },
+ {
+ "EntityId": "Entity_[935187320442]",
+ "SortIndex": 2
+ },
+ {
+ "EntityId": "Entity_[935187320442]",
+ "SortIndex": 3
+ },
+ {
+ "EntityId": "Entity_[935187320442]",
+ "SortIndex": 4
+ },
+ {
+ "EntityId": "Entity_[935187320442]",
+ "SortIndex": 5
+ }
+ ]
+ }
+ }
+ },
+ "Entities": {
+ "Entity_[1081216208506]": {
+ "Id": "Entity_[1081216208506]",
+ "Name": "LIGHTING",
+ "Components": {
+ "Component_[10807484710436476353]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 10807484710436476353
+ },
+ "Component_[12535994014200063229]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 12535994014200063229
+ },
+ "Component_[12567916482013107382]": {
+ "$type": "SelectionComponent",
+ "Id": 12567916482013107382
+ },
+ "Component_[15060801524064219165]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 15060801524064219165
+ },
+ "Component_[1597296709936823974]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 1597296709936823974
+ },
+ "Component_[17535943354307721937]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 17535943354307721937
+ },
+ "Component_[3144604952797148227]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 3144604952797148227,
+ "Parent Entity": "Entity_[406217483857]",
+ "Transform Data": {
+ "Translate": [
+ -0.7899999022483826,
+ -10.387897491455078,
+ 8.160000801086426
+ ]
+ }
+ },
+ "Component_[3567054724563794528]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 3567054724563794528
+ },
+ "Component_[8097342669405778862]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 8097342669405778862,
+ "ChildEntityOrderEntryArray": [
+ {
+ "EntityId": "Entity_[1613792153210]"
+ },
+ {
+ "EntityId": "Entity_[1119870914170]",
+ "SortIndex": 1
+ },
+ {
+ "EntityId": "Entity_[1115575946874]",
+ "SortIndex": 2
+ },
+ {
+ "EntityId": "Entity_[1111280979578]",
+ "SortIndex": 3
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 4
+ },
+ {
+ "EntityId": "Entity_[1102691044986]",
+ "SortIndex": 5
+ },
+ {
+ "EntityId": "Entity_[1098396077690]",
+ "SortIndex": 6
+ },
+ {
+ "EntityId": "Entity_[1094101110394]",
+ "SortIndex": 7
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 8
+ },
+ {
+ "EntityId": "Entity_[1106986012282]",
+ "SortIndex": 8
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 7
+ },
+ {
+ "EntityId": "Entity_[1089806143098]",
+ "SortIndex": 6
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 5
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 4
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 3
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 2
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 1
+ },
+ {
+ "EntityId": "Entity_[1085511175802]",
+ "SortIndex": 17
+ }
+ ]
+ },
+ "Component_[9064866490989218404]": {
+ "$type": "EditorLockComponent",
+ "Id": 9064866490989218404
+ }
+ }
+ },
+ "Entity_[1085511175802]": {
+ "Id": "Entity_[1085511175802]",
+ "Name": "ReflectionProbe_UpperLevel",
+ "Components": {
+ "Component_[1038637709631818218]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 1038637709631818218
+ },
+ "Component_[13993242205578133374]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 13993242205578133374
+ },
+ "Component_[14164886745537962894]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 14164886745537962894
+ },
+ "Component_[15336954334699691810]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 15336954334699691810
+ },
+ "Component_[17468041844277100837]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 17468041844277100837
+ },
+ "Component_[18107599364473376156]": {
+ "$type": "AZ::Render::EditorReflectionProbeComponent",
+ "Id": 18107599364473376156,
+ "Controller": {
+ "Configuration": {
+ "OuterHeight": 3.0,
+ "OuterLength": 3.0,
+ "OuterWidth": 1.0,
+ "InnerHeight": 2.75,
+ "InnerLength": 2.75,
+ "InnerWidth": 0.75,
+ "BakedCubemapQualityLevel": 3,
+ "BakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_UpperLevel__4DABA7BF-9367-4D95-AA5F-A9BF6BA0F7BE__iblspecularcm512.dds",
+ "BakedCubeMapAsset": {
+ "assetId": {
+ "guid": "{7854FC84-FDCE-5C02-AC9C-DBD6894F52F4}",
+ "subId": 2000
+ },
+ "assetHint": "reflectionprobes/reflectionprobe_upperlevel__4daba7bf-9367-4d95-aa5f-a9bf6ba0f7be__iblspecularcm512.dds.streamingimage"
+ },
+ "EntityId": 14568425243222190542,
+ "ShowVisualization": false
+ }
+ },
+ "bakedCubeMapQualityLevel": 3,
+ "bakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_UpperLevel__4DABA7BF-9367-4D95-AA5F-A9BF6BA0F7BE__iblspecularcm512.dds"
+ },
+ "Component_[320343109587065620]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 320343109587065620
+ },
+ "Component_[3267511667303906499]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 3267511667303906499,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ -13.363113403320313,
+ 10.723356246948242,
+ -1.8831419944763184
+ ]
+ }
+ },
+ "Component_[4634887848675078464]": {
+ "$type": "EditorLockComponent",
+ "Id": 4634887848675078464
+ },
+ "Component_[4783209159709094238]": {
+ "$type": "SelectionComponent",
+ "Id": 4783209159709094238
+ },
+ "Component_[728315922784530894]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 728315922784530894
+ },
+ "Component_[8999082608038997636]": {
+ "$type": "EditorAxisAlignedBoxShapeComponent",
+ "Id": 8999082608038997636,
+ "DisplayFilled": false,
+ "AxisAlignedBoxShape": {
+ "Configuration": {
+ "IsFilled": false,
+ "Dimensions": [
+ 1.0,
+ 3.0,
+ 3.0
+ ]
+ }
+ }
+ }
+ }
+ },
+ "Entity_[1089806143098]": {
+ "Id": "Entity_[1089806143098]",
+ "Name": "ReflectionProbe_Lion",
+ "Components": {
+ "Component_[14298922893146648725]": {
+ "$type": "EditorAxisAlignedBoxShapeComponent",
+ "Id": 14298922893146648725,
+ "Visible": false,
+ "DisplayFilled": false,
+ "AxisAlignedBoxShape": {
+ "Configuration": {
+ "IsFilled": false,
+ "Dimensions": [
+ 3.0,
+ 4.0,
+ 4.0
+ ]
+ }
+ }
+ },
+ "Component_[1455674266703651422]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 1455674266703651422
+ },
+ "Component_[14636684755738306181]": {
+ "$type": "AZ::Render::EditorReflectionProbeComponent",
+ "Id": 14636684755738306181,
+ "Controller": {
+ "Configuration": {
+ "OuterHeight": 4.0,
+ "OuterLength": 4.0,
+ "OuterWidth": 3.0,
+ "InnerHeight": 3.0,
+ "InnerLength": 3.0,
+ "InnerWidth": 2.0,
+ "BakedCubemapQualityLevel": 3,
+ "BakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_Lion__CA20BB89-1587-4410-80BA-8150CB0EF47B__iblspecularcm512.dds",
+ "BakedCubeMapAsset": {
+ "assetId": {
+ "guid": "{AC2EF073-63B8-53C2-8178-9B80D2D7E56D}",
+ "subId": 2000
+ },
+ "assetHint": "reflectionprobes/reflectionprobe_lion__ca20bb89-1587-4410-80ba-8150cb0ef47b__iblspecularcm512.dds.streamingimage"
+ },
+ "EntityId": 15188201575897363858,
+ "ShowVisualization": false
+ }
+ },
+ "bakedCubeMapQualityLevel": 3,
+ "bakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_Lion__CA20BB89-1587-4410-80BA-8150CB0EF47B__iblspecularcm512.dds"
+ },
+ "Component_[1558055592965824024]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 1558055592965824024
+ },
+ "Component_[161549568296074325]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 161549568296074325
+ },
+ "Component_[16573539057585083382]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 16573539057585083382
+ },
+ "Component_[17523994278098812420]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 17523994278098812420,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ -13.342336654663086,
+ 10.449432373046875,
+ -6.156347274780273
+ ]
+ }
+ },
+ "Component_[1895148655574754151]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 1895148655574754151
+ },
+ "Component_[2659020665645761255]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 2659020665645761255
+ },
+ "Component_[3707403743603935171]": {
+ "$type": "EditorLockComponent",
+ "Id": 3707403743603935171
+ },
+ "Component_[5008186835003860730]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 5008186835003860730
+ },
+ "Component_[7632822173429043662]": {
+ "$type": "SelectionComponent",
+ "Id": 7632822173429043662
+ }
+ }
+ },
+ "Entity_[1094101110394]": {
+ "Id": "Entity_[1094101110394]",
+ "Name": "ReflectionProbe_Scene",
+ "Components": {
+ "Component_[1084328120591698803]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 1084328120591698803,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ 0.0,
+ 10.77357292175293,
+ -2.114013671875
+ ]
+ }
+ },
+ "Component_[11927919033815991882]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 11927919033815991882
+ },
+ "Component_[12922039245522655341]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 12922039245522655341
+ },
+ "Component_[13830787916768787880]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 13830787916768787880
+ },
+ "Component_[13864356435863998063]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 13864356435863998063
+ },
+ "Component_[14618987283145709626]": {
+ "$type": "EditorLockComponent",
+ "Id": 14618987283145709626
+ },
+ "Component_[14690766657349179909]": {
+ "$type": "AZ::Render::EditorReflectionProbeComponent",
+ "Id": 14690766657349179909,
+ "Controller": {
+ "Configuration": {
+ "OuterHeight": 17.0,
+ "OuterLength": 25.0,
+ "OuterWidth": 35.0,
+ "BakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_Scene__D245F488-152E-4A3A-898B-FBCF71E4A87A__iblspecularcm256.dds",
+ "BakedCubeMapAsset": {
+ "assetId": {
+ "guid": "{E94B628B-9E61-5DD4-8AFD-200DD7540CAD}",
+ "subId": 2000
+ },
+ "assetHint": "reflectionprobes/reflectionprobe_scene__d245f488-152e-4a3a-898b-fbcf71e4a87a__iblspecularcm256.dds.streamingimage"
+ },
+ "EntityId": 18057698412353009297,
+ "ShowVisualization": false
+ }
+ },
+ "bakedCubeMapRelativePath": "ReflectionProbes/ReflectionProbe_Scene__D245F488-152E-4A3A-898B-FBCF71E4A87A__iblspecularcm256.dds"
+ },
+ "Component_[16801122362190390827]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 16801122362190390827
+ },
+ "Component_[1897972008443666285]": {
+ "$type": "SelectionComponent",
+ "Id": 1897972008443666285
+ },
+ "Component_[2961811751273549376]": {
+ "$type": "EditorBoxShapeComponent",
+ "Id": 2961811751273549376,
+ "DisplayFilled": false,
+ "BoxShape": {
+ "Configuration": {
+ "IsFilled": false,
+ "Dimensions": [
+ 35.0,
+ 25.0,
+ 17.0
+ ]
+ }
+ }
+ },
+ "Component_[879709407962202982]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 879709407962202982
+ },
+ "Component_[9324834207126061548]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 9324834207126061548
+ }
+ }
+ },
+ "Entity_[1098396077690]": {
+ "Id": "Entity_[1098396077690]",
+ "Name": "PointLight_02",
+ "Components": {
+ "Component_[10534705633537717631]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 10534705633537717631
+ },
+ "Component_[10552323305936140565]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 10552323305936140565
+ },
+ "Component_[13058374277331580766]": {
+ "$type": "SelectionComponent",
+ "Id": 13058374277331580766
+ },
+ "Component_[14949512479506290054]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 14949512479506290054
+ },
+ "Component_[1548752089356963562]": {
+ "$type": "AZ::Render::EditorAreaLightComponent",
+ "Id": 1548752089356963562,
+ "Controller": {
+ "Configuration": {
+ "LightType": 1,
+ "IntensityMode": 4,
+ "Intensity": 15.359000205993652,
+ "AttenuationRadius": 72.0053482055664,
+ "Enable Shadow": true
+ }
+ }
+ },
+ "Component_[15792288291507192351]": {
+ "$type": "EditorLockComponent",
+ "Id": 15792288291507192351
+ },
+ "Component_[17205110032543434616]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 17205110032543434616
+ },
+ "Component_[2030794600614672812]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 2030794600614672812
+ },
+ "Component_[2978368743586258871]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 2978368743586258871
+ },
+ "Component_[4291094216513321822]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 4291094216513321822,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ 2.581982135772705,
+ 10.840080261230469,
+ -0.9913702011108398
+ ]
+ }
+ },
+ "Component_[4611947863173505]": {
+ "$type": "EditorSphereShapeComponent",
+ "Id": 4611947863173505,
+ "ShapeColor": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "SphereShape": {
+ "Configuration": {
+ "Radius": 0.05000000074505806
+ }
+ }
+ },
+ "Component_[7416869202661318055]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7416869202661318055
+ }
+ }
+ },
+ "Entity_[1102691044986]": {
+ "Id": "Entity_[1102691044986]",
+ "Name": "PointLight_01",
+ "Components": {
+ "Component_[11365983295692083092]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 11365983295692083092
+ },
+ "Component_[11475917125854123708]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 11475917125854123708
+ },
+ "Component_[14430205535050778968]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 14430205535050778968
+ },
+ "Component_[1466324423527856074]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 1466324423527856074
+ },
+ "Component_[15554484541906022976]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 15554484541906022976
+ },
+ "Component_[15619369680404016454]": {
+ "$type": "EditorLockComponent",
+ "Id": 15619369680404016454
+ },
+ "Component_[2289960019728880406]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 2289960019728880406
+ },
+ "Component_[2537457439377723385]": {
+ "$type": "SelectionComponent",
+ "Id": 2537457439377723385
+ },
+ "Component_[3297556825839117286]": {
+ "$type": "EditorSphereShapeComponent",
+ "Id": 3297556825839117286,
+ "ShapeColor": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "SphereShape": {
+ "Configuration": {
+ "Radius": 0.05000000074505806
+ }
+ }
+ },
+ "Component_[6893246775558579859]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 6893246775558579859
+ },
+ "Component_[776705866357873394]": {
+ "$type": "AZ::Render::EditorAreaLightComponent",
+ "Id": 776705866357873394,
+ "Controller": {
+ "Configuration": {
+ "LightType": 1,
+ "IntensityMode": 4,
+ "Intensity": 15.84000015258789,
+ "AttenuationRadius": 85.0672607421875
+ }
+ }
+ },
+ "Component_[9324553387194905409]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 9324553387194905409,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ -2.2817187309265137,
+ 10.581533432006836,
+ 7.5597944259643555
+ ]
+ }
+ }
+ }
+ },
+ "Entity_[1106986012282]": {
+ "Id": "Entity_[1106986012282]",
+ "Name": "EnvironmentLight",
+ "Components": {
+ "Component_[10422300770865106323]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 10422300770865106323
+ },
+ "Component_[15319816472229733542]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 15319816472229733542
+ },
+ "Component_[16299889256965403184]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 16299889256965403184,
+ "Parent Entity": "Entity_[1081216208506]"
+ },
+ "Component_[16493827350222098538]": {
+ "$type": "AZ::Render::EditorHDRiSkyboxComponent",
+ "Id": 16493827350222098538,
+ "Controller": {
+ "Configuration": {
+ "CubemapAsset": {
+ "assetId": {
+ "guid": "{B78C84E9-45BE-5A50-8898-177B33B8DA84}",
+ "subId": 2000
+ },
+ "assetHint": "envhdri/photo_studio_01_4k_iblskyboxcm_iblspecular.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[16719262120090148450]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 16719262120090148450
+ },
+ "Component_[16793670898160667741]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 16793670898160667741
+ },
+ "Component_[18257477315946306250]": {
+ "$type": "AZ::Render::EditorImageBasedLightComponent",
+ "Id": 18257477315946306250,
+ "Controller": {
+ "Configuration": {
+ "diffuseImageAsset": {
+ "assetId": {
+ "guid": "{B78C84E9-45BE-5A50-8898-177B33B8DA84}",
+ "subId": 3000
+ },
+ "assetHint": "envhdri/photo_studio_01_4k_iblskyboxcm_ibldiffuse.exr.streamingimage"
+ },
+ "specularImageAsset": {
+ "assetId": {
+ "guid": "{B78C84E9-45BE-5A50-8898-177B33B8DA84}",
+ "subId": 2000
+ },
+ "assetHint": "envhdri/photo_studio_01_4k_iblskyboxcm_iblspecular.exr.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[4042063241506989985]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 4042063241506989985
+ },
+ "Component_[4043099982625130775]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 4043099982625130775
+ },
+ "Component_[5787212845085960464]": {
+ "$type": "SelectionComponent",
+ "Id": 5787212845085960464
+ },
+ "Component_[7736270313311953442]": {
+ "$type": "EditorLockComponent",
+ "Id": 7736270313311953442
+ },
+ "Component_[9830936955971178632]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 9830936955971178632
+ }
+ }
+ },
+ "Entity_[1111280979578]": {
+ "Id": "Entity_[1111280979578]",
+ "Name": "DirectionalLight_01",
+ "Components": {
+ "Component_[10555827406016705179]": {
+ "$type": "AZ::Render::EditorDirectionalLightComponent",
+ "Id": 10555827406016705179,
+ "Controller": {
+ "Configuration": {
+ "Intensity": 2.700000047683716,
+ "CameraEntityId": "",
+ "ShadowmapSize": "Size2048",
+ "ShadowFilterMethod": 3
+ }
+ }
+ },
+ "Component_[10958643723292926203]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 10958643723292926203
+ },
+ "Component_[11446130315244380400]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 11446130315244380400
+ },
+ "Component_[13236945310915796893]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 13236945310915796893
+ },
+ "Component_[1489806191674568397]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 1489806191674568397
+ },
+ "Component_[5250190904313425540]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 5250190904313425540
+ },
+ "Component_[6777228833367576785]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 6777228833367576785
+ },
+ "Component_[7346763132239097919]": {
+ "$type": "SelectionComponent",
+ "Id": 7346763132239097919
+ },
+ "Component_[7453645446520457790]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 7453645446520457790,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ 2.5331368446350098,
+ 10.560922622680664,
+ -5.415566921234131
+ ],
+ "Rotate": [
+ -103.25949096679688,
+ -1.1917028427124023,
+ 9.752097129821777
+ ]
+ }
+ },
+ "Component_[7712714857312986803]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 7712714857312986803
+ },
+ "Component_[9180065208679807523]": {
+ "$type": "EditorLockComponent",
+ "Id": 9180065208679807523
+ }
+ }
+ },
+ "Entity_[1115575946874]": {
+ "Id": "Entity_[1115575946874]",
+ "Name": "DiffuseGI_02",
+ "Components": {
+ "Component_[10817704949085277229]": {
+ "$type": "EditorLockComponent",
+ "Id": 10817704949085277229
+ },
+ "Component_[11636460237576493708]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 11636460237576493708
+ },
+ "Component_[16774608348754201693]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 16774608348754201693
+ },
+ "Component_[17994425379406278407]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 17994425379406278407,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ 8.965616226196289,
+ 10.854515075683594,
+ -1.710240364074707
+ ]
+ }
+ },
+ "Component_[3002179259651230640]": {
+ "$type": "AZ::Render::EditorDiffuseProbeGridComponent",
+ "Id": 3002179259651230640,
+ "Controller": {
+ "Configuration": {
+ "Extents": [
+ 21.0,
+ 23.0,
+ 16.0
+ ],
+ "BakedIrradianceTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_02_A78EEAF4-7CB2-4635-AA6F-2ED677328706_Irradiance_lutrgba16.dds",
+ "BakedDistanceTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_02_84D0F8A4-AD4F-4FD1-BA26-4803EAD88FE2_Distance_lutrg32f.dds",
+ "BakedRelocationTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_02_9DC8C208-5327-4F0F-B1DF-C98F7F81F07D_Relocation_lutrgba16f.dds",
+ "BakedClassificationTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_02_222F1F65-BF31-4E0D-9957-14AE73194A37_Classification_lutr32f.dds",
+ "BakedIrradianceTextureAsset": {
+ "assetId": {
+ "guid": "{5B66D8B5-E4AE-5571-A551-1D21333519A0}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_02_a78eeaf4-7cb2-4635-aa6f-2ed677328706_irradiance_lutrgba16.dds.streamingimage"
+ },
+ "BakedDistanceTextureAsset": {
+ "assetId": {
+ "guid": "{B75364AF-D0AC-5E8C-A3B0-EBAFB063D6C3}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_02_84d0f8a4-ad4f-4fd1-ba26-4803ead88fe2_distance_lutrg32f.dds.streamingimage"
+ },
+ "BakedRelocationTextureAsset": {
+ "assetId": {
+ "guid": "{CB803781-B18A-51CE-AF8C-DF24FC48160B}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_02_9dc8c208-5327-4f0f-b1df-c98f7f81f07d_relocation_lutrgba16f.dds.streamingimage"
+ },
+ "BakedClassificationTextureAsset": {
+ "assetId": {
+ "guid": "{D4B4F7E6-3B39-58BE-B8E9-7D057EF9A1F9}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_02_222f1f65-bf31-4e0d-9957-14ae73194a37_classification_lutr32f.dds.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[4937167128415130244]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 4937167128415130244
+ },
+ "Component_[544440683292345740]": {
+ "$type": "EditorAxisAlignedBoxShapeComponent",
+ "Id": 544440683292345740,
+ "DisplayFilled": false,
+ "AxisAlignedBoxShape": {
+ "Configuration": {
+ "IsFilled": false,
+ "Dimensions": [
+ 21.0,
+ 23.0,
+ 16.0
+ ]
+ }
+ }
+ },
+ "Component_[578950453122763358]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 578950453122763358
+ },
+ "Component_[6950664630097923667]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 6950664630097923667
+ },
+ "Component_[7122880078686807527]": {
+ "$type": "SelectionComponent",
+ "Id": 7122880078686807527
+ },
+ "Component_[800320972776069167]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 800320972776069167
+ },
+ "Component_[8383621918310482787]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 8383621918310482787
+ }
+ }
+ },
+ "Entity_[1119870914170]": {
+ "Id": "Entity_[1119870914170]",
+ "Name": "DiffuseGI_01",
+ "Components": {
+ "Component_[12209861770686976090]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 12209861770686976090
+ },
+ "Component_[15353835329112294192]": {
+ "$type": "AZ::Render::EditorDiffuseProbeGridComponent",
+ "Id": 15353835329112294192,
+ "Controller": {
+ "Configuration": {
+ "Extents": [
+ 21.0,
+ 23.0,
+ 16.0
+ ],
+ "BakedIrradianceTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_01_1B66C428-1D7C-4A53-BC9B-6F23E420FEC0_Irradiance_lutrgba16.dds",
+ "BakedDistanceTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_01_5A2C9A6B-F914-4D9E-8098-2AD411B69F87_Distance_lutrg32f.dds",
+ "BakedRelocationTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_01_52D75B1C-90BE-40A8-A874-3376F6B39299_Relocation_lutrgba16f.dds",
+ "BakedClassificationTextureRelativePath": "DiffuseProbeGrids/DiffuseGI_01_A483018F-78ED-4814-986F-F925B0AA5EF8_Classification_lutr32f.dds",
+ "BakedIrradianceTextureAsset": {
+ "assetId": {
+ "guid": "{458A2A6C-6DEA-5D69-99B5-49A4F227C0A8}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_01_1b66c428-1d7c-4a53-bc9b-6f23e420fec0_irradiance_lutrgba16.dds.streamingimage"
+ },
+ "BakedDistanceTextureAsset": {
+ "assetId": {
+ "guid": "{9CB9A440-9BB1-56CA-B988-35FCF667F993}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_01_5a2c9a6b-f914-4d9e-8098-2ad411b69f87_distance_lutrg32f.dds.streamingimage"
+ },
+ "BakedRelocationTextureAsset": {
+ "assetId": {
+ "guid": "{DD6EB8D0-B68D-5AB8-B781-8E702F57C07D}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_01_52d75b1c-90be-40a8-a874-3376f6b39299_relocation_lutrgba16f.dds.streamingimage"
+ },
+ "BakedClassificationTextureAsset": {
+ "assetId": {
+ "guid": "{17D2178C-D102-5B11-B54C-A5EB233B570F}",
+ "subId": 1000
+ },
+ "assetHint": "diffuseprobegrids/diffusegi_01_a483018f-78ed-4814-986f-f925b0aa5ef8_classification_lutr32f.dds.streamingimage"
+ }
+ }
+ }
+ },
+ "Component_[15878232015065363455]": {
+ "$type": "EditorAxisAlignedBoxShapeComponent",
+ "Id": 15878232015065363455,
+ "DisplayFilled": false,
+ "AxisAlignedBoxShape": {
+ "Configuration": {
+ "IsFilled": false,
+ "Dimensions": [
+ 21.0,
+ 23.0,
+ 16.0
+ ]
+ }
+ }
+ },
+ "Component_[17684272660747914090]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 17684272660747914090
+ },
+ "Component_[6724702399933727508]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 6724702399933727508,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ -9.077760696411133,
+ 10.860031127929688,
+ -1.7297496795654297
+ ]
+ }
+ },
+ "Component_[6821316397695137380]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 6821316397695137380
+ },
+ "Component_[7220674190610508127]": {
+ "$type": "SelectionComponent",
+ "Id": 7220674190610508127
+ },
+ "Component_[7255528083818713568]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 7255528083818713568
+ },
+ "Component_[7481484881559898788]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 7481484881559898788
+ },
+ "Component_[7524464908826669595]": {
+ "$type": "EditorLockComponent",
+ "Id": 7524464908826669595
+ },
+ "Component_[8325378114504743847]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 8325378114504743847
+ },
+ "Component_[997706187713882733]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 997706187713882733
+ }
+ }
+ },
+ "Entity_[1613792153210]": {
+ "Id": "Entity_[1613792153210]",
+ "Name": "Bloom",
+ "Components": {
+ "Component_[10907847005341580620]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 10907847005341580620
+ },
+ "Component_[12758150889799563454]": {
+ "$type": "SelectionComponent",
+ "Id": 12758150889799563454
+ },
+ "Component_[13247037123089245326]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 13247037123089245326
+ },
+ "Component_[14642483781584474817]": {
+ "$type": "EditorLockComponent",
+ "Id": 14642483781584474817
+ },
+ "Component_[17298230148657754532]": {
+ "$type": "AZ::Render::EditorBloomComponent",
+ "Id": 17298230148657754532,
+ "Controller": {
+ "Configuration": {
+ "Enabled": true,
+ "Intensity": 0.20000000298023224
+ }
+ }
+ },
+ "Component_[18357464390083641697]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 18357464390083641697
+ },
+ "Component_[2912267744881101414]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 2912267744881101414
+ },
+ "Component_[3110194465577429301]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 3110194465577429301
+ },
+ "Component_[5583330531036127211]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 5583330531036127211
+ },
+ "Component_[6528482372370936011]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 6528482372370936011
+ },
+ "Component_[6944819497695081730]": {
+ "$type": "AZ::Render::EditorPostFxLayerComponent",
+ "Id": 6944819497695081730
+ },
+ "Component_[8401224278912231908]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 8401224278912231908,
+ "Parent Entity": "Entity_[1081216208506]",
+ "Transform Data": {
+ "Translate": [
+ -9.137216567993164,
+ 8.613965034484863,
+ -6.547377586364746
+ ]
+ }
+ }
+ }
+ },
+ "Entity_[935187320442]": {
+ "Id": "Entity_[935187320442]",
+ "Name": "GEO_Sponza",
+ "Components": {
+ "Component_[10397152383962473889]": {
+ "$type": "EditorEntityIconComponent",
+ "Id": 10397152383962473889
+ },
+ "Component_[10403905564538530551]": {
+ "$type": "EditorEntitySortComponent",
+ "Id": 10403905564538530551
+ },
+ "Component_[1212647033037288333]": {
+ "$type": "SelectionComponent",
+ "Id": 1212647033037288333
+ },
+ "Component_[13446466918421510411]": {
+ "$type": "EditorPendingCompositionComponent",
+ "Id": 13446466918421510411
+ },
+ "Component_[14976154143417033372]": {
+ "$type": "EditorMaterialComponent",
+ "Id": 14976154143417033372,
+ "Controller": {
+ "Configuration": {
+ "materials": [
+ {
+ "Key": {
+ "materialSlotStableId": 333178618
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{BE4DBB1D-16BA-5D82-9865-58904BAFD500}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_columna.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 338114910
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{CE74A12B-9D17-5C84-8118-9F071E61AF82}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_curtaingreen.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 775278732
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{31A90D34-8E36-5A69-AF65-CEC3776F4BD4}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_fabricblue.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 856448979
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{7EDE4FB5-7629-5EA7-942B-DF4404F7F1BF}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_lion.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 919776125
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{BA39AE42-222C-5965-868C-1A1D7ACD3B8B}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_arch.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 1207315403
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{0B8E109B-F295-544E-A360-193D435E9CE7}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_bricks.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 1802255958
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{31EDB842-C01F-53C3-BA5B-ABE47AE4202E}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_roof.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2017475302
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{96768574-B7E8-5AB1-A1D6-41A1FA817749}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_vaseround.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2070928957
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{5E3B1B14-DD87-56A9-AF68-58E17A98DAA4}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_vase.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2207162385
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{5E8EF668-45AD-5ADA-99CB-37F0BD155282}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_vaseplant.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2270338210
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{7D57D2FA-CC79-5A05-B89D-A821A69E06AA}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_fabricgreen.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2309916823
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{66472C16-905D-58D3-A2FF-189D0D81A72C}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_fabricred.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2590157792
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{B064CDF8-E63A-50FE-82C7-F73863C6BAE7}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_floor.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 2958866002
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{C4EF81AF-6924-51F9-B653-374FDEEF2DFF}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_background.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3018304250
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{348EBEE6-9480-5284-8427-F3503D835C7A}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_details.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3091600944
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{1D82B774-8649-53B8-89B8-38392145D0B3}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_columnb.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3123792718
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{9ADCD89D-834D-5894-9829-81A938408C56}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_ceiling.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3332811907
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{6DC9F913-16C6-58D4-9E62-7C1BD2F17BAA}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_flagpole.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3597278613
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{CC0ED9DC-03DD-5BC3-97C7-30FCC53AB6D3}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_curtainred.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3682637945
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{0E6CFBCB-8A02-5BF8-A7BF-F367D729E343}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_curtainblue.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3761550797
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{8889EE6F-29FD-56D6-806A-77ED795F25E1}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_vasehanging.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3856935901
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{B44690C5-30A3-5B6B-8785-E51111965AFC}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_columnc.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 3861299630
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{674F363F-C927-5977-8215-4B7E9D3D7E5A}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_leaf.azmaterial"
+ }
+ }
+ },
+ {
+ "Key": {
+ "materialSlotStableId": 4043076162
+ },
+ "Value": {
+ "MaterialAsset": {
+ "assetId": {
+ "guid": "{73D2E54D-AA36-5EE3-818D-A627A014FE15}"
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza_mat_chain.azmaterial"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "Component_[17881751166570014482]": {
+ "$type": "EditorVisibilityComponent",
+ "Id": 17881751166570014482
+ },
+ "Component_[1890254654486049633]": {
+ "$type": "EditorLockComponent",
+ "Id": 1890254654486049633
+ },
+ "Component_[2265788496878584641]": {
+ "$type": "EditorInspectorComponent",
+ "Id": 2265788496878584641
+ },
+ "Component_[4234266794358802507]": {
+ "$type": "EditorOnlyEntityComponent",
+ "Id": 4234266794358802507
+ },
+ "Component_[7538889219751513244]": {
+ "$type": "AZ::Render::EditorMeshComponent",
+ "Id": 7538889219751513244,
+ "Controller": {
+ "Configuration": {
+ "ModelAsset": {
+ "assetId": {
+ "guid": "{0E91A4B4-9A13-56A1-8007-4F9594DFB8FC}",
+ "subId": 282066894
+ },
+ "assetHint": "gem/sponza/assets/objects/sponza.azmodel"
+ }
+ }
+ }
+ },
+ "Component_[8795821630604550348]": {
+ "$type": "EditorDisabledCompositionComponent",
+ "Id": 8795821630604550348
+ },
+ "Component_[972437945687475257]": {
+ "$type": "{27F1E1A1-8D9D-4C3B-BD3A-AFB9762449C0} TransformComponent",
+ "Id": 972437945687475257,
+ "Parent Entity": "Entity_[406217483857]"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/AutomatedTesting/Levels/Sponza/tags.txt b/AutomatedTesting/Levels/Sponza/tags.txt
new file mode 100644
index 0000000000..0d6c1880e7
--- /dev/null
+++ b/AutomatedTesting/Levels/Sponza/tags.txt
@@ -0,0 +1,12 @@
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
+0,0,0,0,0,0
diff --git a/AutomatedTesting/ReflectionProbes/ReflectionProbe_Lion__CA20BB89-1587-4410-80BA-8150CB0EF47B__iblspecularcm512.dds b/AutomatedTesting/ReflectionProbes/ReflectionProbe_Lion__CA20BB89-1587-4410-80BA-8150CB0EF47B__iblspecularcm512.dds
new file mode 100644
index 0000000000..86dea1906c
--- /dev/null
+++ b/AutomatedTesting/ReflectionProbes/ReflectionProbe_Lion__CA20BB89-1587-4410-80BA-8150CB0EF47B__iblspecularcm512.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d65e361a150417b56fa88ac2171bbef6512f526a15695fdc52a446a7f891c593
+size 50331796
diff --git a/AutomatedTesting/ReflectionProbes/ReflectionProbe_Scene__D245F488-152E-4A3A-898B-FBCF71E4A87A__iblspecularcm256.dds b/AutomatedTesting/ReflectionProbes/ReflectionProbe_Scene__D245F488-152E-4A3A-898B-FBCF71E4A87A__iblspecularcm256.dds
new file mode 100644
index 0000000000..536270c531
--- /dev/null
+++ b/AutomatedTesting/ReflectionProbes/ReflectionProbe_Scene__D245F488-152E-4A3A-898B-FBCF71E4A87A__iblspecularcm256.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c3fbf2f491048ed05ff1ea15728afd2fbc059880d0e61efb8c557cf97ebaae4
+size 50331796
diff --git a/AutomatedTesting/ReflectionProbes/ReflectionProbe_UpperLevel__4DABA7BF-9367-4D95-AA5F-A9BF6BA0F7BE__iblspecularcm512.dds b/AutomatedTesting/ReflectionProbes/ReflectionProbe_UpperLevel__4DABA7BF-9367-4D95-AA5F-A9BF6BA0F7BE__iblspecularcm512.dds
new file mode 100644
index 0000000000..bb00476697
--- /dev/null
+++ b/AutomatedTesting/ReflectionProbes/ReflectionProbe_UpperLevel__4DABA7BF-9367-4D95-AA5F-A9BF6BA0F7BE__iblspecularcm512.dds
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f142022323102e4225afc2f9b44b6631683691d180fdf4586bce34f1fd13a76
+size 50331796
diff --git a/Code/Editor/CryEdit.cpp b/Code/Editor/CryEdit.cpp
index d5f2305dfb..3890a9e59a 100644
--- a/Code/Editor/CryEdit.cpp
+++ b/Code/Editor/CryEdit.cpp
@@ -2810,14 +2810,11 @@ void CCryEditApp::OpenProjectManager(const AZStd::string& screen)
{
// provide the current project path for in case we want to update the project
AZ::IO::FixedMaxPathString projectPath = AZ::Utils::GetProjectPath();
-#if !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
- const char* argumentQuoteString = R"(")";
-#else
- const char* argumentQuoteString = R"(\")";
-#endif
- const AZStd::string commandLineOptions = AZStd::string::format(R"( --screen %s --project-path %s%s%s)",
- screen.c_str(),
- argumentQuoteString, projectPath.c_str(), argumentQuoteString);
+
+ const AZStd::vector commandLineOptions {
+ "--screen", screen,
+ "--project-path", AZStd::string::format(R"("%s")", projectPath.c_str()) };
+
bool launchSuccess = AzFramework::ProjectManager::LaunchProjectManager(commandLineOptions);
if (!launchSuccess)
{
diff --git a/Code/Editor/EditorModularViewportCameraComposer.cpp b/Code/Editor/EditorModularViewportCameraComposer.cpp
index f145adf72f..3f66468584 100644
--- a/Code/Editor/EditorModularViewportCameraComposer.cpp
+++ b/Code/Editor/EditorModularViewportCameraComposer.cpp
@@ -356,7 +356,8 @@ namespace SandboxEditor
AZ::TransformBus::EventResult(worldFromLocal, viewEntityId, &AZ::TransformBus::Events::GetWorldTM);
AtomToolsFramework::ModularViewportCameraControllerRequestBus::Event(
- m_viewportId, &AtomToolsFramework::ModularViewportCameraControllerRequestBus::Events::StartTrackingTransform, worldFromLocal);
+ m_viewportId, &AtomToolsFramework::ModularViewportCameraControllerRequestBus::Events::StartTrackingTransform,
+ worldFromLocal);
}
else
{
@@ -367,8 +368,10 @@ namespace SandboxEditor
void EditorModularViewportCameraComposer::OnTick(const float deltaTime, [[maybe_unused]] AZ::ScriptTimePoint time)
{
- const float delta = [duration = &ed_cameraDefaultOrbitFadeDuration, deltaTime] {
- if (*duration == 0.0f) {
+ const float delta = [duration = &ed_cameraDefaultOrbitFadeDuration, deltaTime]
+ {
+ if (*duration == 0.0f)
+ {
return 1.0f;
}
return deltaTime / *duration;
diff --git a/Code/Editor/GotoPositionDlg.cpp b/Code/Editor/GotoPositionDlg.cpp
index 84d149de58..37f55f19ea 100644
--- a/Code/Editor/GotoPositionDlg.cpp
+++ b/Code/Editor/GotoPositionDlg.cpp
@@ -6,7 +6,6 @@
*
*/
-
#include "GotoPositionDlg.h"
#include "EditorDefs.h"
@@ -25,6 +24,17 @@ AZ_PUSH_DISABLE_DLL_EXPORT_MEMBER_WARNING
#include
AZ_POP_DISABLE_DLL_EXPORT_MEMBER_WARNING
+void GotoPositionPitchConstraints::DeterminePitchRange(const AngleRangeConfigureFn& configurePitchRangeFn) const
+{
+ const auto [pitchMinRadians, pitchMaxRadians] = AzFramework::CameraPitchMinMaxRadians();
+ configurePitchRangeFn(AZ::RadToDeg(pitchMinRadians), AZ::RadToDeg(pitchMaxRadians));
+}
+
+float GotoPositionPitchConstraints::PitchClampedRadians(float pitchDegrees) const
+{
+ return AzFramework::ClampPitchRotation(AZ::DegToRad(pitchDegrees));
+}
+
GotoPositionDialog::GotoPositionDialog(QWidget* parent)
: QDialog(parent)
, m_ui(new Ui::GotoPositionDialog)
@@ -55,20 +65,23 @@ void GotoPositionDialog::OnInitDialog()
const auto yawDegrees = AZ::RadToDeg(cameraRotation.GetZ());
// position
- m_ui->m_dymX->setRange(-64000.0, 64000.0);
+ const double CameraPositionExtent = 64000.0;
+ m_ui->m_dymX->setRange(-CameraPositionExtent, CameraPositionExtent);
m_ui->m_dymX->setValue(cameraTranslation.GetX());
-
- m_ui->m_dymY->setRange(-64000.0, 64000.0);
+ m_ui->m_dymY->setRange(-CameraPositionExtent, CameraPositionExtent);
m_ui->m_dymY->setValue(cameraTranslation.GetY());
-
- m_ui->m_dymZ->setRange(-64000.0, 64000.0);
+ m_ui->m_dymZ->setRange(-CameraPositionExtent, CameraPositionExtent);
m_ui->m_dymZ->setValue(cameraTranslation.GetZ());
// rotation
- m_ui->m_dymAnglePitch->setRange(-180.0, 180.0);
+ m_gotoPositionPitchConstraints.DeterminePitchRange(
+ [this](const float minPitchDegrees, const float maxPitchDegrees)
+ {
+ m_ui->m_dymAnglePitch->setRange(minPitchDegrees, maxPitchDegrees);
+ });
m_ui->m_dymAnglePitch->setValue(pitchDegrees);
- m_ui->m_dymAngleYaw->setRange(-180.0, 180.0);
+ m_ui->m_dymAngleYaw->setRange(-360, 360);
m_ui->m_dymAngleYaw->setValue(yawDegrees);
// ensure the goto button is highlighted correctly.
@@ -108,12 +121,13 @@ void GotoPositionDialog::OnUpdateNumbers()
void GotoPositionDialog::accept()
{
- SandboxEditor::InterpolateDefaultViewportCameraToTransform(
- AZ::Vector3(
- aznumeric_cast(m_ui->m_dymX->value()), aznumeric_cast(m_ui->m_dymY->value()),
- aznumeric_cast(m_ui->m_dymZ->value())),
- AZ::DegToRad(aznumeric_cast(m_ui->m_dymAnglePitch->value())),
- AZ::DegToRad(aznumeric_cast(m_ui->m_dymAngleYaw->value())));
+ const auto position = AZ::Vector3(
+ aznumeric_cast(m_ui->m_dymX->value()), aznumeric_cast(m_ui->m_dymY->value()),
+ aznumeric_cast(m_ui->m_dymZ->value()));
+ const auto pitchRadians = m_gotoPositionPitchConstraints.PitchClampedRadians(aznumeric_cast(m_ui->m_dymAnglePitch->value()));
+ const auto yawRadians = AZ::DegToRad(aznumeric_cast(m_ui->m_dymAngleYaw->value()));
+
+ SandboxEditor::InterpolateDefaultViewportCameraToTransform(position, pitchRadians, yawRadians);
QDialog::accept();
}
diff --git a/Code/Editor/GotoPositionDlg.h b/Code/Editor/GotoPositionDlg.h
index ef46b9cbc8..5b627fcebb 100644
--- a/Code/Editor/GotoPositionDlg.h
+++ b/Code/Editor/GotoPositionDlg.h
@@ -6,21 +6,33 @@
*
*/
-
#pragma once
#if !defined(Q_MOC_RUN)
#include
#endif
+#include
+
+#include
+
namespace Ui
{
class GotoPositionDialog;
}
+//! Utility to deal with ensuring camera pitch values are in the expected range.
+struct GotoPositionPitchConstraints
+{
+ using AngleRangeConfigureFn = AZStd::function;
+ //! Notify a callback with the min and max camera pitch constraints (no tolerance included).
+ SANDBOX_API void DeterminePitchRange(const AngleRangeConfigureFn& configurePitchRangeFn) const;
+ //! Returns the clamped pitch value (including tolerance with range extents).
+ SANDBOX_API float PitchClampedRadians(float pitchDegrees) const;
+};
+
//! GotoPositionDialog for setting camera position and rotation.
-class GotoPositionDialog
- : public QDialog
+class GotoPositionDialog : public QDialog
{
Q_OBJECT
@@ -39,5 +51,6 @@ public:
QString m_transform;
private:
+ GotoPositionPitchConstraints m_gotoPositionPitchConstraints;
QScopedPointer m_ui;
};
diff --git a/Code/Editor/Lib/Tests/Camera/test_EditorCamera.cpp b/Code/Editor/Lib/Tests/Camera/test_EditorCamera.cpp
index dd7698a82e..0dcda3be33 100644
--- a/Code/Editor/Lib/Tests/Camera/test_EditorCamera.cpp
+++ b/Code/Editor/Lib/Tests/Camera/test_EditorCamera.cpp
@@ -15,6 +15,8 @@
#include
#include
+#include
+
namespace UnitTest
{
class EditorCameraFixture : public ::testing::Test
@@ -257,4 +259,35 @@ namespace UnitTest
EXPECT_THAT(interpolating, ::testing::IsFalse());
EXPECT_THAT(nextInterpolationBegan, ::testing::IsTrue());
}
+
+ TEST(GotoPositionPitchConstraints, GoToPositionPitchIsSetToPlusOrMinusNinetyDegrees)
+ {
+ float minPitch = 0.0f;
+ float maxPitch = 0.0f;
+
+ GotoPositionPitchConstraints m_gotoPositionContraints;
+ m_gotoPositionContraints.DeterminePitchRange(
+ [&minPitch, &maxPitch](const float minPitchDegrees, const float maxPitchDegrees)
+ {
+ minPitch = minPitchDegrees;
+ maxPitch = maxPitchDegrees;
+ });
+
+ using ::testing::FloatNear;
+ EXPECT_THAT(minPitch, FloatNear(-90.0f, AZ::Constants::FloatEpsilon));
+ EXPECT_THAT(maxPitch, FloatNear(90.0f, AZ::Constants::FloatEpsilon));
+ }
+
+ TEST(GotoPositionPitchConstraints, GoToPositionPitchClampsFinalPitchValueWithTolerance)
+ {
+ const auto [expectedMinPitchRadians, expectedMaxPitchRadians] = AzFramework::CameraPitchMinMaxRadiansWithTolerance();
+
+ GotoPositionPitchConstraints m_gotoPositionContraints;
+ const float minClampedPitchRadians = m_gotoPositionContraints.PitchClampedRadians(-90.0f);
+ const float maxClampedPitchRadians = m_gotoPositionContraints.PitchClampedRadians(90.0f);
+
+ using ::testing::FloatNear;
+ EXPECT_THAT(minClampedPitchRadians, FloatNear(expectedMinPitchRadians, AZ::Constants::FloatEpsilon));
+ EXPECT_THAT(maxClampedPitchRadians, FloatNear(expectedMaxPitchRadians, AZ::Constants::FloatEpsilon));
+ }
} // namespace UnitTest
diff --git a/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.cpp b/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.cpp
index 798b1fe99f..d64c83a6db 100644
--- a/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.cpp
+++ b/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.cpp
@@ -9,7 +9,6 @@
#include
#include
#include
-#include
#include
#include
@@ -22,7 +21,7 @@ namespace AzFramework
AZStd::scoped_ptr pWatcher(LaunchProcess(processLaunchInfo, communicationType));
if (!pWatcher)
{
- AZ_TracePrintf("Process Watcher", "ProcessWatcher::LaunchProcessAndRetrieveOutput: Unable to launch process '%s %s'\n", processLaunchInfo.m_processExecutableString.c_str(), processLaunchInfo.m_commandlineParameters.c_str());
+ AZ_TracePrintf("Process Watcher", "ProcessWatcher::LaunchProcessAndRetrieveOutput: Unable to launch process '%s %s'\n", processLaunchInfo.m_processExecutableString.c_str(), processLaunchInfo.GetCommandLineParametersAsString().c_str());
return false;
}
else
@@ -31,7 +30,7 @@ namespace AzFramework
ProcessCommunicator* pCommunicator = pWatcher->GetCommunicator();
if (!pCommunicator || !pCommunicator->IsValid())
{
- AZ_TracePrintf("Process Watcher", "ProcessWatcher::LaunchProcessAndRetrieveOutput: No communicator for watcher's process (%s %s)!\n", processLaunchInfo.m_processExecutableString.c_str(), processLaunchInfo.m_commandlineParameters.c_str());
+ AZ_TracePrintf("Process Watcher", "ProcessWatcher::LaunchProcessAndRetrieveOutput: No communicator for watcher's process (%s %s)!\n", processLaunchInfo.m_processExecutableString.c_str(), processLaunchInfo.GetCommandLineParametersAsString().c_str());
return false;
}
else
diff --git a/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.h b/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.h
index 042f450db0..323136c1e0 100644
--- a/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.h
+++ b/Code/Framework/AzFramework/AzFramework/Process/ProcessWatcher.h
@@ -13,6 +13,7 @@
#include
#include
#include
+#include
namespace AzFramework
{
@@ -37,7 +38,7 @@ namespace AzFramework
* On windows, the command line will be passed as-is to the shell (with quotes)
* on UNIX/OSX, the command line will be converted as appropriate (quotes removed, but used to chop up parameters)
*/
- AZStd::string m_commandlineParameters;
+ AZStd::variant> m_commandlineParameters;
/**
* (optional) If you specify a working directory, the command will be executed with that directory as the current directory.
@@ -50,6 +51,8 @@ namespace AzFramework
//Not Supported On Mac
bool m_showWindow = true;
+
+ AZStd::string GetCommandLineParametersAsString() const;
};
static const AZ::u32 INFINITE_TIMEOUT = (AZ::u32) -1;
diff --git a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp
index 6bbb07ea74..ed3ff44d1c 100644
--- a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp
+++ b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp
@@ -83,7 +83,7 @@ namespace AzFramework::ProjectManager
return ProjectPathCheckResult::ProjectManagerLaunchFailed;
}
- bool LaunchProjectManager([[maybe_unused]]const AZStd::string& commandLineArgs)
+ bool LaunchProjectManager([[maybe_unused]] const AZStd::vector& commandLineArgs)
{
bool launchSuccess = false;
#if (AZ_TRAIT_AZFRAMEWORK_USE_PROJECT_MANAGER)
@@ -105,7 +105,12 @@ namespace AzFramework::ProjectManager
}
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = executablePath.String() + commandLineArgs;
+
+ AZStd::vector launchCmd = { executablePath.String() };
+ launchCmd.insert(launchCmd.end(), commandLineArgs.begin(), commandLineArgs.end());
+
+ processLaunchInfo.m_commandlineParameters = AZStd::move(launchCmd);
+
launchSuccess = AzFramework::ProcessLauncher::LaunchUnwatchedProcess(processLaunchInfo);
}
if (ownsSystemAllocator)
diff --git a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.h b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.h
index 323045886d..ca4e88ebe1 100644
--- a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.h
+++ b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.h
@@ -8,6 +8,7 @@
#pragma once
#include
+#include
#include
namespace AzFramework::ProjectManager
@@ -29,5 +30,5 @@ namespace AzFramework::ProjectManager
//! current executable. Requires the o3de cli and python.
//! @param commandLineArgs additional command line arguments to provide to the project manager
//! @return true on success, false if failed to find or launch the executable
- bool LaunchProjectManager(const AZStd::string& commandLineArgs = "");
+ bool LaunchProjectManager(const AZStd::vector& commandLineArgs = {});
} // AzFramework::ProjectManager
diff --git a/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.cpp b/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.cpp
index 60c730291f..d0926008c5 100644
--- a/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.cpp
+++ b/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.cpp
@@ -63,25 +63,30 @@ namespace AzFramework::Terrain
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
->Attribute(AZ::Script::Attributes::Category, "Terrain")
->Attribute(AZ::Script::Attributes::Module, "terrain")
- ->Event("GetNormal", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetNormal)
- ->Event("GetMaxSurfaceWeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetMaxSurfaceWeight)
- ->Event("GetMaxSurfaceWeightFromVector2",
- &AzFramework::Terrain::TerrainDataRequestBus::Events::GetMaxSurfaceWeightFromVector2)
- ->Event("GetSurfaceWeights", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetSurfaceWeights)
- ->Event("GetSurfaceWeightsFromVector2",
- &AzFramework::Terrain::TerrainDataRequestBus::Events::GetSurfaceWeightsFromVector2)
+ ->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
+ ->Event("GetHeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetHeight)
+ ->Event("GetHeightFromFloats", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetHeightFromFloats)
+ ->Event("GetHeightFromVector2", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetHeightFromVector2)
+ ->Event("GetNormal", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetNormal)
+ ->Event("GetMaxSurfaceWeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetMaxSurfaceWeight)
+ ->Event(
+ "GetMaxSurfaceWeightFromVector2",
+ &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetMaxSurfaceWeightFromVector2)
+ ->Event("GetSurfaceWeights", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetSurfaceWeights)
+ ->Event(
+ "GetSurfaceWeightsFromVector2",
+ &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetSurfaceWeightsFromVector2)
->Event("GetIsHole", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetIsHole)
->Event("GetIsHoleFromFloats", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetIsHoleFromFloats)
->Event("GetSurfacePoint", &AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetSurfacePoint)
- ->Event("GetSurfacePointFromVector2",
+ ->Event(
+ "GetSurfacePointFromVector2",
&AzFramework::Terrain::TerrainDataRequestBus::Events::BehaviorContextGetSurfacePointFromVector2)
->Event("GetTerrainAabb", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetTerrainAabb)
- ->Event("GetTerrainHeightQueryResolution",
+ ->Event(
+ "GetTerrainHeightQueryResolution",
&AzFramework::Terrain::TerrainDataRequestBus::Events::GetTerrainHeightQueryResolution)
- ->Event("GetHeight", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightVal)
- ->Event("GetHeightFromVector2", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightValFromVector2)
- ->Event("GetHeightFromFloats", &AzFramework::Terrain::TerrainDataRequestBus::Events::GetHeightValFromFloats)
- ;
+ ;
behaviorContext->EBus("TerrainDataNotificationBus")
->Attribute(AZ::Script::Attributes::Scope, AZ::Script::Attributes::ScopeFlags::Common)
diff --git a/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.h b/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.h
index 0da1beba77..2572a07494 100644
--- a/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.h
+++ b/Code/Framework/AzFramework/AzFramework/Terrain/TerrainDataRequestBus.h
@@ -150,24 +150,49 @@ namespace AzFramework
GetSurfacePointFromVector2(inPosition, result, sampleFilter);
return result;
}
-
- // Functions without the optional bool* parameter that can be used from Python tests.
- float GetHeightVal(AZ::Vector3 position, Sampler sampler = Sampler::BILINEAR) const
+ // Private variations of the GetHeight.., GetNormal..., GetMaxSurfaceWeight..., GetSurfaceWeights... APIs
+ // exposed to BehaviorContext that does not use the terrainExists "out" parameter.
+ float BehaviorContextGetHeight(const AZ::Vector3& position, Sampler sampler = Sampler::BILINEAR)
{
- bool terrainExists;
- return GetHeight(position, sampler, &terrainExists);
+ return GetHeight(position, sampler, nullptr);
}
-
- float GetHeightValFromVector2(AZ::Vector2 position, Sampler sampler = Sampler::BILINEAR) const
+ float BehaviorContextGetHeightFromVector2(const AZ::Vector2& position, Sampler sampler = Sampler::BILINEAR)
{
- bool terrainExists;
- return GetHeightFromVector2(position, sampler, &terrainExists);
+ return GetHeightFromVector2(position, sampler, nullptr);
}
-
- float GetHeightValFromFloats(float x, float y, Sampler sampler = Sampler::BILINEAR) const
+ float BehaviorContextGetHeightFromFloats(float x, float y, Sampler sampler = Sampler::BILINEAR)
{
- bool terrainExists;
- return GetHeightFromFloats(x, y, sampler, &terrainExists);
+ return GetHeightFromFloats(x, y, sampler, nullptr);
+ }
+ AZ::Vector3 BehaviorContextGetNormal(const AZ::Vector3& position, Sampler sampleFilter = Sampler::BILINEAR)
+ {
+ return GetNormal(position, sampleFilter, nullptr);
+ }
+ SurfaceData::SurfaceTagWeight BehaviorContextGetMaxSurfaceWeight(
+ const AZ::Vector3& position, Sampler sampleFilter = Sampler::BILINEAR)
+ {
+ return GetMaxSurfaceWeight(position, sampleFilter, nullptr);
+ }
+ SurfaceData::SurfaceTagWeight BehaviorContextGetMaxSurfaceWeightFromVector2(
+ const AZ::Vector2& inPosition, Sampler sampleFilter = Sampler::DEFAULT)
+ {
+ return GetMaxSurfaceWeightFromVector2(inPosition, sampleFilter, nullptr);
+ }
+ SurfaceData::SurfaceTagWeightList BehaviorContextGetSurfaceWeights(
+ const AZ::Vector3& inPosition,
+ Sampler sampleFilter = Sampler::DEFAULT)
+ {
+ SurfaceData::SurfaceTagWeightList list;
+ GetSurfaceWeights(inPosition, list, sampleFilter, nullptr);
+ return list;
+ }
+ SurfaceData::SurfaceTagWeightList BehaviorContextGetSurfaceWeightsFromVector2(
+ const AZ::Vector2& inPosition,
+ Sampler sampleFilter = Sampler::DEFAULT)
+ {
+ SurfaceData::SurfaceTagWeightList list;
+ GetSurfaceWeightsFromVector2(inPosition, list, sampleFilter, nullptr);
+ return list;
}
};
using TerrainDataRequestBus = AZ::EBus;
diff --git a/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.cpp b/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.cpp
index 771884ac6a..856d40e57d 100644
--- a/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.cpp
+++ b/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.cpp
@@ -335,10 +335,13 @@ namespace AzFramework
Camera nextCamera = targetCamera;
const float rotateSpeed = m_rotateSpeedFn();
- nextCamera.m_pitch -= float(cursorDelta.m_y) * rotateSpeed * Invert(m_invertPitchFn());
- nextCamera.m_yaw -= float(cursorDelta.m_x) * rotateSpeed * Invert(m_invertYawFn());
+ const float deltaPitch = aznumeric_cast(cursorDelta.m_y) * rotateSpeed * Invert(m_invertPitchFn());
+ const float deltaYaw = aznumeric_cast(cursorDelta.m_x) * rotateSpeed * Invert(m_invertYawFn());
+ nextCamera.m_pitch -= deltaPitch;
+ nextCamera.m_yaw -= deltaYaw;
nextCamera.m_yaw = WrapYawRotation(nextCamera.m_yaw);
+
if (m_constrainPitch())
{
nextCamera.m_pitch = ClampPitchRotation(nextCamera.m_pitch);
diff --git a/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.h b/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.h
index 4eea94cbe7..96a9b54dc8 100644
--- a/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.h
+++ b/Code/Framework/AzFramework/AzFramework/Viewport/CameraInput.h
@@ -25,6 +25,9 @@ namespace AzFramework
struct WindowSize;
+ //! Tolerance to use when limiting pitch to avoid reaching +/-Pi/2 exactly.
+ constexpr float CameraPitchTolerance = 1.0e-4f;
+
//! Returns Euler angles (pitch, roll, yaw) for the incoming orientation.
//! @note Order of rotation is Z, Y, X.
AZ::Vector3 EulerAngles(const AZ::Matrix3x3& orientation);
@@ -318,11 +321,26 @@ namespace AzFramework
return m_handlingEvents;
}
- //! Clamps pitch to be +/-90 degrees (-Pi/2, Pi/2).
+ //! Returns min/max values for camera pitch (in radians).
+ inline AZStd::tuple CameraPitchMinMaxRadians()
+ {
+ return { -AZ::Constants::HalfPi, AZ::Constants::HalfPi };
+ }
+
+ //! Returns min/max values for camera pitch (in radians) including a small tolerance at each
+ //! extreme (looking directly up or down) to avoid floating point accuracy issues.
+ inline AZStd::tuple CameraPitchMinMaxRadiansWithTolerance()
+ {
+ const auto [pitchMinRadians, pitchMaxRadians] = CameraPitchMinMaxRadians();
+ return { pitchMinRadians + CameraPitchTolerance, pitchMaxRadians - CameraPitchTolerance };
+ }
+
+ //! Clamps pitch to be +/-90 degrees (-Pi/2, Pi/2) with a minor tolerance at each extreme.
//! @param pitch Pitch angle in radians.
inline float ClampPitchRotation(const float pitch)
{
- return AZ::GetClamp(pitch, -AZ::Constants::HalfPi, AZ::Constants::HalfPi);
+ const auto [pitchMin, pitchMax] = CameraPitchMinMaxRadiansWithTolerance();
+ return AZ::GetClamp(pitch, pitchMin, pitchMax);
}
//! Ensures yaw wraps between 0 and 360 degrees (0, 2Pi).
diff --git a/Code/Framework/AzFramework/Platform/Android/AzFramework/Process/ProcessWatcher_Android.cpp b/Code/Framework/AzFramework/Platform/Android/AzFramework/Process/ProcessWatcher_Android.cpp
index f87c51bdc5..d637da29fe 100644
--- a/Code/Framework/AzFramework/Platform/Android/AzFramework/Process/ProcessWatcher_Android.cpp
+++ b/Code/Framework/AzFramework/Platform/Android/AzFramework/Process/ProcessWatcher_Android.cpp
@@ -6,10 +6,10 @@
*
*/
+#include
#include
#include
-
namespace AzFramework
{
@@ -83,4 +83,23 @@ namespace AzFramework
{
}
+
+ AZStd::string ProcessLauncher::ProcessLaunchInfo::GetCommandLineParametersAsString() const
+ {
+ struct CommandLineParametersVisitor
+ {
+ AZStd::string operator()(const AZStd::string& commandLine) const
+ {
+ return commandLine;
+ }
+
+ AZStd::string operator()(const AZStd::vector& commandLineArray) const
+ {
+ AZStd::string commandLineResult;
+ AZ::StringFunc::Join(commandLineResult, commandLineArray.begin(), commandLineArray.end(), " ");
+ return commandLineResult;
+ }
+ };
+ return AZStd::visit(CommandLineParametersVisitor{}, m_commandlineParameters);
+ }
} //namespace AzFramework
diff --git a/Code/Framework/AzFramework/Platform/Linux/AzFramework/Process/ProcessWatcher_Linux.cpp b/Code/Framework/AzFramework/Platform/Linux/AzFramework/Process/ProcessWatcher_Linux.cpp
index 51a8545443..7c86e00fec 100644
--- a/Code/Framework/AzFramework/Platform/Linux/AzFramework/Process/ProcessWatcher_Linux.cpp
+++ b/Code/Framework/AzFramework/Platform/Linux/AzFramework/Process/ProcessWatcher_Linux.cpp
@@ -10,12 +10,11 @@
#include
#include
-#include
-
#include
#include
#include
#include
+#include
#include
#include
@@ -220,36 +219,52 @@ namespace AzFramework
// this is so that the callers (which could be numerous) do not have to worry about this and sprinkle ifdefs
// all over their code.
// We'll convert this to UNIX style command line parameters by counting and eliminating quotes:
-
- AZStd::vector commandTokens;
-
- AZStd::string outputString;
- bool inQuotes = false;
- for (const char currentChar : processLaunchInfo.m_commandlineParameters)
- {
- if (currentChar == '"')
- {
- inQuotes = !inQuotes;
- }
- else if ((currentChar == ' ') && (!inQuotes))
- {
- // its a space outside of quotes, so it ends the current parameter
- commandTokens.push_back(outputString);
- outputString.clear();
- }
- else
- {
- // Its a normal character, or its a space inside quotes
- outputString.push_back(currentChar);
- }
- }
- if (!outputString.empty())
+ // Struct uses overloaded operator() to quote command line arguments based
+ // on whether a string or a vector was supplied
+ struct EscapeCommandArguments
{
- commandTokens.push_back(outputString);
- outputString.clear();
- }
-
+ void operator()(const AZStd::string& commandParameterString)
+ {
+ AZStd::string outputString;
+ bool inQuotes = false;
+ for (size_t pos = 0; pos < commandParameterString.size(); ++pos)
+ {
+ char currentChar = commandParameterString[pos];
+ if (currentChar == '"')
+ {
+ inQuotes = !inQuotes;
+ }
+ else if ((currentChar == ' ') && (!inQuotes))
+ {
+ // its a space outside of quotes, so it ends the current parameter
+ commandArray.push_back(outputString);
+ outputString.clear();
+ }
+ else
+ {
+ // Its a normal character, or its a space inside quotes
+ outputString.push_back(currentChar);
+ }
+ }
+
+ if (!outputString.empty())
+ {
+ commandArray.push_back(outputString);
+ outputString.clear();
+ }
+ }
+
+ void operator()(const AZStd::vector& commandParameterArray)
+ {
+ commandArray = commandParameterArray;
+ }
+ AZStd::vector& commandArray;
+ };
+
+ AZStd::vector commandTokens;
+ AZStd::visit(EscapeCommandArguments{ commandTokens }, processLaunchInfo.m_commandlineParameters);
+
if (!processLaunchInfo.m_processExecutableString.empty())
{
commandTokens.insert(commandTokens.begin(), processLaunchInfo.m_processExecutableString);
@@ -452,4 +467,23 @@ namespace AzFramework
kill(m_pWatcherData->m_childProcessId, SIGKILL);
}
+
+ AZStd::string ProcessLauncher::ProcessLaunchInfo::GetCommandLineParametersAsString() const
+ {
+ struct CommandLineParametersVisitor
+ {
+ AZStd::string operator()(const AZStd::string& commandLine) const
+ {
+ return commandLine;
+ }
+
+ AZStd::string operator()(const AZStd::vector& commandLineArray) const
+ {
+ AZStd::string commandLineResult;
+ AZ::StringFunc::Join(commandLineResult, commandLineArray.begin(), commandLineArray.end(), " ");
+ return commandLineResult;
+ }
+ };
+ return AZStd::visit(CommandLineParametersVisitor{}, m_commandlineParameters);
+ }
} //namespace AzFramework
diff --git a/Code/Framework/AzFramework/Platform/Mac/AzFramework/Process/ProcessWatcher_Mac.cpp b/Code/Framework/AzFramework/Platform/Mac/AzFramework/Process/ProcessWatcher_Mac.cpp
index 1ba9ff3067..e131ab4a7b 100644
--- a/Code/Framework/AzFramework/Platform/Mac/AzFramework/Process/ProcessWatcher_Mac.cpp
+++ b/Code/Framework/AzFramework/Platform/Mac/AzFramework/Process/ProcessWatcher_Mac.cpp
@@ -11,13 +11,12 @@
#include
#include
-#include
-
#include
#include
#include
#include
#include
+#include
#include
#include
@@ -210,46 +209,51 @@ namespace AzFramework
// this is so that the callers (which could be numerous) do not have to worry about this and sprinkle ifdefs
// all over their code.
// We'll convert this to UNIX style command line parameters by counting and eliminating quotes:
-
+
+ // Struct uses overloaded operator() to quote command line arguments based
+ // on whether a string or a vector was supplied
+ struct EscapeCommandArguments
+ {
+ void operator()(const AZStd::string& commandParameterString)
+ {
+ AZStd::string outputString;
+ bool inQuotes = false;
+ for (size_t pos = 0; pos < commandParameterString.size(); ++pos)
+ {
+ char currentChar = commandParameterString[pos];
+ if (currentChar == '"')
+ {
+ inQuotes = !inQuotes;
+ }
+ else if ((currentChar == ' ') && (!inQuotes))
+ {
+ // its a space outside of quotes, so it ends the current parameter
+ commandArray.push_back(outputString);
+ outputString.clear();
+ }
+ else
+ {
+ // Its a normal character, or its a space inside quotes
+ outputString.push_back(currentChar);
+ }
+ }
+
+ if (!outputString.empty())
+ {
+ commandArray.push_back(outputString);
+ outputString.clear();
+ }
+ }
+
+ void operator()(const AZStd::vector& commandParameterArray)
+ {
+ commandArray = commandParameterArray;
+ }
+ AZStd::vector& commandArray;
+ };
+
AZStd::vector commandTokens;
-
- AZStd::string outputString;
- bool inQuotes = false;
- for (size_t pos = 0; pos < processLaunchInfo.m_commandlineParameters.size(); ++pos)
- {
- char currentChar = processLaunchInfo.m_commandlineParameters[pos];
- if (currentChar == '"')
- {
- // Allow quote literals to go through as quotes which do NOT alter our "in quotes" bool below
- // This is to conform with our PC parameter strings which will sometimes include path parameters which
- // Can have spaces and commas and need to be output as paramname="\"Some pa,ram\"" in order to capture both correctly
- if (outputString.length() && outputString.back() == '\\')
- {
- outputString.back() = currentChar;
- }
- else
- {
- inQuotes = !inQuotes;
- }
- }
- else if ((currentChar == ' ') && (!inQuotes))
- {
- // its a space outside of quotes, so it ends the current parameter
- commandTokens.push_back(outputString);
- outputString.clear();
- }
- else
- {
- // Its a normal character, or its a space inside quotes
- outputString.push_back(currentChar);
- }
- }
-
- if (!outputString.empty())
- {
- commandTokens.push_back(outputString);
- outputString.clear();
- }
+ AZStd::visit(EscapeCommandArguments{ commandTokens }, processLaunchInfo.m_commandlineParameters);
if (!processLaunchInfo.m_processExecutableString.empty())
{
@@ -417,5 +421,24 @@ namespace AzFramework
kill(m_pWatcherData->m_childProcessId, SIGKILL);
waitpid(m_pWatcherData->m_childProcessId, NULL, 0);
}
+
+ AZStd::string ProcessLauncher::ProcessLaunchInfo::GetCommandLineParametersAsString() const
+ {
+ struct CommandLineParametersVisitor
+ {
+ AZStd::string operator()(const AZStd::string& commandLine) const
+ {
+ return commandLine;
+ }
+
+ AZStd::string operator()(const AZStd::vector& commandLineArray) const
+ {
+ AZStd::string commandLineResult;
+ AZ::StringFunc::Join(commandLineResult, commandLineArray.begin(), commandLineArray.end(), " ");
+ return commandLineResult;
+ }
+ };
+ return AZStd::visit(CommandLineParametersVisitor{}, m_commandlineParameters);
+ }
} //namespace AzFramework
diff --git a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Process/ProcessWatcher_Win.cpp b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Process/ProcessWatcher_Win.cpp
index 6e21ecc205..b0ef2f09a4 100644
--- a/Code/Framework/AzFramework/Platform/Windows/AzFramework/Process/ProcessWatcher_Win.cpp
+++ b/Code/Framework/AzFramework/Platform/Windows/AzFramework/Process/ProcessWatcher_Win.cpp
@@ -10,6 +10,7 @@
#include
#include
#include
+#include
#include
#include
@@ -99,7 +100,7 @@ namespace AzFramework
AZStd::wstring editableCommandLine;
AZStd::wstring processExecutableString;
AZStd::wstring workingDirectory;
- AZStd::to_wstring(editableCommandLine, processLaunchInfo.m_commandlineParameters);
+ AZStd::to_wstring(editableCommandLine, processLaunchInfo.GetCommandLineParametersAsString());
AZStd::to_wstring(processExecutableString, processLaunchInfo.m_processExecutableString);
AZStd::to_wstring(workingDirectory, processLaunchInfo.m_workingDirectory);
@@ -355,4 +356,41 @@ namespace AzFramework
::TerminateProcess(m_pWatcherData->processInformation.hProcess, exitCode);
}
}
+
+ AZStd::string ProcessLauncher::ProcessLaunchInfo::GetCommandLineParametersAsString() const
+ {
+ struct CommandLineParametersVisitor
+ {
+ AZStd::string operator()(const AZStd::string& commandLine) const
+ {
+ return commandLine;
+ }
+
+ AZStd::string operator()(const AZStd::vector& commandLineArray) const
+ {
+ AZStd::string commandLineResult;
+
+ // When re-constructing a command line from an argument list (on windows), if an argument
+ // is double-quoted, then the double-quotes must be escaped properly otherwise
+ // it will be absorbed by the native argument parser and possibly evaluated as
+ // multiple values for arguments
+ AZStd::string_view escapedDoubleQuote = R"("\")";
+
+ AZStd::vector preprocessedCommandArray;
+
+ for (const auto& commandArg : commandLineArray)
+ {
+ AZStd::string replacedArg = commandArg;
+ AZ::StringFunc::Replace(replacedArg, R"(")", R"("\")", false, true, true);
+ preprocessedCommandArray.emplace_back(replacedArg);
+ }
+ AZ::StringFunc::Join(commandLineResult, preprocessedCommandArray.begin(), preprocessedCommandArray.end(), " ");
+
+ return commandLineResult;
+ }
+ };
+
+ return AZStd::visit(CommandLineParametersVisitor{}, m_commandlineParameters);
+ }
+
} // namespace AzFramework
diff --git a/Code/Framework/AzFramework/Platform/iOS/AzFramework/Process/ProcessWatcher_iOS.cpp b/Code/Framework/AzFramework/Platform/iOS/AzFramework/Process/ProcessWatcher_iOS.cpp
index f87c51bdc5..c7b7513064 100644
--- a/Code/Framework/AzFramework/Platform/iOS/AzFramework/Process/ProcessWatcher_iOS.cpp
+++ b/Code/Framework/AzFramework/Platform/iOS/AzFramework/Process/ProcessWatcher_iOS.cpp
@@ -6,10 +6,10 @@
*
*/
+#include
#include
#include
-
namespace AzFramework
{
@@ -83,4 +83,23 @@ namespace AzFramework
{
}
+
+ AZStd::string ProcessLauncher::ProcessLaunchInfo::GetCommandLineParametersAsString() const
+ {
+ struct CommandLineParametersVisitor
+ {
+ AZStd::string operator()(const AZStd::string& commandLine) const
+ {
+ return commandLine;
+ }
+
+ AZStd::string operator()(const AZStd::vector& commandLineArray) const
+ {
+ AZStd::string commandLineResult;
+ Az::StringFunc::Join(commandLineResult, commandLineArray.begin(), commandLineArray.end(), " ");
+ return commandLineResult;
+ }
+ };
+ return AZStd::visit(CommandLineParametersVisitor{}, m_commandlineParameters);
+ }
} //namespace AzFramework
diff --git a/Code/Framework/AzFramework/Tests/CameraInputTests.cpp b/Code/Framework/AzFramework/Tests/CameraInputTests.cpp
index 005623677c..5f327fb2fd 100644
--- a/Code/Framework/AzFramework/Tests/CameraInputTests.cpp
+++ b/Code/Framework/AzFramework/Tests/CameraInputTests.cpp
@@ -322,6 +322,17 @@ namespace UnitTest
EXPECT_THAT(m_camera.m_offset, IsClose(AZ::Vector3::CreateZero()));
}
+ TEST(CameraInput, CameraPitchIsClampedWithExpectedTolerance)
+ {
+ const auto [expectedMinPitch, expectedMaxPitch] = AzFramework::CameraPitchMinMaxRadiansWithTolerance();
+ const float minPitch = AzFramework::ClampPitchRotation(-AZ::Constants::HalfPi);
+ const float maxPitch = AzFramework::ClampPitchRotation(AZ::Constants::HalfPi);
+
+ using ::testing::FloatNear;
+ EXPECT_THAT(minPitch, FloatNear(expectedMinPitch, AzFramework::CameraPitchTolerance));
+ EXPECT_THAT(maxPitch, FloatNear(expectedMaxPitch, AzFramework::CameraPitchTolerance));
+ }
+
TEST_F(CameraInputFixture, OrbitRotateCameraInputRotatesPitchOffsetByNinetyDegreesWithRequiredPixelDelta)
{
const auto cameraStartingPosition = AZ::Vector3::CreateAxisY(-20.0f);
diff --git a/Code/Framework/AzFramework/Tests/ProcessLaunchParseTests.cpp b/Code/Framework/AzFramework/Tests/ProcessLaunchParseTests.cpp
index 17dd04c587..0a7eb24df4 100644
--- a/Code/Framework/AzFramework/Tests/ProcessLaunchParseTests.cpp
+++ b/Code/Framework/AzFramework/Tests/ProcessLaunchParseTests.cpp
@@ -75,7 +75,8 @@ namespace UnitTest
AzFramework::ProcessOutput processOutput;
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest";
+ processLaunchInfo.m_commandlineParameters.emplace(AZStd::string(AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest"));
+
processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
processLaunchInfo.m_showWindow = false;
bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
@@ -90,7 +91,9 @@ namespace UnitTest
AzFramework::ProcessOutput processOutput;
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest -param1 param1val -param2=param2val";
+ processLaunchInfo.m_commandlineParameters.emplace>(
+ AZStd::vector{AZStd::string(AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest"), "-param1", "param1val","-param2", "param2val"});
+
processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
processLaunchInfo.m_showWindow = false;
bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
@@ -117,14 +120,16 @@ namespace UnitTest
#if AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
TEST_F(ProcessLaunchParseTests, DISABLED_ProcessLauncher_StringsWithCommas_Success)
#else
- TEST_F(ProcessLaunchParseTests, ProcessLauncher_StringsWithCommas_Success)
+ TEST_F(ProcessLaunchParseTests, ProcessLauncher_WithCommas_Success)
#endif // AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
{
ProcessLaunchParseTests::ParsedArgMap argMap;
AzFramework::ProcessOutput processOutput;
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER R"(ProcessLaunchTest -param1 "\"param,1val\"" -param2="\"param2v,al\"")";
+ processLaunchInfo.m_commandlineParameters.emplace>(
+ AZStd::vector{AZStd::string(AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest"), "-param1", "param,1val","-param2", "param2v,al"});
+
processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
processLaunchInfo.m_showWindow = false;
bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
@@ -137,28 +142,32 @@ namespace UnitTest
EXPECT_NE(param1itr, argMap.end());
AZStd::vector param1{ param1itr->second };
- EXPECT_EQ(param1.size(), 1);
- EXPECT_EQ(param1[0], "param,1val");
+ EXPECT_EQ(param1.size(), 2);
+ EXPECT_EQ(param1[0], "param");
+ EXPECT_EQ(param1[1], "1val");
auto param2itr = argMap.find("param2");
EXPECT_NE(param2itr, argMap.end());
AZStd::vector param2{ param2itr->second };
- EXPECT_EQ(param2.size(), 1);
- EXPECT_EQ(param2[0], "param2v,al");
+ EXPECT_EQ(param2.size(), 2);
+ EXPECT_EQ(param2[0], "param2v");
+ EXPECT_EQ(param2[1], "al");
}
#if AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
TEST_F(ProcessLaunchParseTests, DISABLED_ProcessLauncher_StringsWithSpaces_Success)
#else
- TEST_F(ProcessLaunchParseTests, ProcessLauncher_StringsWithSpaces_Success)
+ TEST_F(ProcessLaunchParseTests, ProcessLauncher_WithSpaces_Success)
#endif // AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
{
ProcessLaunchParseTests::ParsedArgMap argMap;
AzFramework::ProcessOutput processOutput;
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER R"(ProcessLaunchTest -param1 "\"param 1val\"" -param2="\"param2v al\"")";
+ processLaunchInfo.m_commandlineParameters.emplace>(AZStd::vector{
+ AZStd::string(AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest"), "-param1", R"("param 1val")", R"(-param2="param2v al")" });
+
processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
processLaunchInfo.m_showWindow = false;
bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
@@ -185,14 +194,16 @@ namespace UnitTest
#if AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
TEST_F(ProcessLaunchParseTests, DISABLED_ProcessLauncher_StringsWithSpacesAndComma_Success)
#else
- TEST_F(ProcessLaunchParseTests, ProcessLauncher_StringsWithSpacesAndComma_Success)
+ TEST_F(ProcessLaunchParseTests, ProcessLauncher_WithSpacesAndComma_Success)
#endif // AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS
{
ProcessLaunchParseTests::ParsedArgMap argMap;
AzFramework::ProcessOutput processOutput;
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER R"(ProcessLaunchTest -param1 "\"par,am 1val\"" -param2="\"param,2v al\"")";
+ processLaunchInfo.m_commandlineParameters.emplace>(AZStd::vector{
+ AZStd::string(AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest"), "-param1", R"("param, 1val")", R"(-param2="param,2v al")" });
+
processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
processLaunchInfo.m_showWindow = false;
bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
@@ -206,7 +217,7 @@ namespace UnitTest
AZStd::vector param1{ param1itr->second };
EXPECT_EQ(param1.size(), 1);
- EXPECT_EQ(param1[0], "par,am 1val");
+ EXPECT_EQ(param1[0], "param, 1val");
auto param2itr = argMap.find("param2");
EXPECT_NE(param2itr, argMap.end());
@@ -216,35 +227,4 @@ namespace UnitTest
EXPECT_EQ(param2[0], "param,2v al");
}
- TEST_F(ProcessLaunchParseTests, ProcessLauncher_CommaStringNoQuotes_Success)
- {
- ProcessLaunchParseTests::ParsedArgMap argMap;
- AzFramework::ProcessOutput processOutput;
- AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
-
- processLaunchInfo.m_commandlineParameters = AZ_TRAIT_TEST_ROOT_FOLDER "ProcessLaunchTest -param1 param,1val -param2=param2v,al";
- processLaunchInfo.m_workingDirectory = AZ::Test::GetCurrentExecutablePath();
- processLaunchInfo.m_showWindow = false;
- bool launchReturn = AzFramework::ProcessWatcher::LaunchProcessAndRetrieveOutput(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT, processOutput);
-
- EXPECT_EQ(launchReturn, true);
-
- argMap = ProcessLaunchParseTests::ParseParameters(processOutput.outputResult);
-
- auto param1itr = argMap.find("param1");
- EXPECT_NE(param1itr, argMap.end());
- AZStd::vector param1{ param1itr->second };
-
- EXPECT_EQ(param1.size(), 2);
- EXPECT_EQ(param1[0], "param");
- EXPECT_EQ(param1[1], "1val");
-
- auto param2itr = argMap.find("param2");
- EXPECT_NE(param2itr, argMap.end());
- AZStd::vector param2{ param2itr->second };
-
- EXPECT_EQ(param2.size(), 2);
- EXPECT_EQ(param2[0], "param2v");
- EXPECT_EQ(param2[1], "al");
- }
} // namespace UnitTest
diff --git a/Code/Framework/AzTest/AzTest/Platform/Linux/AzTest_Traits_Linux.h b/Code/Framework/AzTest/AzTest/Platform/Linux/AzTest_Traits_Linux.h
index 94f3dd004a..20e67e582b 100644
--- a/Code/Framework/AzTest/AzTest/Platform/Linux/AzTest_Traits_Linux.h
+++ b/Code/Framework/AzTest/AzTest/Platform/Linux/AzTest_Traits_Linux.h
@@ -13,8 +13,6 @@
#define AZ_TRAIT_UNIT_TEST_ENTITY_ID_GEN_TEST_COUNT 10000
#define AZ_TRAIT_UNIT_TEST_DILLER_TRIGGER_EVENT_COUNT 100000
-#define AZ_TRAIT_DISABLE_FAILED_AP_CONNECTION_TESTS true
-
#define AZ_TRAIT_DISABLE_FAILED_ATOM_RPI_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_ARCHIVE_TESTS true
@@ -23,7 +21,6 @@
#define AZ_TRAIT_DISABLE_FAILED_GRADIENT_SIGNAL_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_MULTIPLAYER_GRIDMATE_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_NATIVE_WINDOWS_TESTS true
-#define AZ_TRAIT_DISABLE_FAILED_PROCESS_LAUNCHER_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_EMOTION_FX_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_DLL_TESTS true
#define AZ_TRAIT_DISABLE_FAILED_MODULE_TESTS true
diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorBoxSelect.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorBoxSelect.cpp
index a1b653225b..ebbeac4794 100644
--- a/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorBoxSelect.cpp
+++ b/Code/Framework/AzToolsFramework/AzToolsFramework/ViewportSelection/EditorBoxSelect.cpp
@@ -64,7 +64,8 @@ namespace AzToolsFramework
}
}
- if (clickOutcome == AzFramework::ClickDetector::ClickOutcome::Release)
+ if (clickOutcome == AzFramework::ClickDetector::ClickOutcome::Release ||
+ clickOutcome == AzFramework::ClickDetector::ClickOutcome::Click)
{
if (m_leftMouseUp)
{
diff --git a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.cpp b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.cpp
index aa462f7590..ddaa5aa777 100644
--- a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.cpp
+++ b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.cpp
@@ -155,7 +155,7 @@ namespace AssetProcessor
return false;
}
- const AZStd::string params = BuildParams("resident", buildersFolder.c_str(), UuidString(), "", "");
+ const AZStd::vector params = BuildParams("resident", buildersFolder.c_str(), UuidString(), "", "");
m_processWatcher = LaunchProcess(fullExePathString.c_str(), params);
@@ -179,7 +179,7 @@ namespace AssetProcessor
return !m_processWatcher || (m_processWatcher && m_processWatcher->IsProcessRunning(exitCode));
}
- AZStd::string Builder::BuildParams(const char* task, const char* moduleFilePath, const AZStd::string& builderGuid, const AZStd::string& jobDescriptionFile, const AZStd::string& jobResponseFile) const
+ AZStd::vector Builder::BuildParams(const char* task, const char* moduleFilePath, const AZStd::string& builderGuid, const AZStd::string& jobDescriptionFile, const AZStd::string& jobResponseFile) const
{
QDir projectCacheRoot;
AssetUtilities::ComputeProjectCacheRoot(projectCacheRoot);
@@ -191,35 +191,24 @@ namespace AssetProcessor
int portNumber = 0;
ApplicationServerBus::BroadcastResult(portNumber, &ApplicationServerBus::Events::GetServerListeningPort);
- AZStd::string params;
-#if !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
- params = AZStd::string::format(
- R"(-task=%s -id="%s" -project-name="%s" -project-cache-path="%s" -project-path="%s" -engine-path="%s" -port %d)",
- task, builderGuid.c_str(), projectName.c_str(), projectCacheRoot.absolutePath().toUtf8().constData(),
- projectPath.c_str(), enginePath.c_str(), portNumber);
-#else
- params = AZStd::string::format(
- R"(-task=%s -id="%s" -project-name="\"%s\"" -project-cache-path="\"%s\"" -project-path="\"%s\"" -engine-path="\"%s\"" -port %d)",
- task, builderGuid.c_str(), projectName.c_str(), projectCacheRoot.absolutePath().toUtf8().constData(),
- projectPath.c_str(), enginePath.c_str(), portNumber);
-#endif // !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
+ AZStd::vector params;
+ params.emplace_back(AZStd::string::format(R"(-task="%s")", task));
+ params.emplace_back(AZStd::string::format(R"(-id="%s")", builderGuid.c_str()));
+ params.emplace_back(AZStd::string::format(R"(-project-name="%s")", projectName.c_str()));
+ params.emplace_back(AZStd::string::format(R"(-project-cache-path="%s")", projectCacheRoot.absolutePath().toUtf8().constData()));
+ params.emplace_back(AZStd::string::format(R"(-project-path="%s")", projectPath.c_str()));
+ params.emplace_back(AZStd::string::format(R"(-engine-path="%s")", enginePath.c_str()));
+ params.emplace_back(AZStd::string::format("-port=%d", portNumber));
if (moduleFilePath && moduleFilePath[0])
{
- #if !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
- params.append(AZStd::string::format(R"( -module="%s")", moduleFilePath).c_str());
- #else
- params.append(AZStd::string::format(R"( -module="\"%s\"")", moduleFilePath).c_str());
- #endif // !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
+ params.emplace_back(AZStd::string::format(R"(-module="%s")", moduleFilePath));
}
if (!jobDescriptionFile.empty() && !jobResponseFile.empty())
{
- #if !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
- params = AZStd::string::format(R"(%s -input="%s" -output="%s")", params.c_str(), jobDescriptionFile.c_str(), jobResponseFile.c_str());
- #else
- params = AZStd::string::format(R"(%s -input="\"%s\"" -output="\"%s\"")", params.c_str(), jobDescriptionFile.c_str(), jobResponseFile.c_str());
- #endif // !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
+ params.emplace_back(AZStd::string::format(R"(-input="%s")", jobDescriptionFile.c_str()));
+ params.emplace_back(AZStd::string::format(R"(-output="%s")", jobResponseFile.c_str()));
}
auto settingsRegistry = AZ::SettingsRegistry::Get();
@@ -232,28 +221,25 @@ namespace AssetProcessor
for (size_t optionIndex = 0; optionIndex < commandOptionCount; ++optionIndex)
{
const AZStd::string& optionValue = commandLine.GetSwitchValue(optionKey, optionIndex);
- params.append(AZStd::string::format(
-#if !AZ_TRAIT_OS_PLATFORM_APPLE && !AZ_TRAIT_OS_USE_WINDOWS_FILE_PATHS
- R"( --%s="%s")",
-#else
- R"( --%s="\"%s\"")",
-#endif
- optionKey, optionValue.c_str()));
+ params.emplace_back(AZStd::string::format(R"(--%s="%s")", optionKey, optionValue.c_str()));
}
}
return params;
}
- AZStd::unique_ptr Builder::LaunchProcess(const char* fullExePath, const AZStd::string& params) const
+ AZStd::unique_ptr Builder::LaunchProcess(const char* fullExePath, const AZStd::vector& params) const
{
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
processLaunchInfo.m_processExecutableString = fullExePath;
- processLaunchInfo.m_commandlineParameters = AZStd::string::format("\"%s\" %s", fullExePath, params.c_str());
+
+ AZStd::vector commandLineArray{ fullExePath };
+ commandLineArray.insert(commandLineArray.end(), params.begin(), params.end());
+ processLaunchInfo.m_commandlineParameters = AZStd::move(commandLineArray);
processLaunchInfo.m_showWindow = false;
processLaunchInfo.m_processPriority = AzFramework::ProcessPriority::PROCESSPRIORITY_IDLE;
- AZ_TracePrintf(AssetProcessor::DebugChannel, "Executing AssetBuilder with parameters: %s\n", processLaunchInfo.m_commandlineParameters.c_str());
+ AZ_TracePrintf(AssetProcessor::DebugChannel, "Executing AssetBuilder with parameters: %s\n", processLaunchInfo.GetCommandLineParametersAsString().c_str());
auto processWatcher = AZStd::unique_ptr(AzFramework::ProcessWatcher::LaunchProcess(processLaunchInfo, AzFramework::ProcessCommunicationType::COMMUNICATOR_TYPE_STDINOUT));
diff --git a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.h b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.h
index 440f0b3709..1208345a39 100644
--- a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.h
+++ b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.h
@@ -103,8 +103,8 @@ namespace AssetProcessor
//! Sets the connection id and signals that the builder has connected
void SetConnection(AZ::u32 connId);
- AZStd::string BuildParams(const char* task, const char* moduleFilePath, const AZStd::string& builderGuid, const AZStd::string& jobDescriptionFile, const AZStd::string& jobResponseFile) const;
- AZStd::unique_ptr LaunchProcess(const char* fullExePath, const AZStd::string& params) const;
+ AZStd::vector BuildParams(const char* task, const char* moduleFilePath, const AZStd::string& builderGuid, const AZStd::string& jobDescriptionFile, const AZStd::string& jobResponseFile) const;
+ AZStd::unique_ptr LaunchProcess(const char* fullExePath, const AZStd::vector& params) const;
//! Waits for the builder exe to send the job response and pumps stdout/err
BuilderRunJobOutcome WaitForBuilderResponse(AssetBuilderSDK::JobCancelListener* jobCancelListener, AZ::u32 processTimeoutLimitInSeconds, AZStd::binary_semaphore* waitEvent) const;
diff --git a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.inl b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.inl
index 986791b501..9893f32f6a 100644
--- a/Code/Tools/AssetProcessor/native/utilities/BuilderManager.inl
+++ b/Code/Tools/AssetProcessor/native/utilities/BuilderManager.inl
@@ -7,6 +7,8 @@
*/
#pragma once
+#include
+
namespace AssetProcessor
{
//! Sends the job over to the builder and blocks until the response is received or the builder crashes/times out
@@ -82,10 +84,12 @@ namespace AssetProcessor
}
auto params = BuildParams(task.c_str(), modulePath.c_str(), "", jobRequestFile, jobResponseFile);
+ AZStd::string paramString;
+ AZ::StringFunc::Join(paramString, params.begin(), params.end(), " ");
AZ_TracePrintf(AssetProcessor::DebugChannel, "Job request written to %s\n", jobRequestFile.c_str());
AZ_TracePrintf(AssetProcessor::DebugChannel, "To re-run this request manually, run AssetBuilder with the following parameters:\n");
- AZ_TracePrintf(AssetProcessor::DebugChannel, "%s\n", params.c_str());
+ AZ_TracePrintf(AssetProcessor::DebugChannel, "%s\n", paramString.c_str());
return true;
}
diff --git a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
index acd753a1cb..948736eed1 100644
--- a/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
+++ b/Code/Tools/ProjectManager/Source/ProjectsScreen.cpp
@@ -424,12 +424,12 @@ namespace O3DE::ProjectManager
return;
}
- auto cmdPath = AZ::IO::FixedMaxPathString::format(
- "%s --regset=\"/Amazon/AzCore/Bootstrap/project_path=%s\"", editorExecutablePath.c_str(),
- fixedProjectPath.c_str());
-
AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo;
- processLaunchInfo.m_commandlineParameters = cmdPath;
+ processLaunchInfo.m_commandlineParameters = AZStd::vector{
+ editorExecutablePath.String(),
+ AZStd::string::format(R"(--regset="/Amazon/AzCore/Bootstrap/project_path=%s")", fixedProjectPath.c_str())
+ };
+ ;
bool launchSucceeded = AzFramework::ProcessLauncher::LaunchUnwatchedProcess(processLaunchInfo);
if (!launchSucceeded)
{
diff --git a/Gems/Atom/RHI/Code/Include/Atom/RHI/MemorySubAllocator.h b/Gems/Atom/RHI/Code/Include/Atom/RHI/MemorySubAllocator.h
index 23caed3031..514907b19e 100644
--- a/Gems/Atom/RHI/Code/Include/Atom/RHI/MemorySubAllocator.h
+++ b/Gems/Atom/RHI/Code/Include/Atom/RHI/MemorySubAllocator.h
@@ -7,11 +7,14 @@
*/
#pragma once
+#include
#include
#include
#include
#include
+AZ_DECLARE_BUDGET(RHI);
+
namespace AZ
{
namespace RHI
diff --git a/Gems/Atom/RHI/Code/Source/RHI.Edit/Utils.cpp b/Gems/Atom/RHI/Code/Source/RHI.Edit/Utils.cpp
index dc203ef731..6b5b9cc3a5 100644
--- a/Gems/Atom/RHI/Code/Source/RHI.Edit/Utils.cpp
+++ b/Gems/Atom/RHI/Code/Source/RHI.Edit/Utils.cpp
@@ -264,9 +264,9 @@ namespace AZ
}
{
AZStd::string contextKey = toolNameForLog + AZStd::string(" Command Line");
- AZ_TraceContext(contextKey, processLaunchInfo.m_commandlineParameters);
+ AZ_TraceContext(contextKey, processLaunchInfo.GetCommandLineParametersAsString());
}
- AZ_TracePrintf(ShaderPlatformInterfaceName, "Executing '%s' ...", processLaunchInfo.m_commandlineParameters.c_str());
+ AZ_TracePrintf(ShaderPlatformInterfaceName, "Executing '%s' ...", processLaunchInfo.GetCommandLineParametersAsString().c_str());
AzFramework::ProcessWatcher* watcher = AzFramework::ProcessWatcher::LaunchProcess(processLaunchInfo, AzFramework::COMMUNICATOR_TYPE_STDINOUT);
if (!watcher)
diff --git a/Gems/Atom/RHI/DX12/Code/Source/RHI/MemoryView.cpp b/Gems/Atom/RHI/DX12/Code/Source/RHI/MemoryView.cpp
index 4b8604fa51..c1a7156362 100644
--- a/Gems/Atom/RHI/DX12/Code/Source/RHI/MemoryView.cpp
+++ b/Gems/Atom/RHI/DX12/Code/Source/RHI/MemoryView.cpp
@@ -7,10 +7,13 @@
*/
#include
+#include
#include
#include
#include
+AZ_DECLARE_BUDGET(RHI);
+
namespace AZ
{
namespace DX12
diff --git a/Gems/Atom/RPI/Code/Source/RPI.Public/Culling.cpp b/Gems/Atom/RPI/Code/Source/RPI.Public/Culling.cpp
index 18be5c8460..bd196a2e2b 100644
--- a/Gems/Atom/RPI/Code/Source/RPI.Public/Culling.cpp
+++ b/Gems/Atom/RPI/Code/Source/RPI.Public/Culling.cpp
@@ -874,7 +874,7 @@ namespace AZ
BeginCullingJobs(views);
}
-#if AZ_CULL_DEBUG_ENABLED
+#ifdef AZ_CULL_DEBUG_ENABLED
AuxGeomDrawPtr auxGeom;
if (m_debugCtx.m_debugDraw)
{
diff --git a/Gems/AtomContent/Sponza/.src/objects/sponza.ma b/Gems/AtomContent/Sponza/.src/objects/sponza.ma
index fabe9dd9ee..1c137a50b7 100644
--- a/Gems/AtomContent/Sponza/.src/objects/sponza.ma
+++ b/Gems/AtomContent/Sponza/.src/objects/sponza.ma
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:c95e08274ea0051ee35f415918eaf1530f05475d6265f2ad7ec7c1ff79d29f2b
-size 40549297
+oid sha256:57848334af0220b7348a8f2583080acf1d9c139a78c9fb1a93a7d2bce61f3c40
+size 41335413
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/arch_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/arch_1k_metallic.png
deleted file mode 100644
index 43da38b482..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/arch_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eafc59ca29ddd7d6a83c8532113c3a616242c06d764ab0e3c42f93f5203e0f79
-size 559423
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/bricks_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/bricks_1k_metallic.png
deleted file mode 100644
index fe97275473..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/bricks_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c47aaa62c959ef8369cb00a5e869485ba8dc5f3f52d5d8c2ecdb77a9c333d8f7
-size 621552
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/ceiling_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/ceiling_1k_metallic.png
deleted file mode 100644
index 9f053564a7..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/ceiling_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2bafc71e9b7c6836ed31695221d53a092a44f8e5d332d84c3a60010a047b4f89
-size 550767
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/columnA_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/columnA_1k_metallic.png
deleted file mode 100644
index efbf4943c5..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/columnA_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c56a010a5d6ed2dab7fa1949d8f1eb5b4ac9a1fccafc71767e159bf0bc9d9ee5
-size 613793
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/columnB_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/columnB_1k_metallic.png
deleted file mode 100644
index c7c0f1b666..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/columnB_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f45ed223121492a590549a91a5673279cbc5c03fcca2101a4bc96961f732fd81
-size 720418
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/columnC_1k_metallic.png b/Gems/AtomContent/Sponza/Assets/Textures/columnC_1k_metallic.png
deleted file mode 100644
index 907f2a79db..0000000000
--- a/Gems/AtomContent/Sponza/Assets/Textures/columnC_1k_metallic.png
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ed35a4a0f95f56612f44318aeb96e55a2f1a666f3ec2b321af4922b28e735314
-size 684898
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_alpha.png b/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_alpha.png
index da57383cc7..8556f67471 100644
--- a/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_alpha.png
+++ b/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_alpha.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:d9783a56bda8b5ff2f38b30e6206343fc14af3782ac5cbac38ecb8c97db2a468
-size 105226
+oid sha256:85ee26dcfdf8cb3ddcd378e92fd52e313ee23a58f7cc5a37556d96556986ba0b
+size 62658
diff --git a/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_basecolor.png b/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_basecolor.png
index 88015ead07..5f6cd0377f 100644
--- a/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_basecolor.png
+++ b/Gems/AtomContent/Sponza/Assets/Textures/vasePlant_1k_basecolor.png
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:99cd7e1af2b371bb42e97192c199a59686aff0c9e8c1e5617f8866071cf0360a
+oid sha256:05d7a544ccf6b04dcfb37411927a79e8f4b2e6224b09651f92885604d825dc9c
size 860074
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza.fbx b/Gems/AtomContent/Sponza/Assets/objects/sponza.fbx
index 38752bf32a..a38f51750a 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza.fbx
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza.fbx
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:e24948f9f477a3a167e50a80b04148d0a598d8c40bed86d51870daa8842ce5dd
-size 9175808
+oid sha256:6a8e686bd64cda37e8b27adcb691a846e62bcea6491547d53334ef4ed5424493
+size 21247456
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_arch.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_arch.material
index d95e84121c..6518091265 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_arch.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_arch.material
@@ -1,51 +1,40 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/arch_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/arch_1k_basecolor.png"
+ "textureMap": "../Textures/arch_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 1.0,
- 0.885053813457489,
- 0.801281750202179,
+ 0.2663614749908447,
+ 0.2383916974067688,
+ 0.18117037415504456,
1.0
]
},
- "metallic": {
- "textureMap": "Textures/arch_1k_metallic.png"
- },
"normal": {
- "textureMap": "Textures/arch_1k_normal.jpg"
+ "textureMap": "../Textures/arch_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/arch_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
- "factor": 0.050999999046325687,
+ "factor": 0.050999999046325684,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/arch_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/arch_1k_roughness.png"
+ "textureMap": "../Textures/arch_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_background.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_background.material
index 710f790419..d944638e50 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_background.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_background.material
@@ -1,25 +1,16 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/background_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/background_1k_basecolor.png"
+ "textureMap": "../Textures/background_1k_basecolor.png"
},
"clearCoat": {
"enable": true,
"factor": 0.5,
- "normalMap": "Textures/background_1k_normal.jpg",
+ "normalMap": "../Textures/background_1k_normal.jpg",
"roughness": 0.4000000059604645
},
"general": {
@@ -27,31 +18,32 @@
},
"irradiance": {
"color": [
- 1.0,
- 0.8911573886871338,
- 0.7894102334976196,
+ 0.19806210696697235,
+ 0.1746547669172287,
+ 0.16513313353061676,
1.0
]
},
"metallic": {
- "textureMap": "Textures/background_1k_metallic.png"
+ "textureMap": "../Textures/background_1k_metallic.png"
},
"normal": {
- "textureMap": "Textures/background_1k_normal.jpg"
+ "textureMap": "../Textures/background_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/background_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
"factor": 0.03099999949336052,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/background_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/background_1k_roughness.png"
+ "textureMap": "../Textures/background_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_bricks.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_bricks.material
index 26d64c7db9..52fdf9e3a2 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_bricks.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_bricks.material
@@ -1,25 +1,15 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/bricks_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/bricks_1k_basecolor.png"
+ "textureMap": "../Textures/bricks_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "normalMap": "Textures/bricks_1k_normal.jpg",
+ "normalMap": "../Textures/bricks_1k_normal.jpg",
"roughness": 0.5
},
"general": {
@@ -27,17 +17,17 @@
},
"irradiance": {
"color": [
- 1.0,
- 0.9703211784362793,
- 0.9703211784362793,
+ 0.27467766404151917,
+ 0.27467766404151917,
+ 0.270496666431427,
1.0
]
},
- "metallic": {
- "textureMap": "Textures/bricks_1k_metallic.png"
- },
"normal": {
- "textureMap": "Textures/bricks_1k_normal.jpg"
+ "textureMap": "../Textures/bricks_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/bricks_1k_ao.png"
},
"opacity": {
"factor": 1.0
@@ -46,11 +36,10 @@
"algorithm": "ContactRefinement",
"factor": 0.03500000014901161,
"quality": "Medium",
- "textureMap": "Textures/bricks_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/bricks_1k_roughness.png"
+ "textureMap": "../Textures/bricks_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_ceiling.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_ceiling.material
index 88730c9556..10f5a01a8e 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_ceiling.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_ceiling.material
@@ -1,17 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/ceiling_1k_basecolor.png"
+ "textureMap": "../Textures/ceiling_1k_basecolor.png"
},
"emissive": {
"color": [
@@ -21,8 +15,22 @@
1.0
]
},
+ "irradiance": {
+ "color": [
+ 0.29176774621009827,
+ 0.27888914942741394,
+ 0.2501564025878906,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/ceiling_1k_normal.png"
+ },
"opacity": {
"factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/ceiling_1k_roughness.png"
}
}
}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_chain.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_chain.material
index 1ed442a9e0..caf03bd3ce 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_chain.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_chain.material
@@ -1,17 +1,12 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/chain_basecolor.png"
+ "textureBlendMode": "Lerp",
+ "textureMap": "../Textures/chain_basecolor.png"
},
"emissive": {
"color": [
@@ -21,8 +16,20 @@
1.0
]
},
+ "general": {
+ "doubleSided": true
+ },
+ "metallic": {
+ "factor": 0.8899999856948853
+ },
+ "normal": {
+ "textureMap": "../Textures/chain_normal.jpg"
+ },
"opacity": {
- "factor": 1.0
+ "alphaSource": "Split",
+ "factor": 1.0,
+ "mode": "Cutout",
+ "textureMap": "../Textures/chain_alpha.png"
}
}
}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columna.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columna.material
index cc1f685c7c..15c3fec349 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columna.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columna.material
@@ -1,26 +1,16 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/columnA_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/columnA_1k_basecolor.png"
+ "textureMap": "../Textures/columnA_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "normalMap": "Textures/columnA_1k_normal.jpg",
- "roughness": 0.30000001192092898
+ "normalMap": "../Textures/columnA_1k_normal.jpg",
+ "roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
@@ -33,25 +23,23 @@
1.0
]
},
- "metallic": {
- "textureMap": "Textures/columnA_1k_metallic.png"
- },
"normal": {
- "textureMap": "Textures/columnA_1k_normal.jpg"
+ "textureMap": "../Textures/columnA_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnA_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
- "factor": 0.017000000923871995,
+ "factor": 0.017000000923871994,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/columnA_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/columnA_1k_roughness.png"
+ "textureMap": "../Textures/columnA_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnb.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnb.material
index a1e8747f65..e13f96b2bb 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnb.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnb.material
@@ -1,56 +1,45 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/columnB_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/columnB_1k_basecolor.png"
+ "textureMap": "../Textures/columnB_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "normalMap": "Textures/columnB_1k_normal.jpg",
- "roughness": 0.30000001192092898
+ "normalMap": "../Textures/columnB_1k_normal.jpg",
+ "roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 1.0,
- 0.9015335440635681,
- 0.8348516225814819,
+ 0.41788357496261597,
+ 0.40723279118537903,
+ 0.4286869466304779,
1.0
]
},
- "metallic": {
- "textureMap": "Textures/columnB_1k_metallic.png"
- },
"normal": {
- "textureMap": "Textures/columnB_1k_normal.jpg"
+ "textureMap": "../Textures/columnB_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnB_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "factor": 0.020999999716877939,
+ "factor": 0.020999999716877937,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/columnB_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/columnB_1k_roughness.png"
+ "textureMap": "../Textures/columnB_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnc.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnc.material
index 6edbfde47c..479692848a 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnc.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_columnc.material
@@ -1,57 +1,45 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/columnC_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/columnC_1k_basecolor.png"
+ "textureMap": "../Textures/columnC_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "normalMap": "Textures/columnC_1k_normal.jpg",
- "roughness": 0.30000001192092898
+ "normalMap": "../Textures/columnC_1k_normal.jpg",
+ "roughness": 0.30000001192092896
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 0.9050736427307129,
- 0.9050736427307129,
- 1.0,
+ 0.32314029335975647,
+ 0.29176774621009827,
+ 0.24228274822235107,
1.0
]
},
- "metallic": {
- "textureMap": "Textures/columnC_1k_metallic.png"
- },
"normal": {
- "textureMap": "Textures/columnC_1k_normal.jpg"
+ "textureMap": "../Textures/columnC_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/columnC_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
"factor": 0.014000000432133675,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/columnC_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/columnC_1k_roughness.png"
+ "textureMap": "../Textures/columnC_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainblue.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainblue.material
index 351091e48a..50fd968956 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainblue.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainblue.material
@@ -1,47 +1,52 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/curtain_ao.png"
- },
"baseColor": {
"color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
+ 1.0,
+ 1.0,
+ 1.0,
1.0
],
- "textureMap": "Textures/curtainBlue_1k_basecolor.png"
+ "textureMap": "../Textures/curtainBlue_1k_basecolor.png"
+ },
+ "emissive": {
+ "color": [
+ 1.0,
+ 1.0,
+ 1.0,
+ 1.0
+ ]
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 0.06195162981748581,
- 0.2056153267621994,
+ 0.0,
+ 0.14901961386203766,
1.0,
1.0
]
},
"metallic": {
- "textureMap": "Textures/curtain_metallic.png"
+ "textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
"factor": 0.5,
- "textureMap": "Textures/curtain_normal.jpg"
+ "textureMap": "../Textures/curtain_normal.jpg"
},
- "opacity": {
- "factor": 1.0
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
},
"roughness": {
- "textureMap": "Textures/curtain_roughness.png"
+ "textureMap": "../Textures/curtain_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtaingreen.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtaingreen.material
index ab656cf3dc..6e70a42d24 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtaingreen.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtaingreen.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/curtain_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/curtainGreen_1k_basecolor.png"
+ "textureMap": "../Textures/curtainGreen_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -22,23 +13,26 @@
"irradiance": {
"color": [
0.0,
- 1.0,
- 0.029526207596063615,
+ 0.15294118225574493,
+ 0.0,
1.0
]
},
"metallic": {
- "textureMap": "Textures/curtain_metallic.png"
+ "textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
"factor": 0.5,
- "textureMap": "Textures/curtain_normal.jpg"
+ "textureMap": "../Textures/curtain_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
- "textureMap": "Textures/curtain_roughness.png"
+ "textureMap": "../Textures/curtain_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainred.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainred.material
index e9d00dbac0..8233633310 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainred.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_curtainred.material
@@ -1,43 +1,37 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/curtain_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/curtainRed_1k_basecolor.png"
+ "textureMap": "../Textures/curtainRed_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 1.0,
- 0.023315785452723504,
- 0.048538949340581897,
+ 0.41960784792900085,
+ 0.003921568859368563,
+ 0.003921568859368563,
1.0
]
},
"metallic": {
- "textureMap": "Textures/curtain_metallic.png"
+ "textureMap": "../Textures/curtain_metallic.png"
},
"normal": {
- "textureMap": "Textures/curtain_normal.jpg"
+ "textureMap": "../Textures/curtain_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/curtain_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
- "textureMap": "Textures/curtain_roughness.png"
+ "textureMap": "../Textures/curtain_roughness.png"
},
"uv": {
"center": [
@@ -46,4 +40,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_details.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_details.material
index 1b66a51ec0..b66d8fa679 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_details.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_details.material
@@ -1,48 +1,39 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/details_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/details_1k_basecolor.png"
+ "textureMap": "../Textures/details_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "normalMap": "Textures/details_1k_normal.png",
+ "normalMap": "../Textures/details_1k_normal.png",
"roughness": 0.25
},
"general": {
"applySpecularAA": true
},
"metallic": {
- "textureMap": "Textures/details_1k_metallic.png"
+ "textureMap": "../Textures/details_1k_metallic.png"
},
"normal": {
- "textureMap": "Textures/details_1k_normal.png"
+ "textureMap": "../Textures/details_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/details_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
"factor": 0.02500000037252903,
"pdo": true,
- "textureMap": "Textures/details_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/details_1k_roughness.png"
+ "textureMap": "../Textures/details_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricblue.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricblue.material
index 0f7331c344..19ce3a6839 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricblue.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricblue.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/fabric_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/fabricBlue_1k_basecolor.png"
+ "textureMap": "../Textures/fabricBlue_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -22,23 +13,27 @@
"irradiance": {
"color": [
0.0,
- 0.15049973130226136,
+ 0.15049973130226135,
1.0,
1.0
- ]
+ ],
+ "factor": 0.30000001192092896
},
"metallic": {
- "textureMap": "Textures/fabric_metallic.png"
+ "textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
- "textureMap": "Textures/fabric_normal.jpg"
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
- "textureMap": "Textures/fabric_roughness.png"
+ "textureMap": "../Textures/fabric_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricgreen.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricgreen.material
index 9150a3caa5..94b8270fef 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricgreen.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricgreen.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/fabric_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/fabricGreen_1k_basecolor.png"
+ "textureMap": "../Textures/fabricGreen_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -22,23 +13,27 @@
"irradiance": {
"color": [
0.0,
- 1.0,
- 0.15378041565418244,
+ 0.15292592346668243,
+ 0.0012207217514514923,
1.0
- ]
+ ],
+ "factor": 0.30000001192092896
},
"metallic": {
- "textureMap": "Textures/fabric_metallic.png"
+ "textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
- "textureMap": "Textures/fabric_normal.jpg"
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
- "textureMap": "Textures/fabric_roughness.png"
+ "textureMap": "../Textures/fabric_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricred.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricred.material
index b697e91b28..7bd2ecddd0 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricred.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_fabricred.material
@@ -1,44 +1,39 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/fabric_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/fabricRed_1k_basecolor.png"
+ "textureMap": "../Textures/fabricRed_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
"irradiance": {
"color": [
- 1.0,
- 0.08197146654129029,
- 0.10267795622348786,
+ 0.42040130496025085,
+ 0.004654001910239458,
+ 0.0037232013419270515,
1.0
- ]
+ ],
+ "factor": 0.30000001192092896
},
"metallic": {
- "textureMap": "Textures/fabric_metallic.png"
+ "textureMap": "../Textures/fabric_metallic.png"
},
"normal": {
"factor": 0.5,
- "textureMap": "Textures/fabric_normal.jpg"
+ "textureMap": "../Textures/fabric_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/fabric_ao.png"
},
"opacity": {
"factor": 1.0
},
"roughness": {
- "textureMap": "Textures/fabric_roughness.png"
+ "textureMap": "../Textures/fabric_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_flagpole.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_flagpole.material
index 19010d66e5..aca6c05d29 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_flagpole.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_flagpole.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/flagpole_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/flagpole_1k_basecolor.png"
+ "textureMap": "../Textures/flagpole_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -28,27 +19,28 @@
]
},
"metallic": {
- "textureMap": "Textures/flagpole_1k_metallic.png"
+ "textureMap": "../Textures/flagpole_1k_metallic.png"
},
"normal": {
- "textureMap": "Textures/flagpole_1k_normal.png"
+ "textureMap": "../Textures/flagpole_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/flagpole_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
"factor": 0.014000000432133675,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/flagpole_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/flagpole_1k_roughness.png"
+ "textureMap": "../Textures/flagpole_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_floor.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_floor.material
index bee92e0edb..b75143326d 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_floor.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_floor.material
@@ -1,25 +1,15 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/floor_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/floor_1k_basecolor.png"
+ "textureMap": "../Textures/floor_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
- "influenceMap": "Textures/floor_1k_ao.png",
- "normalMap": "Textures/floor_1k_normal.png",
+ "influenceMap": "../Textures/floor_1k_ao.png",
+ "normalMap": "../Textures/floor_1k_normal.png",
"roughness": 0.25
},
"general": {
@@ -34,20 +24,21 @@
]
},
"normal": {
- "textureMap": "Textures/floor_1k_normal.png"
+ "textureMap": "../Textures/floor_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/floor_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
- "factor": 0.012000000104308129,
+ "factor": 0.012000000104308128,
"pdo": true,
- "textureMap": "Textures/floor_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/floor_1k_roughness.png"
+ "textureMap": "../Textures/floor_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_leaf.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_leaf.material
index c95d0a662b..51638d6d94 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_leaf.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_leaf.material
@@ -1,52 +1,43 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/thorn_basecolor.png"
+ "textureMap": "../Textures/thorn_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.05000000074505806,
- "normalMap": "Textures/thorn_normal.jpg",
+ "normalMap": "../Textures/thorn_normal.jpg",
"roughness": 0.10000000149011612
},
"general": {
- "applySpecularAA": true
+ "applySpecularAA": true,
+ "doubleSided": true
},
"irradiance": {
"color": [
- 0.46506446599960329,
+ 0.46506446599960327,
1.0,
0.3944609761238098,
1.0
]
},
- "metallic": {
- "textureMap": "Textures/thorn_metallic.png"
- },
"normal": {
- "textureMap": "Textures/thorn_normal.jpg"
+ "textureMap": "../Textures/thorn_normal.jpg"
},
"opacity": {
- "doubleSided": true,
- "factor": 0.20000000298023225,
- "mode": "Cutout"
+ "alphaSource": "Split",
+ "factor": 0.20000000298023224,
+ "mode": "Cutout",
+ "textureMap": "../Textures/thorn_alpha.png"
},
"parallax": {
- "textureMap": "Textures/thorn_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/thorn_roughness.png"
+ "textureMap": "../Textures/thorn_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_lion.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_lion.material
index 08eb920607..eee41e9c13 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_lion.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_lion.material
@@ -1,17 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/lion_1k_basecolor.png"
+ "textureMap": "../Textures/lion_1k_basecolor.png"
},
"emissive": {
"color": [
@@ -21,8 +15,22 @@
1.0
]
},
+ "irradiance": {
+ "color": [
+ 0.5583428740501404,
+ 0.496940553188324,
+ 0.4125429093837738,
+ 1.0
+ ]
+ },
+ "normal": {
+ "textureMap": "../Textures/lion_1k_normal.jpg"
+ },
"opacity": {
"factor": 1.0
+ },
+ "roughness": {
+ "textureMap": "../Textures/lion_1k_roughness.png"
}
}
}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_roof.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_roof.material
index a3e066a438..fec7bb1e34 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_roof.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_roof.material
@@ -1,45 +1,47 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/roof_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
"textureBlendMode": "Lerp",
- "textureMap": "Textures/roof_1k_basecolor.png"
+ "textureMap": "../Textures/roof_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
},
+ "irradiance": {
+ "color": [
+ 0.29613184928894043,
+ 0.3324483036994934,
+ 0.45078203082084656,
+ 1.0
+ ]
+ },
"metallic": {
+ "textureMap": "../Textures/roof_1k_metallic.png",
"useTexture": false
},
"normal": {
"factor": 0.5,
"flipY": true,
- "textureMap": "Textures/roof_1k_normal.jpg"
+ "textureMap": "../Textures/roof_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/roof_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
"algorithm": "ContactRefinement",
- "factor": 0.019999999552965165,
+ "factor": 0.019999999552965164,
"quality": "Medium",
- "textureMap": "Textures/roof_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/roof_1k_roughness.png"
+ "textureMap": "../Textures/roof_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vase.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vase.material
index dea9aa2a8a..da7a9de3a8 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vase.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vase.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/vase_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/vase_1k_basecolor.png"
+ "textureMap": "../Textures/vase_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -28,27 +19,28 @@
]
},
"metallic": {
- "textureMap": "Textures/vase_1k_metallic.png"
+ "textureMap": "../Textures/vase_1k_metallic.png"
},
"normal": {
- "textureMap": "Textures/vase_1k_normal.jpg"
+ "textureMap": "../Textures/vase_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vase_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
- "factor": 0.027000000700354577,
+ "factor": 0.027000000700354576,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/vase_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/vase_1k_roughness.png"
+ "textureMap": "../Textures/vase_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vasehanging.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vasehanging.material
index b2a342dd76..bda7aad38c 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vasehanging.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vasehanging.material
@@ -1,20 +1,11 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/vaseHanging_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/vaseHanging_1k_basecolor.png"
+ "textureMap": "../Textures/vaseHanging_1k_basecolor.png"
},
"general": {
"applySpecularAA": true
@@ -23,29 +14,30 @@
"color": [
0.765606164932251,
1.0,
- 0.7052567601203919,
+ 0.7052567601203918,
1.0
]
},
"metallic": {
- "textureMap": "Textures/vaseHanging_1k_metallic.png"
+ "textureMap": "../Textures/vaseHanging_1k_metallic.png"
},
"normal": {
- "textureMap": "Textures/vaseHanging_1k_normal.png"
+ "textureMap": "../Textures/vaseHanging_1k_normal.png"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vaseHanging_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
"factor": 0.04600000008940697,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/vaseHanging_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/vaseHanging_1k_roughness.png"
+ "textureMap": "../Textures/vaseHanging_1k_roughness.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseplant.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseplant.material
index 290ddc81a6..5546daa0e0 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseplant.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseplant.material
@@ -1,8 +1,8 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
"baseColor": {
"color": [
@@ -11,23 +11,26 @@
0.800000011920929,
1.0
],
- "textureMap": "Textures/vasePlant_1k_basecolor.png"
+ "textureBlendMode": "Lerp",
+ "textureMap": "../Textures/vasePlant_1k_basecolor.png"
},
"general": {
- "applySpecularAA": true
+ "applySpecularAA": true,
+ "doubleSided": true
},
"irradiance": {
"color": [
- 0.6788738965988159,
- 1.0,
- 0.026138704270124437,
+ 0.09086747467517853,
+ 0.4111391007900238,
+ 0.0474097803235054,
1.0
]
},
"opacity": {
- "doubleSided": true,
- "factor": 0.28999999165534975,
- "mode": "Cutout"
+ "alphaSource": "Split",
+ "factor": 0.23999999463558197,
+ "mode": "Cutout",
+ "textureMap": "../Textures/vasePlant_1k_alpha.png"
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseround.material b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseround.material
index fba07379c0..268e3ab613 100644
--- a/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseround.material
+++ b/Gems/AtomContent/Sponza/Assets/objects/sponza_mat_vaseround.material
@@ -1,26 +1,16 @@
{
"description": "",
- "materialType": "Materials/Types/StandardPBR.materialtype",
"parentMaterial": "",
- "propertyLayoutVersion": 3,
+ "materialType": "Materials/Types/StandardPBR.materialtype",
+ "materialTypeVersion": 4,
"properties": {
- "occlusion": {
- "diffuseTextureMap": "Textures/vaseRound_1k_ao.png"
- },
"baseColor": {
- "color": [
- 0.800000011920929,
- 0.800000011920929,
- 0.800000011920929,
- 1.0
- ],
- "textureMap": "Textures/vaseRound_1k_basecolor.png"
+ "textureMap": "../Textures/vaseRound_1k_basecolor.png"
},
"clearCoat": {
- "enable": true,
"factor": 0.5,
- "influenceMap": "Textures/vaseRound_1k_ao.png",
- "normalMap": "Textures/vaseRound_1k_normal.jpg",
+ "influenceMap": "../Textures/vaseRound_1k_ao.png",
+ "normalMap": "../Textures/vaseRound_1k_normal.jpg",
"roughness": 0.25
},
"general": {
@@ -28,31 +18,32 @@
},
"irradiance": {
"color": [
- 1.0,
- 0.5939116477966309,
- 0.29176774621009829,
+ 0.46933698654174805,
+ 0.3824063539505005,
+ 0.47861447930336,
1.0
]
},
"normal": {
- "textureMap": "Textures/vaseRound_1k_normal.jpg"
+ "textureMap": "../Textures/vaseRound_1k_normal.jpg"
+ },
+ "occlusion": {
+ "diffuseTextureMap": "../Textures/vaseRound_1k_ao.png"
},
"opacity": {
"factor": 1.0
},
"parallax": {
- "algorithm": "POM",
- "factor": 0.019999999552965165,
+ "factor": 0.019999999552965164,
"pdo": true,
"quality": "High",
- "textureMap": "Textures/vaseRound_1k_height.png",
"useTexture": false
},
"roughness": {
- "textureMap": "Textures/vaseRound_1k_roughness.png"
+ "textureMap": "../Textures/vaseRound_1k_roughness.png"
},
"specularF0": {
"enableMultiScatterCompensation": true
}
}
-}
+}
\ No newline at end of file
diff --git a/Gems/Blast/AssetProcessorGemConfig.setreg b/Gems/Blast/AssetProcessorGemConfig.setreg
index 49d85f1a90..e820d41104 100644
--- a/Gems/Blast/AssetProcessorGemConfig.setreg
+++ b/Gems/Blast/AssetProcessorGemConfig.setreg
@@ -10,6 +10,7 @@
"RC blastmaterial": {
"glob": "*.blastmaterial",
"params": "copy",
+ "critical": true,
"productAssetType": "{55F38C86-0767-4E7F-830A-A4BF624BE4DA}"
},
"RC blastconfiguration": {
diff --git a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp
index ceb9412408..e7cf297f1e 100644
--- a/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp
+++ b/Gems/Multiplayer/Code/Source/Components/NetBindComponent.cpp
@@ -167,7 +167,10 @@ namespace Multiplayer
void NetBindComponent::Deactivate()
{
- AZ_Assert(m_needsToBeStopped == false, "Entity appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.");
+ AZ_Assert(
+ m_needsToBeStopped == false,
+ "Entity (%s) appears to have been improperly deleted. Use MarkForRemoval to correctly clean up a networked entity.",
+ GetEntity() ? GetEntity()->GetName().c_str() : "null");
m_handleLocalServerRpcMessageEventHandle.Disconnect();
if (NetworkRoleHasController(m_netEntityRole))
{
diff --git a/Gems/NvCloth/Assets/slices/Cloth/Chicken_Actor.slice b/Gems/NvCloth/Assets/slices/Cloth/Chicken_Actor.slice
deleted file mode 100644
index c2c97dec7a..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/Chicken_Actor.slice
+++ /dev/null
@@ -1,532 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds.slice b/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds.slice
deleted file mode 100644
index 40fb2894d3..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds.slice
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds_broken.slice b/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds_broken.slice
deleted file mode 100644
index 909b3e582c..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/cloth_blinds_broken.slice
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_four.slice b/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_four.slice
deleted file mode 100644
index 25e742550c..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_four.slice
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_two.slice b/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_two.slice
deleted file mode 100644
index 26c6290859..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_corners_two.slice
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_edge.slice b/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_edge.slice
deleted file mode 100644
index cee4fabe49..0000000000
--- a/Gems/NvCloth/Assets/slices/Cloth/cloth_locked_edge.slice
+++ /dev/null
@@ -1,329 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Gems/PhysX/Code/Source/System/PhysXSystem.cpp b/Gems/PhysX/Code/Source/System/PhysXSystem.cpp
index cc21285f8c..447df6dcc5 100644
--- a/Gems/PhysX/Code/Source/System/PhysXSystem.cpp
+++ b/Gems/PhysX/Code/Source/System/PhysXSystem.cpp
@@ -7,6 +7,8 @@
*/
#include
#include
+#include
+#include
#include
#include
@@ -97,7 +99,20 @@ namespace PhysX
m_systemConfig = *physXConfig;
}
- AzFramework::AssetCatalogEventBus::Handler::BusConnect();
+ // If the settings registry isn't available, something earlier in startup will report that failure.
+ if (auto* settingsRegistry = AZ::SettingsRegistry::Get();
+ settingsRegistry != nullptr)
+ {
+ // Automatically register the event if it's not registered, because
+ // this system is initialized before the settings registry has loaded the event list.
+ AZ::ComponentApplicationLifecycle::RegisterHandler(
+ *settingsRegistry, m_componentApplicationLifecycleHandler,
+ [this]([[maybe_unused]] AZStd::string_view path, [[maybe_unused]] AZ::SettingsRegistryInterface::Type type)
+ {
+ InitializeMaterialLibrary();
+ },
+ "LegacySystemInterfaceCreated"); // LegacySystemInterfaceCreated is signaled after critical assets have been processed
+ }
m_state = State::Initialized;
m_initializeEvent.Signal(&m_systemConfig);
@@ -118,7 +133,7 @@ namespace PhysX
RemoveAllScenes();
- AzFramework::AssetCatalogEventBus::Handler::BusDisconnect();
+ m_componentApplicationLifecycleHandler.Disconnect();
m_materialLibraryAssetHelper.Disconnect();
// Clear the asset reference in deactivate. The asset system is shut down before destructors are called
// for system components, causing any hanging asset references to become crashes on shutdown in release builds.
@@ -362,10 +377,8 @@ namespace PhysX
return &m_systemConfig;
}
- void PhysXSystem::OnCatalogLoaded([[maybe_unused]]const char* catalogFile)
+ void PhysXSystem::InitializeMaterialLibrary()
{
- // now that assets can be resolved, lets load the default material library.
-
if (!m_systemConfig.m_materialLibraryAsset.GetId().IsValid())
{
m_onMaterialLibraryLoadErrorEvent.Signal(AzPhysics::SystemEvents::MaterialLibraryLoadErrorType::InvalidId);
diff --git a/Gems/PhysX/Code/Source/System/PhysXSystem.h b/Gems/PhysX/Code/Source/System/PhysXSystem.h
index d1250b6958..48b5dfa075 100644
--- a/Gems/PhysX/Code/Source/System/PhysXSystem.h
+++ b/Gems/PhysX/Code/Source/System/PhysXSystem.h
@@ -7,10 +7,9 @@
*/
#pragma once
-#include
#include
#include
-#include
+#include
#include
#include
@@ -35,7 +34,6 @@ namespace PhysX
{
class PhysXSystem
: public AZ::Interface::Registrar
- , private AzFramework::AssetCatalogEventBus::Handler
{
public:
AZ_CLASS_ALLOCATOR_DECL;
@@ -89,10 +87,9 @@ namespace PhysX
//! @param cookingParams The cooking params to use when setting up PhysX cooking interface.
void InitializePhysXSdk(const physx::PxCookingParams& cookingParams);
void ShutdownPhysXSdk();
- bool LoadMaterialLibrary();
- // AzFramework::AssetCatalogEventBus::Handler ...
- void OnCatalogLoaded(const char* catalogFile) override;
+ void InitializeMaterialLibrary();
+ bool LoadMaterialLibrary();
PhysXSystemConfiguration m_systemConfig;
AzPhysics::SceneConfiguration m_defaultSceneConfiguration;
@@ -145,6 +142,8 @@ namespace PhysX
OnMaterialLibraryReloadedCallback m_onMaterialLibraryReloadedCallback;
};
MaterialLibraryAssetHelper m_materialLibraryAssetHelper;
+
+ AZ::SettingsRegistryInterface::NotifyEventHandler m_componentApplicationLifecycleHandler;
};
//! Helper function for getting the PhysX System interface from inside the PhysX gem.
diff --git a/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasGraphUtilities.inl b/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasGraphUtilities.inl
index dabd06b0d1..83e4e2908c 100644
--- a/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasGraphUtilities.inl
+++ b/Gems/ScriptCanvas/Code/Editor/Framework/ScriptCanvasGraphUtilities.inl
@@ -267,7 +267,7 @@ namespace ScriptCanvasEditor
RuntimeDataOverrides dependencyRuntimeDataOverrides;
dependencyRuntimeDataOverrides.m_runtimeAsset = dependency.runtimeAsset;
- AZStd::string dependencyHint = AZStd::string::format("dependency_%d", index);
+ AZStd::string dependencyHint = AZStd::string::format("dependency_%zu", index);
dependencyRuntimeDataOverrides.m_runtimeAsset.SetHint(dependencyHint);
dependencyRuntimeDataOverrides.m_runtimeAsset.Get()->m_runtimeData.m_script.SetHint(dependencyHint);
diff --git a/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.cpp b/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.cpp
index 20041e2fc8..bc951f7c48 100644
--- a/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.cpp
+++ b/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.cpp
@@ -161,11 +161,32 @@ void TerrainSystem::ClampPosition(float x, float y, AZ::Vector2& outPosition, AZ
outPosition = (normalizedPosition - normalizedDelta) * m_currentSettings.m_heightQueryResolution;
}
+bool TerrainSystem::InWorldBounds(float x, float y) const
+{
+ const float zTestValue = m_currentSettings.m_worldBounds.GetMin().GetX() +
+ ((m_currentSettings.m_worldBounds.GetMax().GetX() - m_currentSettings.m_worldBounds.GetMin().GetX()) / 2.0f);
+ const AZ::Vector3 testValue{ x, y, zTestValue };
+ if (m_currentSettings.m_worldBounds.Contains(testValue))
+ {
+ return true;
+ }
+ return false;
+}
+
float TerrainSystem::GetHeightSynchronous(float x, float y, Sampler sampler, bool* terrainExistsPtr) const
{
bool terrainExists = false;
float height = m_currentSettings.m_worldBounds.GetMin().GetZ();
+ if (!InWorldBounds(x, y))
+ {
+ if (terrainExistsPtr)
+ {
+ *terrainExistsPtr = terrainExists;
+ return height;
+ }
+ }
+
AZStd::shared_lock lock(m_areaMutex);
switch (sampler)
@@ -298,6 +319,14 @@ AZ::Vector3 TerrainSystem::GetNormalSynchronous(float x, float y, Sampler sample
AZ::Vector3 outNormal = AZ::Vector3::CreateAxisZ();
+ if (!InWorldBounds(x, y))
+ {
+ if (terrainExistsPtr)
+ {
+ *terrainExistsPtr = terrainExists;
+ return outNormal;
+ }
+ }
const AZ::Vector2 range = (m_currentSettings.m_heightQueryResolution / 2.0f);
const AZ::Vector2 left (x - range.GetX(), y);
const AZ::Vector2 right(x + range.GetX(), y);
@@ -334,14 +363,14 @@ AZ::Vector3 TerrainSystem::GetNormalFromFloats(float x, float y, Sampler sampler
return GetNormalSynchronous(x, y, sampler, terrainExistsPtr);
}
-
AzFramework::SurfaceData::SurfaceTagWeight TerrainSystem::GetMaxSurfaceWeight(
const AZ::Vector3& position, Sampler sampleFilter, bool* terrainExistsPtr) const
{
return GetMaxSurfaceWeightFromFloats(position.GetX(), position.GetY(), sampleFilter, terrainExistsPtr);
}
-AzFramework::SurfaceData::SurfaceTagWeight TerrainSystem::GetMaxSurfaceWeightFromVector2(const AZ::Vector2& inPosition, Sampler sampleFilter, bool* terrainExistsPtr) const
+AzFramework::SurfaceData::SurfaceTagWeight TerrainSystem::GetMaxSurfaceWeightFromVector2(
+ const AZ::Vector2& inPosition, Sampler sampleFilter, bool* terrainExistsPtr) const
{
return GetMaxSurfaceWeightFromFloats(inPosition.GetX(), inPosition.GetY(), sampleFilter, terrainExistsPtr);
}
@@ -356,6 +385,15 @@ AzFramework::SurfaceData::SurfaceTagWeight TerrainSystem::GetMaxSurfaceWeightFro
AzFramework::SurfaceData::SurfaceTagWeightList weightSet;
+ if (!InWorldBounds(x, y))
+ {
+ if (terrainExistsPtr)
+ {
+ *terrainExistsPtr = false;
+ return {};
+ }
+ }
+
GetOrderedSurfaceWeights(x, y, sampleFilter, weightSet, terrainExistsPtr);
if (weightSet.empty())
@@ -465,7 +503,6 @@ void TerrainSystem::GetSurfaceWeightsFromVector2(
Sampler sampleFilter,
bool* terrainExistsPtr) const
{
-
GetOrderedSurfaceWeights(inPosition.GetX(), inPosition.GetY(), sampleFilter, outSurfaceWeights, terrainExistsPtr);
}
diff --git a/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.h b/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.h
index c6bd19fdda..d7267476ed 100644
--- a/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.h
+++ b/Gems/Terrain/Code/Source/TerrainSystem/TerrainSystem.h
@@ -138,6 +138,7 @@ namespace Terrain
private:
void ClampPosition(float x, float y, AZ::Vector2& outPosition, AZ::Vector2& normalizedDelta) const;
+ bool InWorldBounds(float x, float y) const;
AZ::EntityId FindBestAreaEntityAtPosition(float x, float y, AZ::Aabb& bounds) const;
void GetOrderedSurfaceWeights(
diff --git a/Registry/AssetProcessorPlatformConfig.setreg b/Registry/AssetProcessorPlatformConfig.setreg
index 30e19762ac..255bac17e0 100644
--- a/Registry/AssetProcessorPlatformConfig.setreg
+++ b/Registry/AssetProcessorPlatformConfig.setreg
@@ -457,7 +457,7 @@
"RC physmaterial": {
"glob": "*.physmaterial",
"params": "copy",
- "critical": "true",
+ "critical": true,
"productAssetType": "{9E366D8C-33BB-4825-9A1F-FA3ADBE11D0F}"
},
"RC ocm": {
diff --git a/engine.json b/engine.json
index 737ac24fea..0aa3238f49 100644
--- a/engine.json
+++ b/engine.json
@@ -86,6 +86,7 @@
"Gems/WhiteBox"
],
"projects": [
+ "AtomTest",
"AutomatedTesting"
],
"templates": [