1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 06:53:53 +00:00

Merge branch 'reflection-uniform' into 'master'

Added a uniform to indicate whether rendering is occurring in a reflection

See merge request OpenMW/openmw!2340
This commit is contained in:
psi29a 2022-09-10 14:19:20 +00:00
commit 525b904a44
2 changed files with 6 additions and 2 deletions

View file

@ -173,6 +173,7 @@ namespace MWRender
stateset->addUniform(new osg::Uniform("far", 0.f)); stateset->addUniform(new osg::Uniform("far", 0.f));
stateset->addUniform(new osg::Uniform("skyBlendingStart", 0.f)); stateset->addUniform(new osg::Uniform("skyBlendingStart", 0.f));
stateset->addUniform(new osg::Uniform("screenRes", osg::Vec2f{})); stateset->addUniform(new osg::Uniform("screenRes", osg::Vec2f{}));
stateset->addUniform(new osg::Uniform("isReflection", false));
if (mUsePlayerUniforms) if (mUsePlayerUniforms)
{ {
stateset->addUniform(new osg::Uniform("windSpeed", 0.0f)); stateset->addUniform(new osg::Uniform("windSpeed", 0.0f));

View file

@ -351,6 +351,9 @@ public:
camera->setName("ReflectionCamera"); camera->setName("ReflectionCamera");
camera->addCullCallback(new InheritViewPointCallback); camera->addCullCallback(new InheritViewPointCallback);
// Inform the shader that we're in a reflection
camera->getOrCreateStateSet()->addUniform(new osg::Uniform("isReflection", true));
// XXX: should really flip the FrontFace on each renderable instead of forcing clockwise. // XXX: should really flip the FrontFace on each renderable instead of forcing clockwise.
osg::ref_ptr<osg::FrontFace> frontFace(new osg::FrontFace); osg::ref_ptr<osg::FrontFace> frontFace(new osg::FrontFace);
frontFace->setMode(osg::FrontFace::CLOCKWISE); frontFace->setMode(osg::FrontFace::CLOCKWISE);