本文整理汇总了C++中CompositionTargetPass::setInputMode方法的典型用法代码示例。如果您正苦于以下问题:C++ CompositionTargetPass::setInputMode方法的具体用法?C++ CompositionTargetPass::setInputMode怎么用?C++ CompositionTargetPass::setInputMode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CompositionTargetPass
的用法示例。
在下文中一共展示了CompositionTargetPass::setInputMode方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CalculateKey
void HDRCompositor::CalculateKey(void)
{
CompositionTargetPass *tp;
CompositionPass *pass;
CreateTextureDef("Key",1,1,PF_FLOAT16_RGB);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Key");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
if(m_AutoKeying)
{
pass->setMaterialName("AutoKey");
pass->setInput(0,"Luminance");
}
else
{
pass->setIdentifier(MID_KEY);
pass->setMaterialName("ManualKey");
// GpuProgramParameters::RealConstantEntry* entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("Key");
// if(entry)
// entry->val[0] = m_Key;
}
}
示例2: _init
void _init(void)
{
CompositorPtr compositor = CompositorManager::getSingleton().create(
_theType(), ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
CompositionTechnique *t;
CompositionTechnique::TextureDefinition *td;
CompositionTargetPass *tp;
CompositionPass *pass;
t = compositor->createTechnique();
td = t->createTextureDefinition("scene");
td->width.viewport = 1;
td->height.viewport = 1;
td->format = PF_X8R8G8B8;
td = t->createTextureDefinition("heat");
td->width.viewport = 0.5;
td->height.viewport = 0.5;
td->format = PF_X8R8G8B8;
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);
tp->setOutputName("scene");
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("heat");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/HeatVision/LightToHeat");
pass->setInput(0, "scene");
pass->setIdentifier(0xDEADBADE);
tp = t->getOutputTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/HeatVision/Blur");
pass->setInput(0, "heat");
}
示例3: Create
void HDRCompositor::Create(void)
{
Release();
m_Compositor = CompositorManager::getSingleton().create("HDR", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
m_HDRTechnique = m_Compositor->createTechnique();
//render scene
CreateTextureDef("Scene",0,0,PF_FLOAT16_RGB);
CompositionTargetPass *tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);
tp->setOutputName("Scene");
RenderDownSample();
CalculateLuminance();
CalculateKey();
if(m_GlareType || m_StarType)
{
BrightPass();
if(m_GlareType)
BuildGlare();
if(m_StarType)
BuildStar();
}
if(m_ToneMapper == TM_REINHARDLOCAL)
BuildScales();
FinalRendering();
Viewport* const vp = m_Window->getViewport(0);
Ogre::CompositorInstance* const instance = CompositorManager::getSingleton().addCompositor(vp, "HDR");
if(instance)
instance->addListener(this);
notifyViewportSize(vp->getActualWidth(), vp->getActualHeight());
Enable(m_Enable);
}
示例4: RenderDownSample
void HDRCompositor::RenderDownSample(void)
{
CompositionTargetPass* tp;
CompositionPass* pass;
//Downscale4
CreateTextureDef("scenedown4",m_VpWidth/4,m_VpHeight/4,PF_FLOAT16_RGB);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("scenedown4");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Down4");
pass->setInput(0,"Scene",0);
pass->setIdentifier(MID_DOWN);
// GpuProgramParameters::RealConstantEntry* entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
// entry->val[0] = 1.f/m_Window->getWidth();
// entry->val[1] = 1.f/m_Window->getHeight();
}
示例5: recreateCompositor
//.........这里部分代码省略.........
mGBufferLogic->setApp(this);
cmp.registerCompositorLogic("GBuffer", mGBufferLogic);
}
if (cmp.getByName("Motion Blur").isNull())
{
// Motion blur has to be created in code
CompositorPtr comp3 = cmp.create(
"Motion Blur", ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
CompositionTechnique *t = comp3->createTechnique();
t->setCompositorLogicName("Motion Blur");
{
CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("scene");
def->width = 0;
def->height = 0;
def->formatList.push_back(PF_R8G8B8);
}
{
CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("sum");
def->width = 0;
def->height = 0;
def->formatList.push_back(PF_R8G8B8);
}
{
CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("temp");
def->width = 0;
def->height = 0;
def->formatList.push_back(PF_R8G8B8);
}
/// Render scene
{
CompositionTargetPass *tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);
tp->setOutputName("scene");
}
/// Initialisation pass for sum texture
{
CompositionTargetPass *tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);
tp->setOutputName("sum");
tp->setOnlyInitial(true);
}
/// Do the motion blur
{
CompositionTargetPass *tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("temp");
{ CompositionPass *pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Ogre/Compositor/Combine");
pass->setIdentifier(120);
pass->setInput(0, "scene");
pass->setInput(1, "sum");
}
}
/// Copy back sum texture
{
CompositionTargetPass *tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("sum");
{ CompositionPass *pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Ogre/Compositor/Copyback");
pass->setInput(0, "temp");
}
示例6: FinalRendering
void HDRCompositor::FinalRendering(void)
{
CompositionTargetPass *tp = m_HDRTechnique->getOutputTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
CompositionPass *pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
if(m_ToneMapper == TM_NONE || m_DebugRendertarget)
pass->setMaterialName("CompositorCopyback");
else if(m_ToneMapper == TM_LINEAR)
pass->setMaterialName("HDRFinalLinear");
else if(m_ToneMapper == TM_REINHARDS)
pass->setMaterialName("HDRFinalReinh");
else if(m_ToneMapper == TM_REINHARDSMOD)
pass->setMaterialName("HDRFinalReinhMod");
else if(m_ToneMapper == TM_LOG)
pass->setMaterialName("HDRFinalLog");
else if(m_ToneMapper == TM_ADAPTLOG)
pass->setMaterialName("HDRFinalAdaptiveLog");
else if(m_ToneMapper == TM_REINHARDLOCAL)
pass->setMaterialName("HDRFinalReinhLocal");
if(m_DebugRendertarget == 1)
pass->setInput(0,"scenedown4");
else if(m_DebugRendertarget == 2)
pass->setInput(0,"Lumscale1");
else if(m_DebugRendertarget == 3)
pass->setInput(0,"Lumscale2");
else if(m_DebugRendertarget == 4)
pass->setInput(0,"Lumscale4");
else if(m_DebugRendertarget == 5)
pass->setInput(0,"scale0");
else if(m_DebugRendertarget == 6)
pass->setInput(0,"scale1");
else if(m_DebugRendertarget == 7)
pass->setInput(0,"scale2");
else if(m_DebugRendertarget == 8)
pass->setInput(0,"scale6");
/*else if(m_DebugRendertarget == 2)
pass->setInput(0,"Lum64");
else if(m_DebugRendertarget == 3)
pass->setInput(0,"Lum16");
else if(m_DebugRendertarget == 4)
pass->setInput(0,"Lum4");
else if(m_DebugRendertarget == 5)
pass->setInput(0,"Luminance");
else if(m_DebugRendertarget == 6)
pass->setInput(0,"Bright");
else if(m_DebugRendertarget == 7)
pass->setInput(0,"Glare");
else if(m_DebugRendertarget == 8)
pass->setInput(0,"Star");*/
else
{
pass->setInput(0,"Scene",0);
if(m_ToneMapper != TM_NONE)
{
if(m_ToneMapper == TM_REINHARDLOCAL)
{
pass->setInput(0, "Lumscale1");
pass->setInput(1,"Key");
if(m_GlareType != GT_NONE)
pass->setInput(2,"Glare");
if(m_StarType != GT_NONE)
pass->setInput(3,"Star");
pass->setInput(4, "LocalAdaptMap");
}
else
{
if(m_LumAdaption)
pass->setInput(1, "AdaptedLum");
else
pass->setInput(1, "Luminance");
pass->setInput(2, "Key");
}
}
if(m_ToneMapper != TM_REINHARDLOCAL)
{
if(m_GlareType != GT_NONE)
pass->setInput(3,"Glare");
if(m_StarType != GT_NONE)
pass->setInput(4,"Star");
}
}
pass->setIdentifier(MID_FINAL);
}
示例7: BuildStar
void HDRCompositor::BuildStar(void)
{
if(m_StarType == ST_PLUS)
{
CompositionTargetPass *tp;
CompositionPass *pass;
String strDstH, strDstV;
String strSrcH = "Bright";
String strSrcV = "Bright";
for(int i=0; i<m_StarPasses; i++)
{
String strDstH = "StarH";
String strDstV = "StarV";
if(i < m_StarPasses-1 )
{
strDstH += StringConverter::toString(i);
strDstV += StringConverter::toString(i);
}
CreateTextureDef(strDstH,m_VpWidth/4,m_VpHeight/4,PF_A8R8G8B8);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName(strDstH);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur");
pass->setInput(0,strSrcH);
pass->setIdentifier(MID_STARH);
strSrcH = strDstH;
CreateTextureDef(strDstV,m_VpWidth/4,m_VpHeight/4,PF_A8R8G8B8);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName(strDstV);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur");
pass->setInput(0,strSrcV);
pass->setIdentifier(MID_STARV);
strSrcV = strDstV;
}
CreateTextureDef("Star",m_VpWidth/4,m_VpHeight/4,PF_A8R8G8B8);
//merge horizontal and vertical blur
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Star");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Merge2");
pass->setInput(0,"StarH");
pass->setInput(1,"StarV");
}
}
示例8: BuildGlare
void HDRCompositor::BuildGlare(void)
{
if(m_GlareType == GT_BLUR)
{
CompositionTargetPass *tp;
CompositionPass *pass;
String strDst;
String strSrc = "Bright";
for(int i=0; i<m_GlarePasses; i++)
{
String strDst = "Glare";
if(i < m_GlarePasses-1 )
strDst += StringConverter::toString(i);
CreateTextureDef(strDst,m_VpWidth/4,m_VpHeight/4,PF_A8R8G8B8);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName(strDst);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur");
pass->setInput(0,strSrc);
pass->setIdentifier(MID_GAUSSBLUR);
strSrc = strDst;
}
//entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
//if(entry)
//{
// entry->val[0] = 32.f/m_Window->getWidth();
// entry->val[1] = 32.f/m_Window->getHeight();
//}
/*pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur_2");
pass->setInput(0,"Glare");
pass->setInput(1,"Bright2");
entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
if(entry)
{
entry->val[0] = 8.f/m_Window->getWidth();
entry->val[1] = 8.f/m_Window->getHeight();
}
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur_3");
pass->setInput(0,"Glare");
pass->setInput(1,"Bright4");
entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
if(entry)
{
entry->val[0] = 16.f/m_Window->getWidth();
entry->val[1] = 16.f/m_Window->getHeight();
}
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur_4");
pass->setInput(0,"Glare");
pass->setInput(1,"Bright2");
entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
if(entry)
{
entry->val[0] = 32.f/m_Window->getWidth();
entry->val[1] = 32.f/m_Window->getHeight();
}*/
}
}
示例9: BuildScales
void HDRCompositor::BuildScales(void)
{
CompositionTargetPass *tp;
CompositionPass *pass;
//first build luminacepass scales
CreateTextureDef("Lumscale1",m_VpWidth,m_VpHeight,PF_FLOAT16_RGB);
CreateTextureDef("Lumscale2",m_VpWidth/2,m_VpHeight/2,PF_FLOAT16_RGB);
CreateTextureDef("Lumscale4",m_VpWidth/4,m_VpHeight/4,PF_FLOAT16_RGB);
CreateTextureDef("Lumscale8",m_VpWidth/8,m_VpHeight/8,PF_FLOAT16_RGB);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lumscale1");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("LuminanceScale");
pass->setInput(0,"Scene",0);
if(m_LumAdaption)
pass->setInput(1, "AdaptedLum");
else
pass->setInput(1, "Luminance");
pass->setInput(2, "Key");
pass->setIdentifier(MID_LUMSCALE1);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lumscale2");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Down2");
pass->setInput(0,"Lumscale1");
pass->setIdentifier(MID_LUMSCALE2);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lumscale4");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Down2");
pass->setInput(0,"Lumscale2");
pass->setIdentifier(MID_LUMSCALE4);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lumscale8");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Down2");
pass->setInput(0,"Lumscale4");
pass->setIdentifier(MID_LUMSCALE8);
//filter downsampled scenes, each filter scale is 1.6 times larger
//starting with:
float s = 1.f / 2.f / sqrt(2.f);
//sample scales 1, 2, 2, 4, 4, 8, 8 and build a total of 7 scales
for(int i = 0; i < m_Scales; i++)
{
String strScale = "scale";
strScale += StringConverter::toString(i+1);
int scaleSize = (1 << ((i + 1) / 2));
String strLumScale = "Lumscale";
strLumScale += StringConverter::toString(scaleSize);
CreateTextureDef(strScale, m_VpWidth/scaleSize, m_VpHeight/scaleSize, PF_FLOAT16_RGB);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName(strScale);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("GaussBlur");
pass->setInput(0,strLumScale);
pass->setIdentifier(MID_SCALE + i);
}
//build local adapt map
CreateTextureDef("LocalAdaptMap", m_VpWidth, m_VpHeight, PF_FLOAT16_RGB);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("LocalAdaptMap");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("BuildLocalAdaptMap");
pass->setInput(0,"Key");
//.........这里部分代码省略.........
示例10: CalculateLuminance
void HDRCompositor::CalculateLuminance(void)
{
CreateTextureDef("Lum64",64,64,PF_FLOAT16_R);
CreateTextureDef("Lum16",16,16,PF_FLOAT16_R);
CreateTextureDef("Lum4",4,4,PF_FLOAT16_R);
CreateTextureDef("Luminance",1,1,PF_FLOAT16_R);
CompositionTargetPass *tp;
CompositionPass *pass;
//intial to 64
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lum64");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("LuminanceInitial");
pass->setInput(0,"scenedown4");
//down to 16
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lum16");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Luminance1");
pass->setInput(0,"Lum64");
//down to 4
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Lum4");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("Luminance2");
pass->setInput(0,"Lum64");
//final to 1
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Luminance");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
//if(m_ToneMapper != TM_ADAPTLOG)
pass->setMaterialName("LuminanceFinalAvg");
//else
// pass->setMaterialName("LuminanceFinalMax");
pass->setInput(0,"Lum4");
if(m_LumAdaption)
{
CreateTextureDef("AdaptedLumLast",1,1,PF_FLOAT16_R);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("AdaptedLumLast");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("CopyHDR");
pass->setInput(0,"AdaptedLum");
CreateTextureDef("AdaptedLum",1,1,PF_FLOAT16_R);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("AdaptedLum");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("AdaptLuminance");
pass->setInput(0,"Luminance");
pass->setInput(1,"AdaptedLumLast");//old
pass->setIdentifier(MID_ADAPT);
}
}
示例11: BrightPass
void HDRCompositor::BrightPass(void)
{
CompositionTargetPass* tp;
CompositionPass* pass;
//first do brightpass
CreateTextureDef("Bright",m_VpWidth/4,m_VpHeight/4,PF_A8R8G8B8);
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Bright");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("BrightPass");
pass->setInput(0,"scenedown4");
pass->setInput(1,"Luminance");
pass->setInput(2,"Key");
pass->setIdentifier(MID_BRIGHT);
/*GpuProgramParameters::RealConstantEntry* entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("g_fMiddleGray");
if(entry)
entry->val[0] = m_Key;*/
//downsamples of bright for glare and/or star
/*if(m_GlareType != GT_NONE || m_StarType != ST_NONE)
{
CreateTextureDef("Bright2",m_Window->getWidth()/8,m_Window->getHeight()/8,PF_A8R8G8B8);
//CreateTextureDef("Bright4",m_Window->getWidth()/16,m_Window->getHeight()/16,PF_A8R8G8B8);
//CreateTextureDef("Bright8",m_Window->getWidth()/32,m_Window->getHeight()/32,PF_A8R8G8B8);
//birght/2
tp = m_HDRTechnique->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("Bright2");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("BrightDown_1");
pass->setInput(0,"Bright");
entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
if(entry)
{
entry->val[0] = 4.f/m_Window->getWidth();
entry->val[1] = 4.f/m_Window->getHeight();
}
//birght/4
//tp = m_HDRTechnique->createTargetPass();
//tp->setInputMode(CompositionTargetPass::IM_NONE);
//tp->setOutputName("Bright4");
//pass = tp->createPass();
//pass->setType(CompositionPass::PT_RENDERQUAD);
//pass->setMaterialName("BrightDown_2");
//pass->setInput(0,"Bright2");
//entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
//if(entry)
//{
// entry->val[0] = 8.f/m_Window->getWidth();
// entry->val[1] = 8.f/m_Window->getHeight();
//}
//birght/8
//tp = m_HDRTechnique->createTargetPass();
//tp->setInputMode(CompositionTargetPass::IM_NONE);
//tp->setOutputName("Bright8");
//pass = tp->createPass();
//pass->setType(CompositionPass::PT_RENDERQUAD);
//pass->setMaterialName("BrightDown_3");
//pass->setInput(0,"Bright4");
//entry = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters()->getNamedRealConstantEntry("rcpScreenSize");
//if(entry)
//{
// entry->val[0] = 16.f/m_Window->getWidth();
// entry->val[1] = 16.f/m_Window->getHeight();
//}
}*/
}
示例12: _init
void _init(void)
{
CompositorPtr compositor = CompositorManager::getSingleton().create(
_theType(), ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME);
CompositionTechnique *t;
CompositionTechnique::TextureDefinition *td;
CompositionTargetPass *tp;
CompositionPass *pass;
t = compositor->createTechnique();
td = t->createTextureDefinition("scene");
td->width.viewport = 1;
td->height.viewport = 1;
td->format = PF_X8R8G8B8;
td = t->createTextureDefinition("blur0");
td->width.viewport = 0.5;
td->height.viewport = 0.5;
td->format = PF_X8R8G8B8;
td = t->createTextureDefinition("blur1");
td->width.viewport = 0.5;
td->height.viewport = 0.5;
td->format = PF_X8R8G8B8;
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);
tp->setOutputName("scene");
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("blur0");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/Floodlighting/DownSample");
pass->setInput(0, "scene");
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("blur1");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/Floodlighting/BlurHorizontal");
pass->setInput(0, "blur0");
tp = t->createTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
tp->setOutputName("blur1");
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/Floodlighting/BlurVertical");
pass->setInput(0, "blur0");
tp = t->getOutputTargetPass();
tp->setInputMode(CompositionTargetPass::IM_NONE);
pass = tp->createPass();
pass->setType(CompositionPass::PT_RENDERQUAD);
pass->setMaterialName("PostFilters/Floodlighting/Blend");
pass->setInput(0, "scene");
pass->setInput(1, "blur1");
pass->setIdentifier(0xDEADBADE);
mBlurAmount = 0.2f;
mShineAmount = 0.3f;
// receive default parameters from material script
if (!pass->getMaterial().isNull())
{
GpuProgramParametersSharedPtr parameters = pass->getMaterial()->getTechnique(0)->getPass(0)->getFragmentProgramParameters();
#if OGRE_VERSION >= 0x010300
const GpuConstantDefinition* def;
def = parameters->_findNamedConstantDefinition("blur_amount");
if (def)
parameters->_readRawConstants(def->physicalIndex, 1, &mBlurAmount);
def = parameters->_findNamedConstantDefinition("shine_amount");
if (def)
parameters->_readRawConstants(def->physicalIndex, 1, &mShineAmount);
#else
GpuProgramParameters::RealConstantEntry* entry;
entry = parameters->getNamedRealConstantEntry("blur_amount");
if (entry && entry->isSet)
mBlurAmount = entry->val[0];
entry = parameters->getNamedRealConstantEntry("shine_amount");
if (entry && entry->isSet)
mShineAmount = entry->val[0];
#endif
}
}