Some refactoring

main
mnaumov 5 years ago
parent db7afee383
commit 44601b7a38

@ -46,7 +46,7 @@ namespace AZ
static RPI::Ptr<AcesOutputTransformPass> Create(const RPI::PassDescriptor& descriptor); static RPI::Ptr<AcesOutputTransformPass> Create(const RPI::PassDescriptor& descriptor);
void SetDisplayBufferFormat(RHI::Format format); void SetDisplayBufferFormat(RHI::Format format);
void SetAcesParameterOverrides(const DisplayMapperAcesParameters& acesParameterOverrides); void SetAcesParameterOverrides(const AcesParameterOverrides& acesParameterOverrides);
private: private:
explicit AcesOutputTransformPass(const RPI::PassDescriptor& descriptor); explicit AcesOutputTransformPass(const RPI::PassDescriptor& descriptor);
@ -67,7 +67,7 @@ namespace AZ
RHI::Format m_displayBufferFormat = RHI::Format::Unknown; RHI::Format m_displayBufferFormat = RHI::Format::Unknown;
DisplayMapperAcesParameters m_acesParameterOverrides; AcesParameterOverrides m_acesParameterOverrides;
}; };
} // namespace Render } // namespace Render
} // namespace AZ } // namespace AZ

@ -25,13 +25,13 @@ namespace AZ
namespace Render namespace Render
{ {
/** /**
* The ACES display mapper parameters. * The ACES display mapper parameter overrides.
* These parameters are input to the display mapper shader on the DisplayMapperPass. * These parameters override default ACES parameters when m_overrideDefaults is true.
*/ */
struct DisplayMapperAcesParameters struct AcesParameterOverrides
{ {
AZ_RTTI(DisplayMapperAcesParameters, "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}"); AZ_RTTI(AcesParameterOverrides, "{3EE8C0D4-3792-46C0-B91C-B89A81C36B91}");
AZ_CLASS_ALLOCATOR(DisplayMapperAcesParameters, SystemAllocator, 0); AZ_CLASS_ALLOCATOR(AcesParameterOverrides, SystemAllocator, 0);
static void Reflect(ReflectContext* context); static void Reflect(ReflectContext* context);
@ -39,11 +39,11 @@ namespace AZ
bool m_overrideDefaults = false; bool m_overrideDefaults = false;
// Apply gamma adjustment to compensate for dim surround // Apply gamma adjustment to compensate for dim surround
bool m_alterSurround; bool m_alterSurround = true;
// Apply desaturation to compensate for luminance difference // Apply desaturation to compensate for luminance difference
bool m_applyDesaturation; bool m_applyDesaturation = true;
// Apply Color appearance transform (CAT) from ACES white point to assumed observer adapted white point // Apply Color appearance transform (CAT) from ACES white point to assumed observer adapted white point
bool m_applyCATD60toD65; bool m_applyCATD60toD65 = true;
// Reference white and black luminance values // Reference white and black luminance values
float m_cinemaLimitsBlack = 0.02f; float m_cinemaLimitsBlack = 0.02f;
@ -82,7 +82,7 @@ namespace AZ
bool m_ldrGradingLutEnabled = false; bool m_ldrGradingLutEnabled = false;
Data::Asset<RPI::AnyAsset> m_ldrColorGradingLut; Data::Asset<RPI::AnyAsset> m_ldrColorGradingLut;
DisplayMapperAcesParameters m_acesParameterOverrides; AcesParameterOverrides m_acesParameterOverrides;
}; };
//! Custom pass data for DisplayMapperPass. //! Custom pass data for DisplayMapperPass.

@ -129,7 +129,7 @@ namespace AZ
} }
} }
void AcesOutputTransformPass::SetAcesParameterOverrides(const DisplayMapperAcesParameters& acesParameterOverrides) void AcesOutputTransformPass::SetAcesParameterOverrides(const AcesParameterOverrides& acesParameterOverrides)
{ {
m_acesParameterOverrides = acesParameterOverrides; m_acesParameterOverrides = acesParameterOverrides;
} }

@ -19,28 +19,28 @@ namespace AZ
{ {
namespace Render namespace Render
{ {
void DisplayMapperAcesParameters::Reflect(ReflectContext* context) void AcesParameterOverrides::Reflect(ReflectContext* context)
{ {
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context)) if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{ {
serializeContext->Class<DisplayMapperAcesParameters>() serializeContext->Class<AcesParameterOverrides>()
->Version(0) ->Version(0)
->Field("OverrideDefaults", &DisplayMapperAcesParameters::m_overrideDefaults) ->Field("OverrideDefaults", &AcesParameterOverrides::m_overrideDefaults)
->Field("AlterSurround", &DisplayMapperAcesParameters::m_alterSurround) ->Field("AlterSurround", &AcesParameterOverrides::m_alterSurround)
->Field("ApplyDesaturation", &DisplayMapperAcesParameters::m_applyDesaturation) ->Field("ApplyDesaturation", &AcesParameterOverrides::m_applyDesaturation)
->Field("ApplyCATD60toD65", &DisplayMapperAcesParameters::m_applyCATD60toD65) ->Field("ApplyCATD60toD65", &AcesParameterOverrides::m_applyCATD60toD65)
->Field("PresetODT", &DisplayMapperAcesParameters::m_preset) ->Field("PresetODT", &AcesParameterOverrides::m_preset)
->Field("CinemaLimitsBlack", &DisplayMapperAcesParameters::m_cinemaLimitsBlack) ->Field("CinemaLimitsBlack", &AcesParameterOverrides::m_cinemaLimitsBlack)
->Field("CinemaLimitsWhite", &DisplayMapperAcesParameters::m_cinemaLimitsWhite) ->Field("CinemaLimitsWhite", &AcesParameterOverrides::m_cinemaLimitsWhite)
->Field("MinPoint", &DisplayMapperAcesParameters::m_minPoint) ->Field("MinPoint", &AcesParameterOverrides::m_minPoint)
->Field("MidPoint", &DisplayMapperAcesParameters::m_midPoint) ->Field("MidPoint", &AcesParameterOverrides::m_midPoint)
->Field("MaxPoint", &DisplayMapperAcesParameters::m_maxPoint) ->Field("MaxPoint", &AcesParameterOverrides::m_maxPoint)
->Field("SurroundGamma", &DisplayMapperAcesParameters::m_surroundGamma) ->Field("SurroundGamma", &AcesParameterOverrides::m_surroundGamma)
->Field("Gamma", &DisplayMapperAcesParameters::m_gamma); ->Field("Gamma", &AcesParameterOverrides::m_gamma);
} }
} }
void DisplayMapperAcesParameters::LoadPreset() void AcesParameterOverrides::LoadPreset()
{ {
DisplayMapperParameters displayMapperParameters; DisplayMapperParameters displayMapperParameters;
AcesDisplayMapperFeatureProcessor::GetAcesDisplayMapperParameters(&displayMapperParameters, m_preset); AcesDisplayMapperFeatureProcessor::GetAcesDisplayMapperParameters(&displayMapperParameters, m_preset);
@ -59,7 +59,7 @@ namespace AZ
void DisplayMapperConfigurationDescriptor::Reflect(AZ::ReflectContext* context) void DisplayMapperConfigurationDescriptor::Reflect(AZ::ReflectContext* context)
{ {
DisplayMapperAcesParameters::Reflect(context); AcesParameterOverrides::Reflect(context);
if (auto* serializeContext = azrtti_cast<AZ::SerializeContext*>(context)) if (auto* serializeContext = azrtti_cast<AZ::SerializeContext*>(context))
{ {

@ -32,7 +32,7 @@ namespace AZ
DisplayMapperOperationType m_displayMapperOperation = DisplayMapperOperationType::Aces; DisplayMapperOperationType m_displayMapperOperation = DisplayMapperOperationType::Aces;
bool m_ldrColorGradingLutEnabled = false; bool m_ldrColorGradingLutEnabled = false;
Data::Asset<RPI::AnyAsset> m_ldrColorGradingLut = {}; Data::Asset<RPI::AnyAsset> m_ldrColorGradingLut = {};
DisplayMapperAcesParameters m_acesParameterOverrides; AcesParameterOverrides m_acesParameterOverrides;
}; };
} }
} }

@ -27,7 +27,7 @@ namespace AZ
->Field("DisplayMapperOperationType", &DisplayMapperComponentConfig::m_displayMapperOperation) ->Field("DisplayMapperOperationType", &DisplayMapperComponentConfig::m_displayMapperOperation)
->Field("LdrColorGradingLutEnabled", &DisplayMapperComponentConfig::m_ldrColorGradingLutEnabled) ->Field("LdrColorGradingLutEnabled", &DisplayMapperComponentConfig::m_ldrColorGradingLutEnabled)
->Field("LdrColorGradingLut", &DisplayMapperComponentConfig::m_ldrColorGradingLut) ->Field("LdrColorGradingLut", &DisplayMapperComponentConfig::m_ldrColorGradingLut)
->Field("AcesParameters", &DisplayMapperComponentConfig::m_acesParameterOverrides) ->Field("AcesParameterOverrides", &DisplayMapperComponentConfig::m_acesParameterOverrides)
; ;
} }
} }

@ -49,58 +49,58 @@ namespace AZ
->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly) ->Attribute(AZ::Edit::Attributes::Visibility, AZ::Edit::PropertyVisibility::ShowChildrenOnly)
; ;
editContext->Class<DisplayMapperAcesParameters>( editContext->Class<AcesParameterOverrides>(
"DisplayMapperAcesParameters", "") "AcesParameterOverrides", "")
->ClassElement(AZ::Edit::ClassElements::EditorData, "") ->ClassElement(AZ::Edit::ClassElements::EditorData, "")
->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::CheckBox, &DisplayMapperAcesParameters::m_overrideDefaults, "Override Defaults", AZ::Edit::UIHandlers::CheckBox, &AcesParameterOverrides::m_overrideDefaults, "Override Defaults",
"When enabled allows parameter overrides for ACES configuration") "When enabled allows parameter overrides for ACES configuration")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::CheckBox, &DisplayMapperAcesParameters::m_alterSurround, "Alter Surround", AZ::Edit::UIHandlers::CheckBox, &AcesParameterOverrides::m_alterSurround, "Alter Surround",
"Apply gamma adjustment to compensate for dim surround") "Apply gamma adjustment to compensate for dim surround")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::CheckBox, &DisplayMapperAcesParameters::m_applyDesaturation, "Alter Desaturation", AZ::Edit::UIHandlers::CheckBox, &AcesParameterOverrides::m_applyDesaturation, "Alter Desaturation",
"Apply desaturation to compensate for luminance difference") "Apply desaturation to compensate for luminance difference")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::CheckBox, &DisplayMapperAcesParameters::m_applyCATD60toD65, "Alter CAT D60 to D65", AZ::Edit::UIHandlers::CheckBox, &AcesParameterOverrides::m_applyCATD60toD65, "Alter CAT D60 to D65",
"Apply Color appearance transform (CAT) from ACES white point to assumed observer adapted white point") "Apply Color appearance transform (CAT) from ACES white point to assumed observer adapted white point")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
Edit::UIHandlers::Default, &DisplayMapperAcesParameters::m_cinemaLimitsBlack, Edit::UIHandlers::Default, &AcesParameterOverrides::m_cinemaLimitsBlack,
"Cinema Limit (black)", "Cinema Limit (black)",
"Reference black luminance value") "Reference black luminance value")
->DataElement( ->DataElement(
Edit::UIHandlers::Default, &DisplayMapperAcesParameters::m_cinemaLimitsWhite, Edit::UIHandlers::Default, &AcesParameterOverrides::m_cinemaLimitsWhite,
"Cinema Limit (white)", "Cinema Limit (white)",
"Reference white luminance value") "Reference white luminance value")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
Edit::UIHandlers::Vector2, &DisplayMapperAcesParameters::m_minPoint, "Min Point (luminance)", Edit::UIHandlers::Vector2, &AcesParameterOverrides::m_minPoint, "Min Point (luminance)",
"Linear extension below this") "Linear extension below this")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
Edit::UIHandlers::Vector2, &DisplayMapperAcesParameters::m_midPoint, "Mid Point (luminance)", Edit::UIHandlers::Vector2, &AcesParameterOverrides::m_midPoint, "Mid Point (luminance)",
"Middle gray") "Middle gray")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
Edit::UIHandlers::Vector2, &DisplayMapperAcesParameters::m_maxPoint, "Max Point (luminance)", Edit::UIHandlers::Vector2, &AcesParameterOverrides::m_maxPoint, "Max Point (luminance)",
"Linear extension above this") "Linear extension above this")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::Default, &DisplayMapperAcesParameters::m_surroundGamma, "Surround Gamma", AZ::Edit::UIHandlers::Default, &AcesParameterOverrides::m_surroundGamma, "Surround Gamma",
"Gamma adjustment to be applied to compensate for the condition of the viewing environment") "Gamma adjustment to be applied to compensate for the condition of the viewing environment")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
->DataElement( ->DataElement(
AZ::Edit::UIHandlers::Default, &DisplayMapperAcesParameters::m_gamma, "Gamma", AZ::Edit::UIHandlers::Default, &AcesParameterOverrides::m_gamma, "Gamma",
"Optional gamma value that is applied as basic gamma curve OETF") "Optional gamma value that is applied as basic gamma curve OETF")
->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly) ->Attribute(Edit::Attributes::ChangeNotify, Edit::PropertyRefreshLevels::ValuesOnly)
@ -108,14 +108,14 @@ namespace AZ
->ClassElement(AZ::Edit::ClassElements::Group, "Load Preset") ->ClassElement(AZ::Edit::ClassElements::Group, "Load Preset")
->Attribute(AZ::Edit::Attributes::AutoExpand, true) ->Attribute(AZ::Edit::Attributes::AutoExpand, true)
->DataElement( ->DataElement(
Edit::UIHandlers::ComboBox, &DisplayMapperAcesParameters::m_preset, "Preset Selection", Edit::UIHandlers::ComboBox, &AcesParameterOverrides::m_preset, "Preset Selection",
"Allows specifying default preset for different ODT modes") "Allows specifying default preset for different ODT modes")
->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_48Nits, "48 Nits") ->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_48Nits, "48 Nits")
->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_1000Nits, "1000 Nits") ->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_1000Nits, "1000 Nits")
->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_2000Nits, "2000 Nits") ->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_2000Nits, "2000 Nits")
->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_4000Nits, "4000 Nits") ->EnumAttribute(OutputDeviceTransformType::OutputDeviceTransformType_4000Nits, "4000 Nits")
->UIElement(AZ::Edit::UIHandlers::Button, "Load", "Load default preset") ->UIElement(AZ::Edit::UIHandlers::Button, "Load", "Load default preset")
->Attribute(AZ::Edit::Attributes::ChangeNotify, &DisplayMapperAcesParameters::LoadPreset) ->Attribute(AZ::Edit::Attributes::ChangeNotify, &AcesParameterOverrides::LoadPreset)
->Attribute(AZ::Edit::Attributes::ButtonText, "Load") ->Attribute(AZ::Edit::Attributes::ButtonText, "Load")
; ;

Loading…
Cancel
Save