From 15dbe323412e23556bd4bd894cfb51b77ca24747 Mon Sep 17 00:00:00 2001 From: Emma Broman Date: Mon, 7 Aug 2023 09:46:24 +0200 Subject: [PATCH] Make it possible to fade in/out RenderableFieldLinesSequences (e.g. magnetosphere) --- .../rendering/renderablefieldlinessequence.cpp | 4 ++++ modules/fieldlinessequence/shaders/fieldlinessequence_fs.glsl | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/fieldlinessequence/rendering/renderablefieldlinessequence.cpp b/modules/fieldlinessequence/rendering/renderablefieldlinessequence.cpp index 37405e993b..92b10d7c1c 100644 --- a/modules/fieldlinessequence/rendering/renderablefieldlinessequence.cpp +++ b/modules/fieldlinessequence/rendering/renderablefieldlinessequence.cpp @@ -354,6 +354,8 @@ RenderableFieldlinesSequence::RenderableFieldlinesSequence( { const Parameters p = codegen::bake(dictionary); + addProperty(Fadeable::_opacity); + // Extracts the general information (from the asset file) that // is mandatory for the class to function; std::string fileTypeString; @@ -1031,6 +1033,8 @@ void RenderableFieldlinesSequence::render(const RenderData& data, RendererTasks& global::windowDelegate->applicationTime() * (_flowReversed ? -1 : 1) ); + _shaderProgram->setUniform("opacity", opacity()); + bool additiveBlending = false; if (_colorABlendEnabled) { additiveBlending = true; diff --git a/modules/fieldlinessequence/shaders/fieldlinessequence_fs.glsl b/modules/fieldlinessequence/shaders/fieldlinessequence_fs.glsl index f5eecf5ef0..946397875f 100644 --- a/modules/fieldlinessequence/shaders/fieldlinessequence_fs.glsl +++ b/modules/fieldlinessequence/shaders/fieldlinessequence_fs.glsl @@ -28,7 +28,7 @@ in vec4 vs_color; in float vs_depth; uniform bool usingAdditiveBlending; - +uniform float opacity; Fragment getFragment() { if (vs_color.a == 0) { @@ -40,6 +40,7 @@ Fragment getFragment() { Fragment frag; frag.depth = vs_depth; frag.color = fragColor; + frag.color.a *= opacity; // G-Buffer frag.gPosition = vec4(0.0);//vs_gPosition;