diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/Icons/skybox.svg b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/Icons/skybox.svg
new file mode 100644
index 0000000000..83df996198
--- /dev/null
+++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/Icons/skybox.svg
@@ -0,0 +1,15 @@
+
+
\ No newline at end of file
diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditor.qrc b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditor.qrc
index cde48079ac..902201e792 100644
--- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditor.qrc
+++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/MaterialEditor.qrc
@@ -19,6 +19,7 @@
Icons/texture_edit.png
Icons/grid.svg
Icons/shadow.svg
+ Icons/skybox.svg
Icons/toneMapping.svg
Icons/View.svg
diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.cpp b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.cpp
index 55829fd744..1e189168da 100644
--- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.cpp
+++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.cpp
@@ -50,8 +50,16 @@ namespace MaterialEditor
});
m_toggleShadowCatcher->setChecked(viewportSettings->m_enableShadowCatcher);
- // Add mapping selection button
+ // Add toggle alternate skybox button
+ m_toggleAlternateSkybox = addAction(QIcon(":/Icons/skybox.svg"), "Toggle Alternate Skybox");
+ m_toggleAlternateSkybox->setCheckable(true);
+ connect(m_toggleAlternateSkybox, &QAction::triggered, [this]() {
+ MaterialViewportRequestBus::Broadcast(
+ &MaterialViewportRequestBus::Events::SetAlternateSkyboxEnabled, m_toggleAlternateSkybox->isChecked());
+ });
+ m_toggleAlternateSkybox->setChecked(viewportSettings->m_enableAlternateSkybox);
+ // Add mapping selection button
QToolButton* toneMappingButton = new QToolButton(this);
QMenu* toneMappingMenu = new QMenu(toneMappingButton);
@@ -105,6 +113,11 @@ namespace MaterialEditor
m_toggleGrid->setChecked(enable);
}
+ void MaterialEditorToolBar::OnAlternateSkyboxEnabledChanged(bool enable)
+ {
+ m_toggleAlternateSkybox->setChecked(enable);
+ }
+
void MaterialEditorToolBar::OnDisplayMapperOperationTypeChanged(AZ::Render::DisplayMapperOperationType operationType)
{
for (auto operationActionPair : m_operationActions)
diff --git a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.h b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.h
index d68c23665f..c25b90eb80 100644
--- a/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.h
+++ b/Gems/Atom/Tools/MaterialEditor/Code/Source/Window/ToolBar/MaterialEditorToolBar.h
@@ -29,10 +29,12 @@ namespace MaterialEditor
// MaterialViewportNotificationBus::Handler overrides...
void OnShadowCatcherEnabledChanged([[maybe_unused]] bool enable) override;
void OnGridEnabledChanged([[maybe_unused]] bool enable) override;
+ void OnAlternateSkyboxEnabledChanged([[maybe_unused]] bool enable) override;
void OnDisplayMapperOperationTypeChanged(AZ::Render::DisplayMapperOperationType operationType) override;
QAction* m_toggleGrid = {};
QAction* m_toggleShadowCatcher = {};
+ QAction* m_toggleAlternateSkybox = {};
AZStd::unordered_map m_operationNames;
AZStd::unordered_map m_operationActions;