Compositor: No longer append 'Compositor/' to Effects when the Compositor is
enabled. Do not remove transparent bins in shadow passes.
This commit is contained in:
parent
40725a76ab
commit
1b6545fc05
@ -33,7 +33,6 @@
|
||||
#include <simgear/debug/logstream.hxx>
|
||||
#include <simgear/scene/util/SGReaderWriterOptions.hxx>
|
||||
#include <simgear/props/props_io.hxx>
|
||||
#include <simgear/scene/tgdb/userdata.hxx>
|
||||
#include <simgear/scene/util/SGSceneFeatures.hxx>
|
||||
#include <simgear/scene/util/SplicingVisitor.hxx>
|
||||
#include <simgear/structure/SGExpression.hxx>
|
||||
@ -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);
|
||||
|
@ -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 << "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user