Adding tone mapping option to Material Editor
This commit is contained in:
@@ -508,6 +508,17 @@ namespace MaterialEditor
|
||||
return m_fieldOfView;
|
||||
}
|
||||
|
||||
void MaterialViewportComponent::SetDisplayMapperOperationType(AZ::Render::DisplayMapperOperationType operationType)
|
||||
{
|
||||
m_displayMapperOperationType = operationType;
|
||||
MaterialViewportNotificationBus::Broadcast(&MaterialViewportNotificationBus::Events::OnDisplayMapperOperationTypeChanged, operationType);
|
||||
}
|
||||
|
||||
AZ::Render::DisplayMapperOperationType MaterialViewportComponent::GetDisplayMapperOperationType() const
|
||||
{
|
||||
return m_displayMapperOperationType;
|
||||
}
|
||||
|
||||
void MaterialViewportComponent::OnCatalogLoaded([[maybe_unused]] const char* catalogFile)
|
||||
{
|
||||
AZ::TickBus::QueueFunction([this]() {
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <ACES/Aces.h>
|
||||
|
||||
#include <AzCore/Component/Component.h>
|
||||
#include <AzFramework/Asset/AssetCatalogBus.h>
|
||||
|
||||
@@ -85,6 +87,8 @@ namespace MaterialEditor
|
||||
bool GetAlternateSkyboxEnabled() const override;
|
||||
void SetFieldOfView(float fieldOfView) override;
|
||||
float GetFieldOfView() const override;
|
||||
void SetDisplayMapperOperationType(AZ::Render::DisplayMapperOperationType operationType) override;
|
||||
AZ::Render::DisplayMapperOperationType GetDisplayMapperOperationType() const override;
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@@ -111,5 +115,6 @@ namespace MaterialEditor
|
||||
bool m_gridEnabled = true;
|
||||
bool m_alternateSkyboxEnabled = false;
|
||||
float m_fieldOfView = 90.0f;
|
||||
AZ::Render::DisplayMapperOperationType m_displayMapperOperationType = AZ::Render::DisplayMapperOperationType::Aces;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <Atom/Feature/PostProcessing/PostProcessingConstants.h>
|
||||
#include <Atom/Feature/PostProcess/PostProcessFeatureProcessorInterface.h>
|
||||
#include <Atom/Feature/ImageBasedLights/ImageBasedLightFeatureProcessorInterface.h>
|
||||
#include <Atom/Feature/ACES/AcesDisplayMapperFeatureProcessor.h>
|
||||
#include <Atom/Component/DebugCamera/NoClipControllerComponent.h>
|
||||
|
||||
#include <Atom/Document/MaterialDocumentRequestBus.h>
|
||||
@@ -145,9 +146,11 @@ namespace MaterialEditor
|
||||
m_postProcessEntity->Activate();
|
||||
|
||||
// Init directional light processor
|
||||
|
||||
m_directionalLightFeatureProcessor = m_scene->GetFeatureProcessor<AZ::Render::DirectionalLightFeatureProcessorInterface>();
|
||||
|
||||
// Init display mapper processor
|
||||
m_displayMapperFeatureProcessor = m_scene->GetFeatureProcessor<Render::DisplayMapperFeatureProcessorInterface>();
|
||||
|
||||
// Init Skybox
|
||||
|
||||
m_skyboxFeatureProcessor = m_scene->GetFeatureProcessor<AZ::Render::SkyBoxFeatureProcessorInterface>();
|
||||
@@ -414,6 +417,13 @@ namespace MaterialEditor
|
||||
MaterialEditorViewportInputControllerRequestBus::Broadcast(&MaterialEditorViewportInputControllerRequestBus::Handler::SetFieldOfView, fieldOfView);
|
||||
}
|
||||
|
||||
void MaterialViewportRenderer::OnDisplayMapperOperationTypeChanged(AZ::Render::DisplayMapperOperationType operationType)
|
||||
{
|
||||
AZ::Render::DisplayMapperConfigurationDescriptor desc;
|
||||
desc.m_operationType = operationType;
|
||||
m_displayMapperFeatureProcessor->RegisterDisplayMapperConfiguration(desc);
|
||||
}
|
||||
|
||||
void MaterialViewportRenderer::OnAssetReady(AZ::Data::Asset<AZ::Data::AssetData> asset)
|
||||
{
|
||||
if (m_modelAssetId == asset.GetId())
|
||||
|
||||
@@ -27,6 +27,11 @@
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
namespace Render
|
||||
{
|
||||
class DisplayMapperFeatureProcessorInterface;
|
||||
}
|
||||
|
||||
class Entity;
|
||||
class Component;
|
||||
|
||||
@@ -71,6 +76,7 @@ namespace MaterialEditor
|
||||
void OnGridEnabledChanged(bool enable) override;
|
||||
void OnAlternateSkyboxEnabledChanged(bool enable) override;
|
||||
void OnFieldOfViewChanged(float fieldOfView) override;
|
||||
void OnDisplayMapperOperationTypeChanged(AZ::Render::DisplayMapperOperationType operationType) override;
|
||||
|
||||
// AZ::Data::AssetBus::Handler interface overrides...
|
||||
void OnAssetReady(AZ::Data::Asset<AZ::Data::AssetData> asset) override;
|
||||
@@ -92,6 +98,7 @@ namespace MaterialEditor
|
||||
AZ::RPI::RenderPipelinePtr m_renderPipeline;
|
||||
AZ::RPI::ScenePtr m_scene;
|
||||
AZ::Render::DirectionalLightFeatureProcessorInterface* m_directionalLightFeatureProcessor = nullptr;
|
||||
AZ::Render::DisplayMapperFeatureProcessorInterface* m_displayMapperFeatureProcessor = nullptr;
|
||||
|
||||
AZ::Entity* m_cameraEntity = nullptr;
|
||||
AZ::Component* m_cameraComponent = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user