mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-26 14:56:39 +00:00 
			
		
		
		
	Added a uniform to indicate whether rendering is occurring in a reflection
This commit is contained in:
		
							parent
							
								
									bf0865d03d
								
							
						
					
					
						commit
						df7d2e46c0
					
				
					 2 changed files with 6 additions and 2 deletions
				
			
		|  | @ -173,6 +173,7 @@ namespace MWRender | |||
|             stateset->addUniform(new osg::Uniform("far", 0.f)); | ||||
|             stateset->addUniform(new osg::Uniform("skyBlendingStart", 0.f)); | ||||
|             stateset->addUniform(new osg::Uniform("screenRes", osg::Vec2f{})); | ||||
|             stateset->addUniform(new osg::Uniform("isReflection", false)); | ||||
|             if (mUsePlayerUniforms) | ||||
|             { | ||||
|                 stateset->addUniform(new osg::Uniform("windSpeed", 0.0f)); | ||||
|  |  | |||
|  | @ -351,6 +351,9 @@ public: | |||
|         camera->setName("ReflectionCamera"); | ||||
|         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.
 | ||||
|         osg::ref_ptr<osg::FrontFace> frontFace(new osg::FrontFace); | ||||
|         frontFace->setMode(osg::FrontFace::CLOCKWISE); | ||||
|  | @ -474,7 +477,7 @@ Water::Water(osg::Group *parent, osg::Group* sceneRoot, Resource::ResourceSystem | |||
|     geom2->setNodeMask(Mask_SimpleWater); | ||||
|     geom2->setName("Simple Water Geometry"); | ||||
|     mWaterNode->addChild(geom2); | ||||
|   | ||||
| 
 | ||||
|     mSceneRoot->addChild(mWaterNode); | ||||
| 
 | ||||
|     setHeight(mTop); | ||||
|  | @ -701,7 +704,7 @@ void Water::createShaderWaterStateSet(osg::Node* node, Reflection* reflection, R | |||
|     normalMap->setMaxAnisotropy(16); | ||||
|     normalMap->setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR_MIPMAP_LINEAR); | ||||
|     normalMap->setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); | ||||
|      | ||||
| 
 | ||||
| 
 | ||||
|     mRainIntensityUpdater = new RainIntensityUpdater(); | ||||
|     node->setUpdateCallback(mRainIntensityUpdater); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue