Some refactoring
This commit is contained in:
+2
-2
@@ -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
|
||||||
|
|||||||
+9
-9
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-16
@@ -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))
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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)
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-15
@@ -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")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user