From 1b6545fc05ea2d5dbe945a104889dd03279a6ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Garc=C3=ADa=20Li=C3=B1=C3=A1n?= Date: Sat, 14 Mar 2020 20:33:45 +0100 Subject: [PATCH] Compositor: No longer append 'Compositor/' to Effects when the Compositor is enabled. Do not remove transparent bins in shadow passes. --- simgear/scene/material/makeEffect.cxx | 12 +----------- simgear/scene/viewer/CompositorPass.cxx | 23 ----------------------- 2 files changed, 1 insertion(+), 34 deletions(-) diff --git a/simgear/scene/material/makeEffect.cxx b/simgear/scene/material/makeEffect.cxx index 7877378e..cfbb87af 100644 --- a/simgear/scene/material/makeEffect.cxx +++ b/simgear/scene/material/makeEffect.cxx @@ -33,7 +33,6 @@ #include #include #include -#include #include #include #include @@ -127,16 +126,7 @@ Effect* makeEffect(const string& name, itr->second.valid()) return itr->second.get(); } - string effectFileName; - // Use getPropertyRoot() because the SGReaderWriterOptions might not have a - // valid property tree - if (getPropertyRoot()->getBoolValue("/sim/version/compositor-support", false) && - name.substr(0, name.find("/")) == "Effects") { - // Temporarily append the Compositor/ directory to every effect that should - // be inside Effects/. - effectFileName += "Compositor/"; - } - effectFileName += name; + string effectFileName(name); effectFileName += ".eff"; string absFileName = SGModelLib::findDataFile(effectFileName, options); diff --git a/simgear/scene/viewer/CompositorPass.cxx b/simgear/scene/viewer/CompositorPass.cxx index 0b0b6ac3..aa727305 100644 --- a/simgear/scene/viewer/CompositorPass.cxx +++ b/simgear/scene/viewer/CompositorPass.cxx @@ -36,24 +36,6 @@ #include "Compositor.hxx" #include "CompositorUtil.hxx" -namespace { -osgUtil::RenderBin::RenderBinList -removeTransparentBins(simgear::EffectCullVisitor *cv) -{ - osgUtil::RenderBin::RenderBinList transparent_bins; - osgUtil::RenderStage *stage = cv->getRenderStage(); - osgUtil::RenderBin::RenderBinList &rbl = stage->getRenderBinList(); - for (auto rbi = rbl.begin(); rbi != rbl.end(); ) { - if (rbi->second->getSortMode() == osgUtil::RenderBin::SORT_BACK_TO_FRONT) { - transparent_bins.insert(std::make_pair(rbi->first, rbi->second)); - rbl.erase(rbi++); - } else { - ++rbi; - } - } - return transparent_bins; -} -} // anonymous namespace namespace simgear { namespace compositor { @@ -407,8 +389,6 @@ public: traverse(node, nv); - removeTransparentBins(cv); - // The light matrix uniform is updated after the traverse in case the // OSG near/far plane calculations were enabled osg::Matrixf light_matrix = @@ -736,9 +716,6 @@ public: SG_LOG(SG_INPUT, SG_WARN, "ScenePassBuilder::build: Pass '" << shadow_pass_name << "is not a shadow pass"); } - } else { - SG_LOG(SG_INPUT, SG_WARN, "ScenePassBuilder::build: Could not " - "find shadow pass named '" << shadow_pass_name << "'"); } } }