From 0f2c41b0095d96e26226b34ba8182020281e79d7 Mon Sep 17 00:00:00 2001 From: Olivier Prat Date: Wed, 9 Aug 2017 18:27:39 +0200 Subject: [PATCH] Added outline intensity --- libraries/render-utils/src/Outline.slf | 1 + libraries/render-utils/src/OutlineEffect.cpp | 6 ++++-- libraries/render-utils/src/OutlineEffect.h | 5 ++++- libraries/render-utils/src/Outline_shared.slh | 1 + scripts/developer/utilities/render/outline.qml | 9 +++++++++ 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/libraries/render-utils/src/Outline.slf b/libraries/render-utils/src/Outline.slf index d55938e9d7..1aec1efd5a 100644 --- a/libraries/render-utils/src/Outline.slf +++ b/libraries/render-utils/src/Outline.slf @@ -66,5 +66,6 @@ void main(void) { if (outlineIntensity < 1e-3) { discard; } + outlineIntensity = min(1.0, outlineIntensity * params._intensity); outFragColor = vec4(params._color.rgb, outlineIntensity); } diff --git a/libraries/render-utils/src/OutlineEffect.cpp b/libraries/render-utils/src/OutlineEffect.cpp index b63f30f51c..c91f10001d 100644 --- a/libraries/render-utils/src/OutlineEffect.cpp +++ b/libraries/render-utils/src/OutlineEffect.cpp @@ -130,7 +130,8 @@ DrawOutline::DrawOutline() { void DrawOutline::configure(const Config& config) { _color = config.color; - _size = config.width; + _size = config.width / 1024.f; + _intensity = config.intensity * 10.f; } void DrawOutline::run(const render::RenderContextPointer& renderContext, const Inputs& inputs) { @@ -147,7 +148,8 @@ void DrawOutline::run(const render::RenderContextPointer& renderContext, const I { auto& configuration = _configuration.edit(); configuration._color = _color; - configuration._size = _size / 1024.f; + configuration._size = _size; + configuration._intensity = _intensity; } gpu::doInBatch(args->_context, [&](gpu::Batch& batch) { diff --git a/libraries/render-utils/src/OutlineEffect.h b/libraries/render-utils/src/OutlineEffect.h index 3e58d78acc..fc8a715a53 100644 --- a/libraries/render-utils/src/OutlineEffect.h +++ b/libraries/render-utils/src/OutlineEffect.h @@ -76,6 +76,7 @@ private: class DrawOutlineConfig : public render::Job::Config { Q_OBJECT Q_PROPERTY(float width MEMBER width NOTIFY dirty) + Q_PROPERTY(float intensity MEMBER intensity NOTIFY dirty) Q_PROPERTY(float colorR READ getColorR WRITE setColorR NOTIFY dirty) Q_PROPERTY(float colorG READ getColorG WRITE setColorG NOTIFY dirty) Q_PROPERTY(float colorB READ getColorB WRITE setColorB NOTIFY dirty) @@ -90,8 +91,9 @@ public: void setColorB(float value) { color.b = value; emit dirty(); } float getColorB() const { return color.b; } - float width{ 5.f }; glm::vec3 color{ 1.f, 0.7f, 0.2f }; + float width{ 5.f }; + float intensity{ 1.f }; signals: void dirty(); @@ -125,6 +127,7 @@ private: OutlineConfigurationBuffer _configuration; glm::vec3 _color; float _size; + float _intensity; }; class DebugOutlineConfig : public render::Job::Config { diff --git a/libraries/render-utils/src/Outline_shared.slh b/libraries/render-utils/src/Outline_shared.slh index fd1d9aac49..602e15f8e7 100644 --- a/libraries/render-utils/src/Outline_shared.slh +++ b/libraries/render-utils/src/Outline_shared.slh @@ -9,6 +9,7 @@ struct OutlineParameters { VEC3 _color; float _size; + float _intensity; }; // <@if 1@> diff --git a/scripts/developer/utilities/render/outline.qml b/scripts/developer/utilities/render/outline.qml index 4ba7dad157..7ed3b6a2bb 100644 --- a/scripts/developer/utilities/render/outline.qml +++ b/scripts/developer/utilities/render/outline.qml @@ -44,6 +44,15 @@ Item { min: 0.0 width: 230 } + ConfigSlider { + label: "Intensity" + integral: false + config: root.drawConfig + property: "intensity" + max: 1.0 + min: 0.0 + width: 230 + } ConfigSlider { label: "Color R" integral: false