diff options
author | Janne Kangas <janne.kangas@qt.io> | 2020-01-13 13:19:08 +0200 |
---|---|---|
committer | Janne Kangas <janne.kangas@qt.io> | 2020-01-15 07:44:01 +0200 |
commit | c9439aa3b34085563e0e50657d71a01c13b50d7b (patch) | |
tree | 87b735b0e0890140335c728e01c07e49106c549e | |
parent | 49fba62dfff3166e44a4b85f99180c27f2bba69e (diff) |
Add toggle for disabling ambient occlusion
Task-id: QT3DS-4032
Change-Id: I27c6c7ad2a66fac0b654002933fc3216ecf8879c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | res/DataModelMetadata/en-us/MetaData.xml | 5 | ||||
-rw-r--r-- | src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp | 1 | ||||
-rw-r--r-- | src/dm/systems/Qt3DSDMComposerTypeDefinitions.h | 1 | ||||
-rw-r--r-- | src/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp | 1 | ||||
-rw-r--r-- | src/runtime/Qt3DSAttributeHashes.cpp | 1 | ||||
-rw-r--r-- | src/runtime/Qt3DSAttributeHashes.h | 1 | ||||
-rw-r--r-- | src/runtime/Qt3DSAttributeHashes.txt | 1 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderUIPLoader.cpp | 1 | ||||
-rw-r--r-- | src/runtimerender/Qt3DSRenderUIPSharedTranslation.h | 1 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderLayer.cpp | 1 | ||||
-rw-r--r-- | src/runtimerender/graphobjects/Qt3DSRenderLayer.h | 1 | ||||
-rw-r--r-- | src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp | 3 |
12 files changed, 16 insertions, 2 deletions
diff --git a/res/DataModelMetadata/en-us/MetaData.xml b/res/DataModelMetadata/en-us/MetaData.xml index a4d6d45..6cb3893 100644 --- a/res/DataModelMetadata/en-us/MetaData.xml +++ b/res/DataModelMetadata/en-us/MetaData.xml @@ -308,7 +308,10 @@ </Property> <!-- Ambient Occlusion --> - <Property name="aostrength" formalName="Ambient Occlusion" description="Amount of ambient occlusion shading\nto apply" min="0" max="100" default="0" category="Ambient Occlusion" > + <Property name="aoenabled" formalName="Ambient Occlusion" description="Use ambient occlusion" type="Boolean" default="False" category="Ambient Occlusion"> + <ShowIfEqual property="sourcepath" value=""/> + </Property> + <Property name="aostrength" formalName="AO Strength" description="Amount of ambient occlusion shading\nto apply" min="0" max="100" default="0" category="Ambient Occlusion" > <ShowIfEqual property="sourcepath" value=""/> </Property> <Property name="aodistance" formalName="AO Distance" description="Size of the ambient occlusion shading" default="5" category="Ambient Occlusion"> diff --git a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp index c529515..a4f6959 100644 --- a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp +++ b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.cpp @@ -258,6 +258,7 @@ struct DataConstructor<SObjectRefType> #define QT3DS_WCHAR_T_heightunits L"heightunits" #define QT3DS_WCHAR_T_bottom L"bottom" #define QT3DS_WCHAR_T_bottomunits L"bottomunits" +#define QT3DS_WCHAR_T_aoenabled L"aoenabled" #define QT3DS_WCHAR_T_aostrength L"aostrength" #define QT3DS_WCHAR_T_aodistance L"aodistance" #define QT3DS_WCHAR_T_aosoftness L"aosoftness" diff --git a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h index 0e0ada5..d347e6d 100644 --- a/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h +++ b/src/dm/systems/Qt3DSDMComposerTypeDefinitions.h @@ -220,6 +220,7 @@ class IPropertySystem; HANDLE_COMPOSER_PROPERTY(heightunits, m_HeightUnits, TDataStrPtr, L"percent") \ HANDLE_COMPOSER_PROPERTY(bottom, m_Bottom, float, 0) \ HANDLE_COMPOSER_PROPERTY(bottomunits, m_BottomUnits, TDataStrPtr, L"percent") \ + HANDLE_COMPOSER_PROPERTY(aoenabled, m_AoEnabled, bool, false) \ HANDLE_COMPOSER_PROPERTY(aostrength, m_AoStrength, float, 0) \ HANDLE_COMPOSER_PROPERTY(aodistance, m_AoDistance, float, 0) \ HANDLE_COMPOSER_PROPERTY(aosoftness, m_AoSoftness, float, 0) \ diff --git a/src/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp b/src/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp index 998fedb..f4b0f31 100644 --- a/src/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp +++ b/src/engine/Qt3DSRenderRuntimeBindingImplTranslation.cpp @@ -519,6 +519,7 @@ struct SRuntimePropertyParser #define Layer_HeightUnits ATTRIBUTE_HEIGHTUNITS #define Layer_Bottom ATTRIBUTE_BOTTOM #define Layer_BottomUnits ATTRIBUTE_BOTTOMUNITS +#define Layer_AoEnabled ATTRIBUTE_AOENABLED #define Layer_AoStrength ATTRIBUTE_AOSTRENGTH #define Layer_AoDistance ATTRIBUTE_AODISTANCE #define Layer_AoSoftness ATTRIBUTE_AOSOFTNESS diff --git a/src/runtime/Qt3DSAttributeHashes.cpp b/src/runtime/Qt3DSAttributeHashes.cpp index da74931..db92917 100644 --- a/src/runtime/Qt3DSAttributeHashes.cpp +++ b/src/runtime/Qt3DSAttributeHashes.cpp @@ -198,6 +198,7 @@ const char *GetAttributeString(const EAttribute inAttribute) case ATTRIBUTE_HEIGHTUNITS: return "heightunits"; case ATTRIBUTE_BOTTOM: return "bottom"; case ATTRIBUTE_BOTTOMUNITS: return "bottomunits"; + case ATTRIBUTE_AOENABLED: return "aoenabled"; case ATTRIBUTE_AOSTRENGTH: return "aostrength"; case ATTRIBUTE_AODISTANCE: return "aodistance"; case ATTRIBUTE_AOSOFTNESS: return "aosoftness"; diff --git a/src/runtime/Qt3DSAttributeHashes.h b/src/runtime/Qt3DSAttributeHashes.h index f8f7bec..d491ef0 100644 --- a/src/runtime/Qt3DSAttributeHashes.h +++ b/src/runtime/Qt3DSAttributeHashes.h @@ -189,6 +189,7 @@ enum EAttribute { ATTRIBUTE_HEIGHTUNITS = 0x00C91D18, // heightunits ATTRIBUTE_BOTTOM = 0x00F4EE75, // bottom ATTRIBUTE_BOTTOMUNITS = 0x0174091C, // bottomunits + ATTRIBUTE_AOENABLED = 0x00C4166D, // aoenabled ATTRIBUTE_AOSTRENGTH = 0x010F7ED1, // aostrength ATTRIBUTE_AODISTANCE = 0x01DC349D, // aodistance ATTRIBUTE_AOSOFTNESS = 0x02CCDC71, // aosoftness diff --git a/src/runtime/Qt3DSAttributeHashes.txt b/src/runtime/Qt3DSAttributeHashes.txt index 21b9646..b62d54c 100644 --- a/src/runtime/Qt3DSAttributeHashes.txt +++ b/src/runtime/Qt3DSAttributeHashes.txt @@ -155,6 +155,7 @@ height heightunits bottom bottomunits +aoenabled aostrength aodistance aosoftness diff --git a/src/runtimerender/Qt3DSRenderUIPLoader.cpp b/src/runtimerender/Qt3DSRenderUIPLoader.cpp index 9433b50..0187546 100644 --- a/src/runtimerender/Qt3DSRenderUIPLoader.cpp +++ b/src/runtimerender/Qt3DSRenderUIPLoader.cpp @@ -741,6 +741,7 @@ struct SRenderUIPLoader : public IDOMReferenceResolver #define Layer_HeightUnits "heightunits" #define Layer_Bottom "bottom" #define Layer_BottomUnits "bottomunits" +#define Layer_AoEnabled "aoenabled" #define Layer_AoStrength "aostrength" #define Layer_AoDistance "aodistance" #define Layer_AoSoftness "aosoftness" diff --git a/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h b/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h index 01740e6..3c51ff0 100644 --- a/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h +++ b/src/runtimerender/Qt3DSRenderUIPSharedTranslation.h @@ -334,6 +334,7 @@ namespace render { HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, HeightUnits, Dirty) \ HANDLE_QT3DS_RENDER_PROPERTY(Layer, Bottom, Dirty) \ HANDLE_QT3DS_RENDER_ENUM_PROPERTY(Layer, BottomUnits, Dirty) \ + HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoEnabled, Dirty) \ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoStrength, Dirty) \ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoDistance, Dirty) \ HANDLE_QT3DS_RENDER_PROPERTY(Layer, AoSoftness, Dirty) \ diff --git a/src/runtimerender/graphobjects/Qt3DSRenderLayer.cpp b/src/runtimerender/graphobjects/Qt3DSRenderLayer.cpp index 36a826c..be79fba 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderLayer.cpp +++ b/src/runtimerender/graphobjects/Qt3DSRenderLayer.cpp @@ -57,6 +57,7 @@ SLayer::SLayer() , m_HeightUnits(LayerUnitTypes::Percent) , m_Bottom(0) , m_BottomUnits(LayerUnitTypes::Percent) + , m_AoEnabled(false) , m_AoStrength(0) , m_AoDistance(5.0f) , m_AoSoftness(50.0f) diff --git a/src/runtimerender/graphobjects/Qt3DSRenderLayer.h b/src/runtimerender/graphobjects/Qt3DSRenderLayer.h index 5c08e91..ac9f559 100644 --- a/src/runtimerender/graphobjects/Qt3DSRenderLayer.h +++ b/src/runtimerender/graphobjects/Qt3DSRenderLayer.h @@ -146,6 +146,7 @@ namespace render { LayerUnitTypes::Enum m_BottomUnits; // Ambient occlusion + bool m_AoEnabled; QT3DSF32 m_AoStrength; QT3DSF32 m_AoDistance; QT3DSF32 m_AoSoftness; diff --git a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp index b6cd2a0..1f191b0 100644 --- a/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp +++ b/src/runtimerender/rendererimpl/Qt3DSRendererImplLayerRenderPreparationData.cpp @@ -1250,7 +1250,8 @@ namespace render { SLayerRenderPreparationResult thePrepResult; bool hasOffscreenRenderer = GetOffscreenRenderer(); - bool SSAOEnabled = (m_Layer.m_AoStrength > 0.0f && m_Layer.m_AoDistance > 0.0f); + bool SSAOEnabled = (m_Layer.m_AoStrength > 0.0f && m_Layer.m_AoDistance > 0.0f + && m_Layer.m_AoEnabled); bool SSDOEnabled = (m_Layer.m_ShadowStrength > 0.0f && m_Layer.m_ShadowDist > 0.0f); SetShaderFeature("QT3DS_ENABLE_SSAO", SSAOEnabled); SetShaderFeature("QT3DS_ENABLE_SSDO", SSDOEnabled); |