// author: Barnabas Aszodi (BME-IIT) #include "Ogre.h" #include "OgreEffectWrapper.h" #include "ManagedOgreRenderTexturePass.h" #include "VRMFilteringMapPass.h" VRMFilteringMapPass::VRMFilteringMapPass( Root* mRoot,const String& renderTextureName,unsigned int width,unsigned int height, TextureType texType, PixelFormat internalFormat, const NameValuePairList *miscParams, bool fullScreenQuadRenderer):ManagedOgreRenderTexturePass(mRoot,renderTextureName,width,height,texType,internalFormat,miscParams,fullScreenQuadRenderer) { effectWrapper->createMaterial("RenderGeometryTexture"); numberOfSamples = 8; } void VRMFilteringMapPass::onRenderStart(NameValuePairList* namedParams){ effectWrapper->SetTechniqueToUse(0); effectWrapper->BeginPass(); effectWrapper->SetVertexProgramParameters(); effectWrapper->SetMatrix("g_mLightViewTexBias",g_mLightViewTexBias); effectWrapper->SetMatrix("g_mWorldViewProj",g_mWorldViewProj); effectWrapper->SetFloatArray("g_vLightPos3f",g_vLightPos3f,3); } void VRMFilteringMapPass::onRenderEnd(NameValuePairList* namedParams) { effectWrapper->EndPass(); } Matrix4 VRMFilteringMapPass::getLightViewTexBias() { return g_mLightViewTexBias; } void VRMFilteringMapPass::setLightViewTexBias( Matrix4 matrix4 ) { g_mLightViewTexBias = matrix4; } Matrix4 VRMFilteringMapPass::getWorldViewProj() { return g_mWorldViewProj; } void VRMFilteringMapPass::setWorldViewProj( Matrix4 matrix4 ) { g_mWorldViewProj = matrix4; } float* VRMFilteringMapPass::getLightPos3f() { return g_vLightPos3f; } void VRMFilteringMapPass::setLightPos3f( float* vector3 ) { g_vLightPos3f = vector3; } int VRMFilteringMapPass::getnumberOfSamples() { return numberOfSamples; } void VRMFilteringMapPass::setLightPos3f( int nos ) { numberOfSamples = nos; }