From 7d5a887f436d60c970cc3e6db3590d20afaa539b Mon Sep 17 00:00:00 2001 From: Nissim Hadar Date: Mon, 9 Oct 2017 17:25:19 -0700 Subject: [PATCH] Refactoring. --- interface/src/Application.cpp | 2 +- .../src/RenderableZoneEntityItem.cpp | 4 +- .../entities/src/EntityItemProperties.cpp | 2 +- libraries/entities/src/EntityPropertyFlags.h | 15 ++++--- libraries/entities/src/HazePropertyGroup.cpp | 17 +++++++ libraries/entities/src/HazePropertyGroup.h | 1 + libraries/entities/src/ZoneEntityItem.cpp | 44 ++++++++++++------- libraries/entities/src/ZoneEntityItem.h | 25 ++++++----- libraries/model/src/model/Haze.cpp | 28 +++++++----- libraries/model/src/model/Haze.h | 8 ++-- libraries/model/src/model/Stage.h | 3 ++ libraries/render-utils/src/DrawHaze.cpp | 5 +++ libraries/render-utils/src/DrawHaze.h | 5 +++ libraries/render-utils/src/Haze.slf | 10 ++++- libraries/render-utils/src/Haze.slh | 5 +-- libraries/render-utils/src/HazeStage.cpp | 1 + libraries/render-utils/src/HazeStage.h | 3 ++ .../render-utils/src/RenderDeferredTask.cpp | 1 - .../src/SceneScriptingInterface.cpp | 6 +++ .../src/SceneScriptingInterface.h | 12 ++++- scripts/system/html/entityProperties.html | 4 ++ scripts/system/html/js/entityProperties.js | 8 +++- 22 files changed, 146 insertions(+), 63 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 1c602c7363..0fc8c46cdc 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -433,7 +433,7 @@ public: // Don't actually crash in debug builds, in case this apparent deadlock is simply from // the developer actively debugging code #ifdef NDEBUG - ////deadlockDetectionCrash(); + deadlockDetectionCrash(); #endif } } diff --git a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp index d0fc17e3f6..3efe991baa 100644 --- a/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableZoneEntityItem.cpp @@ -346,6 +346,7 @@ void ZoneEntityRenderer::updateHazeFromEntity(const TypedEntityPointer& entity) haze->setHazeColor(glm::vec3(hazeBlendInColor.red / 255.0, hazeBlendInColor.green / 255.0, hazeBlendInColor.blue / 255.0)); xColor hazeBlendOutColor = _hazeProperties.getHazeBlendOutColor(); haze->setDirectionalLightColor(glm::vec3(hazeBlendOutColor.red / 255.0, hazeBlendOutColor.green / 255.0, hazeBlendOutColor.blue / 255.0)); + haze->setHazeEnableLightBlend(_hazeProperties.getHazeEnableLightBlend()); haze->setDirectionalLightBlend(model::convertDirectionalLightAngleToPower(_hazeProperties.getHazeLightBlendAngle())); haze->setHazeAltitudeFactor(model::convertHazeAltitudeToHazeAltitudeFactor(_hazeProperties.getHazeAltitude())); @@ -357,8 +358,7 @@ void ZoneEntityRenderer::updateHazeFromEntity(const TypedEntityPointer& entity) haze->setHazeKeyLightRangeFactor(model::convertHazeRangeToHazeRangeFactor(_hazeProperties.getHazeKeyLightRange())); haze->setHazeKeyLightAltitudeFactor(model::convertHazeAltitudeToHazeAltitudeFactor(_hazeProperties.getHazeKeyLightAltitude())); - haze->setZoneOrientation(_lastRotation); - haze->setZonePosition(_lastPosition); + haze->setZoneTransform(entity->getTransform().getMatrix()); } void ZoneEntityRenderer::updateKeyBackgroundFromEntity(const TypedEntityPointer& entity) { diff --git a/libraries/entities/src/EntityItemProperties.cpp b/libraries/entities/src/EntityItemProperties.cpp index fa11c61f56..3f87cb374b 100644 --- a/libraries/entities/src/EntityItemProperties.cpp +++ b/libraries/entities/src/EntityItemProperties.cpp @@ -1159,9 +1159,9 @@ void EntityItemProperties::entityPropertyFlagsFromScriptValue(const QScriptValue ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BLEND_IN_COLOR, Haze, haze, HazeBlendInColor, hazeBlendInColor); ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BLEND_OUT_COLOR, Haze, haze, HazeBlendOutColor, hazeBlendOutColor); + ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ENABLE_LIGHT_BLEND, Haze, haze, HazeEnableLightBlend, hazeEnableLightBlend); ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_LIGHT_BLEND_ANGLE, Haze, haze, HazeLightBlendAngle, hazeLightBlendAngle); - ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ATTENUATE_KEYLIGHT, Haze, haze, HazeAttenuateKeyLight, hazeAttenuateKeyLight); ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_ALTITUDE, Haze, haze, HazeAltitude, hazeAltitude); ADD_GROUP_PROPERTY_TO_MAP(PROP_HAZE_BASE_REF, Haze, haze, HazeBaseRef, hazeBaseRef); diff --git a/libraries/entities/src/EntityPropertyFlags.h b/libraries/entities/src/EntityPropertyFlags.h index ecc760e71f..6eded2148f 100644 --- a/libraries/entities/src/EntityPropertyFlags.h +++ b/libraries/entities/src/EntityPropertyFlags.h @@ -237,16 +237,17 @@ enum EntityPropertyList { PROP_HAZE_RANGE = PROP_INTENSITY, PROP_HAZE_BLEND_IN_COLOR = PROP_CUTOFF, PROP_HAZE_BLEND_OUT_COLOR = PROP_EXPONENT, - PROP_HAZE_LIGHT_BLEND_ANGLE = PROP_IS_SPOTLIGHT, + PROP_HAZE_ENABLE_LIGHT_BLEND = PROP_IS_SPOTLIGHT, + PROP_HAZE_LIGHT_BLEND_ANGLE = PROP_DIFFUSE_COLOR, - PROP_HAZE_ALTITUDE = PROP_DIFFUSE_COLOR, - PROP_HAZE_BASE_REF = PROP_AMBIENT_COLOR_UNUSED, + PROP_HAZE_ALTITUDE = PROP_AMBIENT_COLOR_UNUSED, + PROP_HAZE_BASE_REF = PROP_SPECULAR_COLOR_UNUSED, - PROP_HAZE_BACKGROUND_BLEND = PROP_SPECULAR_COLOR_UNUSED, + PROP_HAZE_BACKGROUND_BLEND = PROP_LINEAR_ATTENUATION_UNUSED, - PROP_HAZE_ATTENUATE_KEYLIGHT = PROP_LINEAR_ATTENUATION_UNUSED, - PROP_HAZE_KEYLIGHT_RANGE = PROP_QUADRATIC_ATTENUATION_UNUSED, - PROP_HAZE_KEYLIGHT_ALTITUDE = PROP_ANIMATION_FRAME_INDEX, + PROP_HAZE_ATTENUATE_KEYLIGHT = PROP_QUADRATIC_ATTENUATION_UNUSED, + PROP_HAZE_KEYLIGHT_RANGE = PROP_ANIMATION_FRAME_INDEX, + PROP_HAZE_KEYLIGHT_ALTITUDE = PROP_MODEL_URL, PROP_SKYBOX_COLOR = PROP_ANIMATION_URL, PROP_SKYBOX_URL = PROP_ANIMATION_FPS, diff --git a/libraries/entities/src/HazePropertyGroup.cpp b/libraries/entities/src/HazePropertyGroup.cpp index d6bc15805d..dae2e3c281 100644 --- a/libraries/entities/src/HazePropertyGroup.cpp +++ b/libraries/entities/src/HazePropertyGroup.cpp @@ -32,6 +32,7 @@ void HazePropertyGroup::copyToScriptValue(const EntityPropertyFlags& desiredProp COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_RANGE, Haze, haze, HazeRange, hazeRange); COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_BLEND_IN_COLOR, Haze, haze, HazeBlendInColor, hazeBlendInColor); COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_BLEND_OUT_COLOR, Haze, haze, HazeBlendOutColor, hazeBlendOutColor); + COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_ENABLE_LIGHT_BLEND, Haze, haze, HazeEnableLightBlend, hazeEnableLightBlend); COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_LIGHT_BLEND_ANGLE, Haze, haze, HazeLightBlendAngle, hazeLightBlendAngle); COPY_GROUP_PROPERTY_TO_QSCRIPTVALUE(PROP_HAZE_ALTITUDE, Haze, haze, HazeAltitude, hazeAltitude); @@ -48,6 +49,7 @@ void HazePropertyGroup::copyFromScriptValue(const QScriptValue& object, bool& _d COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeRange, float, setHazeRange); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeBlendInColor, xColor, setHazeBlendInColor); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeBlendOutColor, xColor, setHazeBlendOutColor); + COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeEnableLightBlend, bool, setHazeEnableLightBlend); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeLightBlendAngle, float, setHazeLightBlendAngle); COPY_GROUP_PROPERTY_FROM_QSCRIPTVALUE(haze, hazeAltitude, float, setHazeAltitude); @@ -64,6 +66,7 @@ void HazePropertyGroup::merge(const HazePropertyGroup& other) { COPY_PROPERTY_IF_CHANGED(hazeRange); COPY_PROPERTY_IF_CHANGED(hazeBlendInColor); COPY_PROPERTY_IF_CHANGED(hazeBlendOutColor); + COPY_PROPERTY_IF_CHANGED(hazeEnableLightBlend); COPY_PROPERTY_IF_CHANGED(hazeLightBlendAngle); COPY_PROPERTY_IF_CHANGED(hazeAltitude); @@ -82,6 +85,7 @@ void HazePropertyGroup::debugDump() const { qCDebug(entities) << " _hazeRange:" << _hazeRange; qCDebug(entities) << " _hazeBlendInColor:" << _hazeBlendInColor; qCDebug(entities) << " _hazeBlendOutColor:" << _hazeBlendOutColor; + qCDebug(entities) << " _hazeEnableLightBlend:" << _hazeEnableLightBlend; qCDebug(entities) << " _hazeLightBlendAngle:" << _hazeLightBlendAngle; qCDebug(entities) << " _hazeAltitude:" << _hazeAltitude; @@ -104,6 +108,9 @@ void HazePropertyGroup::listChangedProperties(QList& out) { if (hazeBlendOutColorChanged()) { out << "haze-hazeBlendOutColor"; } + if (hazeEnableLightBlendChanged()) { + out << "haze-hazeEnableLightBlend"; + } if (hazeLightBlendAngleChanged()) { out << "haze-hazeLightBlendAngle"; } @@ -142,6 +149,7 @@ bool HazePropertyGroup::appendToEditPacket(OctreePacketData* packetData, APPEND_ENTITY_PROPERTY(PROP_HAZE_RANGE, getHazeRange()); APPEND_ENTITY_PROPERTY(PROP_HAZE_BLEND_IN_COLOR, getHazeBlendInColor()); APPEND_ENTITY_PROPERTY(PROP_HAZE_BLEND_OUT_COLOR, getHazeBlendOutColor()); + APPEND_ENTITY_PROPERTY(PROP_HAZE_ENABLE_LIGHT_BLEND, getHazeEnableLightBlend()); APPEND_ENTITY_PROPERTY(PROP_HAZE_LIGHT_BLEND_ANGLE, getHazeLightBlendAngle()); APPEND_ENTITY_PROPERTY(PROP_HAZE_ALTITUDE, getHazeAltitude()); @@ -165,6 +173,7 @@ bool HazePropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyFlags, READ_ENTITY_PROPERTY(PROP_HAZE_RANGE, float, setHazeRange); READ_ENTITY_PROPERTY(PROP_HAZE_BLEND_IN_COLOR, xColor, setHazeBlendInColor); READ_ENTITY_PROPERTY(PROP_HAZE_BLEND_OUT_COLOR, xColor, setHazeBlendOutColor); + READ_ENTITY_PROPERTY(PROP_HAZE_ENABLE_LIGHT_BLEND, bool, setHazeEnableLightBlend); READ_ENTITY_PROPERTY(PROP_HAZE_LIGHT_BLEND_ANGLE, float, setHazeLightBlendAngle); READ_ENTITY_PROPERTY(PROP_HAZE_ALTITUDE, float, setHazeAltitude); @@ -179,6 +188,7 @@ bool HazePropertyGroup::decodeFromEditPacket(EntityPropertyFlags& propertyFlags, DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_RANGE, HazeRange); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_BLEND_IN_COLOR, HazeBlendInColor); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_BLEND_OUT_COLOR, HazeBlendOutColor); + DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_ENABLE_LIGHT_BLEND, HazeEnableLightBlend); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_LIGHT_BLEND_ANGLE, HazeLightBlendAngle); DECODE_GROUP_PROPERTY_HAS_CHANGED(PROP_HAZE_ALTITUDE, HazeAltitude); @@ -201,6 +211,7 @@ void HazePropertyGroup::markAllChanged() { _hazeRangeChanged = true; _hazeBlendInColorChanged = true; _hazeBlendOutColorChanged = true; + _hazeEnableLightBlendChanged = true; _hazeLightBlendAngleChanged = true; _hazeAltitudeChanged = true; @@ -219,6 +230,7 @@ EntityPropertyFlags HazePropertyGroup::getChangedProperties() const { CHECK_PROPERTY_CHANGE(PROP_HAZE_RANGE, hazeRange); CHECK_PROPERTY_CHANGE(PROP_HAZE_BLEND_IN_COLOR, hazeBlendInColor); CHECK_PROPERTY_CHANGE(PROP_HAZE_BLEND_OUT_COLOR, hazeBlendOutColor); + CHECK_PROPERTY_CHANGE(PROP_HAZE_ENABLE_LIGHT_BLEND, hazeEnableLightBlend); CHECK_PROPERTY_CHANGE(PROP_HAZE_LIGHT_BLEND_ANGLE, hazeLightBlendAngle); CHECK_PROPERTY_CHANGE(PROP_HAZE_ALTITUDE, hazeAltitude); @@ -237,6 +249,7 @@ void HazePropertyGroup::getProperties(EntityItemProperties& properties) const { COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeRange, getHazeRange); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeBlendInColor, getHazeBlendInColor); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeBlendOutColor, getHazeBlendOutColor); + COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeEnableLightBlend, getHazeEnableLightBlend); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeLightBlendAngle, getHazeLightBlendAngle); COPY_ENTITY_GROUP_PROPERTY_TO_PROPERTIES(Haze, HazeAltitude, getHazeAltitude); @@ -255,6 +268,7 @@ bool HazePropertyGroup::setProperties(const EntityItemProperties& properties) { SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeRange, hazeRange, setHazeRange); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeBlendInColor, hazeBlendInColor, setHazeBlendInColor); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeBlendOutColor, hazeBlendOutColor, setHazeBlendOutColor); + SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeEnableLightBlend, hazeEnableLightBlend, setHazeEnableLightBlend); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeLightBlendAngle, hazeLightBlendAngle, setHazeLightBlendAngle); SET_ENTITY_GROUP_PROPERTY_FROM_PROPERTIES(Haze, HazeAltitude, hazeAltitude, setHazeAltitude); @@ -275,6 +289,7 @@ EntityPropertyFlags HazePropertyGroup::getEntityProperties(EncodeBitstreamParams requestedProperties += PROP_HAZE_RANGE; requestedProperties += PROP_HAZE_BLEND_IN_COLOR; requestedProperties += PROP_HAZE_BLEND_OUT_COLOR; + requestedProperties += PROP_HAZE_ENABLE_LIGHT_BLEND; requestedProperties += PROP_HAZE_LIGHT_BLEND_ANGLE; requestedProperties += PROP_HAZE_ALTITUDE; @@ -302,6 +317,7 @@ void HazePropertyGroup::appendSubclassData(OctreePacketData* packetData, EncodeB APPEND_ENTITY_PROPERTY(PROP_HAZE_RANGE, getHazeRange()); APPEND_ENTITY_PROPERTY(PROP_HAZE_BLEND_IN_COLOR, getHazeBlendInColor()); APPEND_ENTITY_PROPERTY(PROP_HAZE_BLEND_OUT_COLOR, getHazeBlendOutColor()); + APPEND_ENTITY_PROPERTY(PROP_HAZE_ENABLE_LIGHT_BLEND, getHazeEnableLightBlend()); APPEND_ENTITY_PROPERTY(PROP_HAZE_LIGHT_BLEND_ANGLE, getHazeLightBlendAngle()); APPEND_ENTITY_PROPERTY(PROP_HAZE_ALTITUDE, getHazeAltitude()); @@ -325,6 +341,7 @@ int HazePropertyGroup::readEntitySubclassDataFromBuffer(const unsigned char* dat READ_ENTITY_PROPERTY(PROP_HAZE_RANGE, float, setHazeRange); READ_ENTITY_PROPERTY(PROP_HAZE_BLEND_IN_COLOR, xColor, setHazeBlendInColor); READ_ENTITY_PROPERTY(PROP_HAZE_BLEND_OUT_COLOR, xColor, setHazeBlendOutColor); + READ_ENTITY_PROPERTY(PROP_HAZE_ENABLE_LIGHT_BLEND, bool, setHazeEnableLightBlend); READ_ENTITY_PROPERTY(PROP_HAZE_LIGHT_BLEND_ANGLE, float, setHazeLightBlendAngle); READ_ENTITY_PROPERTY(PROP_HAZE_ALTITUDE, float, setHazeAltitude); diff --git a/libraries/entities/src/HazePropertyGroup.h b/libraries/entities/src/HazePropertyGroup.h index cad1647d24..334f82982d 100644 --- a/libraries/entities/src/HazePropertyGroup.h +++ b/libraries/entities/src/HazePropertyGroup.h @@ -91,6 +91,7 @@ public: DEFINE_PROPERTY(PROP_HAZE_RANGE, HazeRange, hazeRange, float, DEFAULT_HAZE_RANGE); DEFINE_PROPERTY_REF(PROP_HAZE_BLEND_IN_COLOR, HazeBlendInColor, hazeBlendInColor, xColor, DEFAULT_HAZE_BLEND_IN_COLOR); DEFINE_PROPERTY_REF(PROP_HAZE_BLEND_OUT_COLOR, HazeBlendOutColor, hazeBlendOutColor, xColor, DEFAULT_HAZE_BLEND_OUT_COLOR); + DEFINE_PROPERTY(PROP_HAZE_ENABLE_LIGHT_BLEND, HazeEnableLightBlend, hazeEnableLightBlend, bool, false); DEFINE_PROPERTY_REF(PROP_HAZE_LIGHT_BLEND_ANGLE, HazeLightBlendAngle, hazeLightBlendAngle, float, DEFAULT_HAZE_LIGHT_BLEND_ANGLE); // Range & Altitude parameters diff --git a/libraries/entities/src/ZoneEntityItem.cpp b/libraries/entities/src/ZoneEntityItem.cpp index 4a14d6c9be..5cd75bf399 100644 --- a/libraries/entities/src/ZoneEntityItem.cpp +++ b/libraries/entities/src/ZoneEntityItem.cpp @@ -338,83 +338,93 @@ float ZoneEntityItem::getHazeRange() const { return _hazeRange; } -void ZoneEntityItem::setHazeBlendInColor(const xColor hazeBlendInColor){ +void ZoneEntityItem::setHazeBlendInColor(const xColor hazeBlendInColor) { _hazeBlendInColor = hazeBlendInColor; _hazePropertiesChanged = true; } -xColor ZoneEntityItem::getHazeBlendInColor()const{ +xColor ZoneEntityItem::getHazeBlendInColor() const { return _hazeBlendInColor; } -void ZoneEntityItem::setHazeBlendOutColor(const xColor hazeBlendOutColor){ +void ZoneEntityItem::setHazeBlendOutColor(const xColor hazeBlendOutColor) { _hazeBlendOutColor = hazeBlendOutColor; _hazePropertiesChanged = true; } -xColor ZoneEntityItem::getHazeBlendOutColor()const{ +xColor ZoneEntityItem::getHazeBlendOutColor()const { return _hazeBlendOutColor; } -void ZoneEntityItem::setHazeLightBlendAngle(const float hazeLightBlendAngle){ +void ZoneEntityItem::setHazeEnableLightBlend(const bool hazeEnableLightBlend) { + _hazeEnableLightBlend = hazeEnableLightBlend; + _hazePropertiesChanged = true; +} + +bool ZoneEntityItem::getHazeEnableLightBlend()const { + return _hazeEnableLightBlend; +} + +void ZoneEntityItem::setHazeLightBlendAngle(const float hazeLightBlendAngle) { _hazeLightBlendAngle = hazeLightBlendAngle; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeLightBlendAngle()const{ +float ZoneEntityItem::getHazeLightBlendAngle() const { return _hazeLightBlendAngle; } -void ZoneEntityItem::setHazeAltitude(const float hazeAltitude){ +void ZoneEntityItem::setHazeAltitude(const float hazeAltitude) { _hazeAltitude = hazeAltitude; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeAltitude()const{ +float ZoneEntityItem::getHazeAltitude() const { return _hazeAltitude; } -void ZoneEntityItem::setHazeBaseRef(const float hazeBaseRef){ +void ZoneEntityItem::setHazeBaseRef(const float hazeBaseRef) { _hazeBaseRef = hazeBaseRef; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeBaseRef()const{ +float ZoneEntityItem::getHazeBaseRef() const { return _hazeBaseRef; } -void ZoneEntityItem::setHazeBackgroundBlend(const float hazeBackgroundBlend){ +void ZoneEntityItem::setHazeBackgroundBlend(const float hazeBackgroundBlend) { _hazeBackgroundBlend = hazeBackgroundBlend; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeBackgroundBlend()const{ +float ZoneEntityItem::getHazeBackgroundBlend() const { return _hazeBackgroundBlend; } void ZoneEntityItem::setHazeAttenuateKeyLight(const bool hazeAttenuateKeyLight) { _hazeAttenuateKeyLight = hazeAttenuateKeyLight; + _hazePropertiesChanged = true; } -bool ZoneEntityItem::getHazeAttenuateKeyLight()const { +bool ZoneEntityItem::getHazeAttenuateKeyLight() const { return _hazeAttenuateKeyLight; } -void ZoneEntityItem::setHazeKeyLightRange(const float hazeKeyLightRange){ +void ZoneEntityItem::setHazeKeyLightRange(const float hazeKeyLightRange) { _hazeKeyLightRange = hazeKeyLightRange; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeKeyLightRange()const { +float ZoneEntityItem::getHazeKeyLightRange() const { return _hazeKeyLightRange; } -void ZoneEntityItem::setHazeKeyLightAltitude(const float hazeKeyLightAltitude){ +void ZoneEntityItem::setHazeKeyLightAltitude(const float hazeKeyLightAltitude) { _hazeKeyLightAltitude = hazeKeyLightAltitude; _hazePropertiesChanged = true; } -float ZoneEntityItem::getHazeKeyLightAltitude()const{ +float ZoneEntityItem::getHazeKeyLightAltitude() const { return _hazeKeyLightAltitude; } diff --git a/libraries/entities/src/ZoneEntityItem.h b/libraries/entities/src/ZoneEntityItem.h index 352f98f5a2..d73eadebb5 100644 --- a/libraries/entities/src/ZoneEntityItem.h +++ b/libraries/entities/src/ZoneEntityItem.h @@ -74,28 +74,30 @@ public: uint32_t getHazeMode() const; void setHazeRange(const float hazeRange); - float getHazeRange()const; + float getHazeRange() const; void setHazeBlendInColor(const xColor hazeBlendInColor); - xColor getHazeBlendInColor()const; + xColor getHazeBlendInColor() const; void setHazeBlendOutColor(const xColor hazeBlendOutColor); - xColor getHazeBlendOutColor()const; + xColor getHazeBlendOutColor() const; + void setHazeEnableLightBlend(const bool hazeEnableLightBlend); + bool getHazeEnableLightBlend() const; void setHazeLightBlendAngle(const float hazeLightBlendAngle); - float getHazeLightBlendAngle()const; + float getHazeLightBlendAngle() const; void setHazeAltitude(const float hazeAltitude); - float getHazeAltitude()const; + float getHazeAltitude() const; void setHazeBaseRef(const float hazeBaseRef); - float getHazeBaseRef()const; + float getHazeBaseRef() const; void setHazeBackgroundBlend(const float hazeBackgroundBlend); - float getHazeBackgroundBlend()const; + float getHazeBackgroundBlend() const; void setHazeAttenuateKeyLight(const bool hazeAttenuateKeyLight); - bool getHazeAttenuateKeyLight()const; + bool getHazeAttenuateKeyLight() const; void setHazeKeyLightRange(const float hazeKeyLightRange); - float getHazeKeyLightRange()const; + float getHazeKeyLightRange() const; void setHazeKeyLightAltitude(const float hazeKeyLightAltitude); - float getHazeKeyLightAltitude()const; + float getHazeKeyLightAltitude() const; SkyboxPropertyGroup getSkyboxProperties() const { return resultWithReadLock([&] { return _skyboxProperties; }); } @@ -149,6 +151,7 @@ protected: float _hazeRange{ HazePropertyGroup::DEFAULT_HAZE_RANGE }; xColor _hazeBlendInColor{ HazePropertyGroup::DEFAULT_HAZE_BLEND_IN_COLOR }; xColor _hazeBlendOutColor{ HazePropertyGroup::DEFAULT_HAZE_BLEND_OUT_COLOR }; + bool _hazeEnableLightBlend{ false }; float _hazeLightBlendAngle{ HazePropertyGroup::DEFAULT_HAZE_LIGHT_BLEND_ANGLE }; float _hazeAltitude{ HazePropertyGroup::DEFAULT_HAZE_ALTITUDE }; @@ -156,7 +159,7 @@ protected: float _hazeBackgroundBlend{ HazePropertyGroup::DEFAULT_HAZE_BACKGROUND_BLEND }; - float _hazeAttenuateKeyLight{ false }; + bool _hazeAttenuateKeyLight{ false }; float _hazeKeyLightRange{ HazePropertyGroup::DEFAULT_HAZE_KEYLIGHT_RANGE }; float _hazeKeyLightAltitude{ HazePropertyGroup::DEFAULT_HAZE_KEYLIGHT_ALTITUDE }; diff --git a/libraries/model/src/model/Haze.cpp b/libraries/model/src/model/Haze.cpp index 9a3e59dfa7..3654fb3467 100644 --- a/libraries/model/src/model/Haze.cpp +++ b/libraries/model/src/model/Haze.cpp @@ -24,7 +24,8 @@ enum HazeModes { HAZE_MODE_IS_ACTIVE = 1 << 0, HAZE_MODE_IS_ALTITUDE_BASED = 1 << 1, HAZE_MODE_IS_DIRECTIONAL_LIGHT_ATTENUATED = 1 << 2, - HAZE_MODE_IS_MODULATE_COLOR = 1 << 3 + HAZE_MODE_IS_MODULATE_COLOR = 1 << 3, + HAZE_MODE_IS_ENABLE_LIGHT_BLEND = 1 << 4 }; // For color modulated mode, the colour values are used as range values, which are then converted to range factors @@ -57,6 +58,17 @@ void Haze::setHazeColor(const glm::vec3 hazeColor) { } } +void Haze::setHazeEnableLightBlend(const bool isHazeEnableLightBlend) { + auto& params = _hazeParametersBuffer.get(); + + if (((params.hazeMode & HAZE_MODE_IS_ENABLE_LIGHT_BLEND) == HAZE_MODE_IS_ENABLE_LIGHT_BLEND) && !isHazeEnableLightBlend) { + _hazeParametersBuffer.edit().hazeMode &= ~HAZE_MODE_IS_ENABLE_LIGHT_BLEND; + } + else if (((params.hazeMode & HAZE_MODE_IS_ENABLE_LIGHT_BLEND) != HAZE_MODE_IS_ENABLE_LIGHT_BLEND) && isHazeEnableLightBlend) { + _hazeParametersBuffer.edit().hazeMode |= HAZE_MODE_IS_ENABLE_LIGHT_BLEND; + } +} + void Haze::setDirectionalLightBlend(const float hazeDirectionalLightBlend) { auto& params = _hazeParametersBuffer.get(); @@ -170,19 +182,11 @@ void Haze::setHazeBackgroundBlendValue(const float hazeBackgroundBlendValue) { } } -void Haze::setZoneOrientation(const glm::quat& zoneOrientation) { +void Haze::setZoneTransform(const glm::mat4& zoneTransform) { auto& params = _hazeParametersBuffer.get(); - glm::vec3 zoneDirection = zoneOrientation * glm::vec3(0.0f, 0.0f, -1.0f); - if (params.zoneDirection == zoneDirection) { - _hazeParametersBuffer.edit().zoneDirection = zoneDirection; + if (params.zoneTransform == zoneTransform) { + _hazeParametersBuffer.edit().zoneTransform = zoneTransform; } } -void Haze::setZonePosition(const glm::vec3& zonePosition) { - auto& params = _hazeParametersBuffer.get(); - - if (params.zonePosition != zonePosition) { - _hazeParametersBuffer.edit().zonePosition = zonePosition; - } -} diff --git a/libraries/model/src/model/Haze.h b/libraries/model/src/model/Haze.h index 880b1c6f8c..7fe8de2735 100644 --- a/libraries/model/src/model/Haze.h +++ b/libraries/model/src/model/Haze.h @@ -75,6 +75,7 @@ namespace model { void setAltitudeBased(const bool isAltitudeBased); void setHazeAttenuateKeyLight(const bool isHazeAttenuateKeyLight); void setModulateColorActive(const bool isModulateColorActive); + void setHazeEnableLightBlend(const bool isHazeEnableLightBlend); void setHazeRangeFactor(const float hazeRange); void setHazeAltitudeFactor(const float hazeAltitude); @@ -84,8 +85,7 @@ namespace model { void setHazeBackgroundBlendValue(const float hazeBackgroundBlendValue); - void setZoneOrientation(const glm::quat& zoneOrientation); - void setZonePosition(const glm::vec3& zonePosition); + void setZoneTransform(const glm::mat4& zoneTransform); UniformBufferView getHazeParametersBuffer() const { return _hazeParametersBuffer; } @@ -103,12 +103,12 @@ namespace model { int hazeMode{ 0 }; // bit 0 - set to activate haze attenuation of fragment color // bit 1 - set to add the effect of altitude to the haze attenuation // bit 2 - set to activate directional light attenuation mode + // bit 3 - set to blend between blend-in and blend-out colours - glm::vec3 zoneDirection; + glm::mat4 zoneTransform; // Amount of background (skybox) to display, overriding the haze effect for the background float hazeBackgroundBlendValue{ initialHazeBackgroundBlendValue }; - glm::vec3 zonePosition; // The haze attenuation exponents used by both fragment and directional light attenuation float hazeRangeFactor{ convertHazeRangeToHazeRangeFactor(initialHazeRange_m) }; diff --git a/libraries/model/src/model/Stage.h b/libraries/model/src/model/Stage.h index 797c646e68..70012d9b23 100644 --- a/libraries/model/src/model/Stage.h +++ b/libraries/model/src/model/Stage.h @@ -192,6 +192,8 @@ public: xColor getHazeBlendInColor() { return _hazeBlendInColor; } void setHazeBlendOutColor(const xColor hazeBlendOutColor) { _hazeBlendOutColor = hazeBlendOutColor; } xColor getHazeBlendOutColor() const { return _hazeBlendOutColor; } + void setHazeEnableLightBlend(bool hazeEnableLightBlend) { _hazeEnableLightBlend = hazeEnableLightBlend; } + bool getHazeEnableLightBlend() const { return _hazeEnableLightBlend; } void setHazeLightBlendAngle(float hazeLightBlendAngle) { _hazeLightBlendAngle = hazeLightBlendAngle; } float getHazeLightBlendAngle() const { return _hazeLightBlendAngle; } @@ -218,6 +220,7 @@ protected: float _hazeRange; xColor _hazeBlendInColor; xColor _hazeBlendOutColor; + bool _hazeEnableLightBlend; float _hazeLightBlendAngle; float _hazeAltitude; diff --git a/libraries/render-utils/src/DrawHaze.cpp b/libraries/render-utils/src/DrawHaze.cpp index 9001acc4ed..320aa06c6d 100644 --- a/libraries/render-utils/src/DrawHaze.cpp +++ b/libraries/render-utils/src/DrawHaze.cpp @@ -69,6 +69,10 @@ void HazeConfig::setModulateColorActive(const bool active) { isModulateColorActive = active; } +void HazeConfig::setHazeEnableLightBlend(const bool active) { + isHazeEnableLightBlend = active; +} + void HazeConfig::setHazeRange_m(const float value) { hazeRange_m = value; } @@ -104,6 +108,7 @@ void MakeHaze::configure(const Config& config) { _haze->setAltitudeBased(config.isAltitudeBased); _haze->setHazeAttenuateKeyLight(config.isHazeAttenuateKeyLight); _haze->setModulateColorActive(config.isModulateColorActive); + _haze->setHazeEnableLightBlend(config.isHazeEnableLightBlend); _haze->setHazeRangeFactor(model::convertHazeRangeToHazeRangeFactor(config.hazeRange_m)); _haze->setHazeAltitudeFactor(model::convertHazeAltitudeToHazeAltitudeFactor(config.hazeAltitude_m)); diff --git a/libraries/render-utils/src/DrawHaze.h b/libraries/render-utils/src/DrawHaze.h index ad740dd522..919ccdb368 100644 --- a/libraries/render-utils/src/DrawHaze.h +++ b/libraries/render-utils/src/DrawHaze.h @@ -43,6 +43,7 @@ class MakeHazeConfig : public render::Job::Config { Q_PROPERTY(bool isAltitudeBased MEMBER isAltitudeBased WRITE setAltitudeBased NOTIFY dirty); Q_PROPERTY(bool isHazeAttenuateKeyLight MEMBER isHazeAttenuateKeyLight WRITE setHazeAttenuateKeyLight NOTIFY dirty); Q_PROPERTY(bool isModulateColorActive MEMBER isModulateColorActive WRITE setModulateColorActive NOTIFY dirty); + Q_PROPERTY(bool isHazeEnableLightBlend MEMBER isHazeEnableLightBlend WRITE setHazeEnableLightBlend NOTIFY dirty); Q_PROPERTY(float hazeRange_m MEMBER hazeRange_m WRITE setHazeRange_m NOTIFY dirty); Q_PROPERTY(float hazeAltitude_m MEMBER hazeAltitude_m WRITE setHazeAltitude_m NOTIFY dirty); @@ -69,6 +70,7 @@ public: bool isAltitudeBased{ false }; bool isHazeAttenuateKeyLight{ false }; bool isModulateColorActive{ false }; + bool isHazeEnableLightBlend{ false }; float hazeRange_m{ model::initialHazeRange_m }; float hazeAltitude_m{ model::initialHazeAltitude_m }; @@ -93,6 +95,7 @@ public slots: void setAltitudeBased(const bool active) { isAltitudeBased = active; emit dirty(); } void setHazeAttenuateKeyLight(const bool active) { isHazeAttenuateKeyLight = active; emit dirty(); } void setModulateColorActive(const bool active) { isModulateColorActive = active; emit dirty(); } + void setHazeEnableLightBlend(const bool active) { isHazeEnableLightBlend = active; emit dirty(); } void setHazeRange_m(const float value) { hazeRange_m = value; emit dirty(); } void setHazeAltitude_m(const float value) { hazeAltitude_m = value; emit dirty(); } @@ -139,6 +142,7 @@ public: bool isAltitudeBased{ false }; bool isHazeAttenuateKeyLight{ false }; bool isModulateColorActive{ false }; + bool isHazeEnableLightBlend{ false }; float hazeRange_m{ model::initialHazeRange_m }; float hazeAltitude_m{ model::initialHazeAltitude_m }; @@ -163,6 +167,7 @@ public: void setAltitudeBased(const bool active); void setHazeAttenuateKeyLight(const bool active); void setModulateColorActive(const bool active); + void setHazeEnableLightBlend(const bool active); void setHazeRange_m(const float value); void setHazeAltitude_m(const float value); diff --git a/libraries/render-utils/src/Haze.slf b/libraries/render-utils/src/Haze.slf index 58e15f9ae6..5d5d92f96d 100644 --- a/libraries/render-utils/src/Haze.slf +++ b/libraries/render-utils/src/Haze.slf @@ -65,8 +65,14 @@ void main(void) { vec4 directionalLightColor = vec4(hazeParams.directionalLightColor, 1.0); - vec4 blendedHazeColor = - mix(hazeColor, directionalLightColor, power); + // Use the haze colour for the belnd-out colour, if blend is not enabled + vec4 blendedHazeColor; + if ((hazeParams.hazeMode & HAZE_MODE_IS_ENABLE_LIGHT_BLEND) == HAZE_MODE_IS_ENABLE_LIGHT_BLEND) { + blendedHazeColor = mix(hazeColor, directionalLightColor, power); + } + else { + blendedHazeColor = hazeColor; + } vec4 potentialFragColor; diff --git a/libraries/render-utils/src/Haze.slh b/libraries/render-utils/src/Haze.slh index 42e561f2fe..614431dce7 100644 --- a/libraries/render-utils/src/Haze.slh +++ b/libraries/render-utils/src/Haze.slh @@ -14,6 +14,7 @@ const int HAZE_MODE_IS_ACTIVE = 1 << 0; const int HAZE_MODE_IS_ALTITUDE_BASED = 1 << 1; const int HAZE_MODE_IS_DIRECTIONAL_LIGHT_ATTENUATED = 1 << 2; const int HAZE_MODE_IS_MODULATE_COLOR = 1 << 3; +const int HAZE_MODE_IS_ENABLE_LIGHT_BLEND = 1 << 4; struct HazeParams { vec3 hazeColor; @@ -25,11 +26,9 @@ struct HazeParams { vec3 colorModulationFactor; int hazeMode; - vec3 zoneDirection; + mat4 zoneTransform; float backgroundBlendValue; - vec3 zonePosition; - float hazeRangeFactor; float hazeAltitudeFactor; diff --git a/libraries/render-utils/src/HazeStage.cpp b/libraries/render-utils/src/HazeStage.cpp index f2056b5fe5..c09fcaa488 100644 --- a/libraries/render-utils/src/HazeStage.cpp +++ b/libraries/render-utils/src/HazeStage.cpp @@ -30,6 +30,7 @@ void FetchHazeStage::configure(const Config& config) { _haze->setAltitudeBased(config.isAltitudeBased); _haze->setHazeAttenuateKeyLight(config.isHazeAttenuateKeyLight); _haze->setModulateColorActive(config.isModulateColorActive); + _haze->setHazeEnableLightBlend(config.isHazeEnableLightBlend); _haze->setHazeRangeFactor(model::convertHazeRangeToHazeRangeFactor(config.hazeRange_m)); _haze->setHazeAltitudeFactor(model::convertHazeAltitudeToHazeAltitudeFactor(config.hazeAltitude_m)); diff --git a/libraries/render-utils/src/HazeStage.h b/libraries/render-utils/src/HazeStage.h index e6ba8a52f1..349985ee3b 100644 --- a/libraries/render-utils/src/HazeStage.h +++ b/libraries/render-utils/src/HazeStage.h @@ -97,6 +97,7 @@ class FetchHazeConfig : public render::Job::Config { Q_PROPERTY(bool isAltitudeBased MEMBER isAltitudeBased WRITE setAltitudeBased NOTIFY dirty); Q_PROPERTY(bool isHazeAttenuateKeyLight MEMBER isHazeAttenuateKeyLight WRITE setHazeAttenuateKeyLight NOTIFY dirty); Q_PROPERTY(bool isModulateColorActive MEMBER isModulateColorActive WRITE setModulateColorActive NOTIFY dirty); + Q_PROPERTY(bool isHazeEnableLightBlend MEMBER isHazeEnableLightBlend WRITE setHazeEnableLightBlend NOTIFY dirty); Q_PROPERTY(float hazeRange_m MEMBER hazeRange_m WRITE setHazeRange_m NOTIFY dirty); Q_PROPERTY(float hazeAltitude_m MEMBER hazeAltitude_m WRITE setHazeAltitude_m NOTIFY dirty); @@ -123,6 +124,7 @@ public: bool isAltitudeBased{ false }; bool isHazeAttenuateKeyLight{ false }; bool isModulateColorActive{ false }; + bool isHazeEnableLightBlend{ false }; float hazeRange_m{ model::initialHazeRange_m }; float hazeAltitude_m{ model::initialHazeAltitude_m }; @@ -147,6 +149,7 @@ public slots: void setAltitudeBased(const bool active) { isAltitudeBased = active; emit dirty(); } void setHazeAttenuateKeyLight(const bool active) { isHazeAttenuateKeyLight = active; emit dirty(); } void setModulateColorActive(const bool active) { isModulateColorActive = active; emit dirty(); } + void setHazeEnableLightBlend(const bool active) { isHazeEnableLightBlend = active; emit dirty(); } void setHazeRange_m(const float value) { hazeRange_m = value; emit dirty(); } void setHazeAltitude_m(const float value) { hazeAltitude_m = value; emit dirty(); } diff --git a/libraries/render-utils/src/RenderDeferredTask.cpp b/libraries/render-utils/src/RenderDeferredTask.cpp index 41ded3a4f4..0901aec5c0 100644 --- a/libraries/render-utils/src/RenderDeferredTask.cpp +++ b/libraries/render-utils/src/RenderDeferredTask.cpp @@ -148,7 +148,6 @@ void RenderDeferredTask::build(JobModel& task, const render::Varying& input, ren const auto lightClusters = task.addJob("LightClustering", lightClusteringPassInputs); // Add haze model - ////const auto hazeModel = task.addJob("HazeModel"); const auto hazeModel = task.addJob("HazeModel"); // DeferredBuffer is complete, now let's shade it into the LightingBuffer diff --git a/libraries/script-engine/src/SceneScriptingInterface.cpp b/libraries/script-engine/src/SceneScriptingInterface.cpp index 1c2c38c53c..4a9a3b2ac5 100644 --- a/libraries/script-engine/src/SceneScriptingInterface.cpp +++ b/libraries/script-engine/src/SceneScriptingInterface.cpp @@ -167,6 +167,12 @@ void SceneScripting::Stage::setHazeBlendOutColor(const xColor hazeBlendOutColor) xColor SceneScripting::Stage::getHazeBlendOutColor() const { return _skyStage->getHazeBlendOutColor(); } +void SceneScripting::Stage::setHazeEnableLightBlend(const bool hazeEnableLightBlend) { + _skyStage->setHazeEnableLightBlend(hazeEnableLightBlend); +} +bool SceneScripting::Stage::getHazeEnableLightBlend() const { + return _skyStage->getHazeEnableLightBlend(); +} void SceneScripting::Stage::setHazeLightBlendAngle(const float hazeLightBlendAngle) { _skyStage->setHazeLightBlendAngle(hazeLightBlendAngle); } diff --git a/libraries/script-engine/src/SceneScriptingInterface.h b/libraries/script-engine/src/SceneScriptingInterface.h index 3be496fce5..2f02237d75 100644 --- a/libraries/script-engine/src/SceneScriptingInterface.h +++ b/libraries/script-engine/src/SceneScriptingInterface.h @@ -128,12 +128,19 @@ namespace SceneScripting { Q_PROPERTY(float hazeRange READ getHazeRange WRITE setHazeRange) void setHazeRange(float value); float getHazeRange() const; + Q_PROPERTY(xColor hazeBlendInColor READ getHazeBlendInColor WRITE setHazeBlendInColor) void setHazeBlendInColor(xColor value); xColor getHazeBlendInColor() const; + Q_PROPERTY(xColor hazeBlendOutColor READ getHazeBlendOutColor WRITE setHazeBlendOutColor) void setHazeBlendOutColor(xColor value); xColor getHazeBlendOutColor() const; + + Q_PROPERTY(bool hazeEnableLightBlend READ getHazeEnableLightBlend WRITE setHazeEnableLightBlend) + void setHazeEnableLightBlend(bool value); + bool getHazeEnableLightBlend() const; + Q_PROPERTY(float hazeLightBlendAngle READ getHazeLightBlendAngle WRITE setHazeLightBlendAngle) void setHazeLightBlendAngle(float value); float getHazeLightBlendAngle() const; @@ -141,6 +148,7 @@ namespace SceneScripting { Q_PROPERTY(float hazeAltitude READ getHazeAltitude WRITE setHazeAltitude) void setHazeAltitude(float value); float getHazeAltitude() const; + Q_PROPERTY(float hazeBaseRef READ getHazeBaseRef WRITE setHazeBaseRef) void setHazeBaseRef(float value); float getHazeBaseRef() const; @@ -149,12 +157,14 @@ namespace SceneScripting { void setHazeBackgroundBlend(float value); float getHazeBackgroundBlend() const; - Q_PROPERTY(float hazeAttenuateKeyLight READ getHazeAttenuateKeyLight WRITE setHazeAttenuateKeyLight) + Q_PROPERTY(bool hazeAttenuateKeyLight READ getHazeAttenuateKeyLight WRITE setHazeAttenuateKeyLight) void setHazeAttenuateKeyLight(bool value); bool getHazeAttenuateKeyLight() const; + Q_PROPERTY(float hazeKeyLightRange READ getHazeKeyLightRange WRITE setHazeKeyLightRange) void setHazeKeyLightRange(float value); float getHazeKeyLightRange() const; + Q_PROPERTY(float hazeKeyLightAltitude READ getHazeKeyLightAltitude WRITE setHazeKeyLightAltitude) void setHazeKeyLightAltitude(float value); float getHazeKeyLightAltitude() const; diff --git a/scripts/system/html/entityProperties.html b/scripts/system/html/entityProperties.html index f7970b969c..50e4ac01b9 100644 --- a/scripts/system/html/entityProperties.html +++ b/scripts/system/html/entityProperties.html @@ -591,6 +591,10 @@
+
+ + +
diff --git a/scripts/system/html/js/entityProperties.js b/scripts/system/html/js/entityProperties.js index ae13a10076..1c3410999b 100644 --- a/scripts/system/html/js/entityProperties.js +++ b/scripts/system/html/js/entityProperties.js @@ -668,11 +668,13 @@ function loaded() { var elZoneHazeBlendOutColorRed = document.getElementById("property-zone-haze-blend-out-color-red"); var elZoneHazeBlendOutColorGreen = document.getElementById("property-zone-haze-blend-out-color-green"); var elZoneHazeBlendOutColorBlue = document.getElementById("property-zone-haze-blend-out-color-blue"); - var elZoneHazeBackgroundBlend = document.getElementById("property-zone-haze-background-blend"); + var elZoneHazeEnableLightBlend = document.getElementById("property-zone-haze-enable-light-blend"); var elZoneHazeLightBlendAngle = document.getElementById("property-zone-haze-blend-angle"); var elZoneHazeAltitude = document.getElementById("property-zone-haze-altitude"); var elZoneHazeBaseRef = document.getElementById("property-zone-haze-altitude-base"); + + var elZoneHazeBackgroundBlend = document.getElementById("property-zone-haze-background-blend"); var elZoneHazeAttenuateKeyLight = document.getElementById("property-zone-haze-attenuate-keylight"); var elZoneHazeKeyLightRange = document.getElementById("property-zone-haze-keylight-range"); @@ -1037,6 +1039,8 @@ function loaded() { elZoneHazeBlendOutColorRed.value = properties.haze.hazeBlendOutColor.red; elZoneHazeBlendOutColorGreen.value = properties.haze.hazeBlendOutColor.green; elZoneHazeBlendOutColorBlue.value = properties.haze.hazeBlendOutColor.blue; + + elZoneHazeEnableLightBlend.checked = properties.haze.hazeEnableLightBlend; elZoneHazeLightBlendAngle.value = properties.haze.hazeLightBlendAngle.toFixed(0); elZoneHazeAltitude.value = properties.haze.hazeAltitude.toFixed(0); @@ -1495,6 +1499,8 @@ function loaded() { elZoneHazeBlendOutColorRed.addEventListener('change', zoneHazeBlendOutColorChangeFunction); elZoneHazeBlendOutColorGreen.addEventListener('change', zoneHazeBlendOutColorChangeFunction); elZoneHazeBlendOutColorBlue.addEventListener('change', zoneHazeBlendOutColorChangeFunction); + + elZoneHazeEnableLightBlend.addEventListener('change', createEmitGroupCheckedPropertyUpdateFunction('haze', 'hazeEnableLightBlend')); elZoneHazeLightBlendAngle.addEventListener('change', createEmitGroupNumberPropertyUpdateFunction('haze', 'hazeLightBlendAngle')); elZoneHazeAltitude.addEventListener('change', createEmitGroupNumberPropertyUpdateFunction('haze', 'hazeAltitude'));