菜鸟学习OGRE和天龙八部之十三: Bloom全屏柔光

 搜索了一下cg文件,才发现有这个文件,

shader实现的bloom全屏柔光效果,有点朦胧,感觉没漩涡鸣的清晰啊

混了2次太模糊了.应该做成blur,囧

这fps掉得真快...

 

菜鸟学习OGRE和天龙八部之十三: Bloom全屏柔光_第1张图片 

由于搜狐并没有提供合成器脚本,所以要我们自己代码实现合成器

 

我发出自己实现的源码,模糊版本:

// bloom CompositorPtr comp = CompositorManager::getSingleton().create("Bloom", "TLBB"); { CompositionTechnique *t = comp->createTechnique(); { CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt0"); def->width = 0; def->height = 0; def->format = PF_R8G8B8; } { CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt1"); def->width = 0; def->height = 0; def->format = PF_R8G8B8; } { CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt2"); def->width = 0; def->height = 0; def->format = PF_R8G8B8; } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_PREVIOUS); tp->setOutputName("rt1"); } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_PREVIOUS); tp->setOutputName("rt2"); } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_NONE); tp->setOutputName("rt0"); CompositionPass *pass = tp->createPass(); pass->setType(CompositionPass::PT_RENDERQUAD); pass->setMaterialName("PostFilters/Bloom/Blur"); pass->setInput(0, "rt1"); } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_NONE); tp->setOutputName("rt1"); CompositionPass *pass = tp->createPass(); pass->setType(CompositionPass::PT_RENDERQUAD); pass->setMaterialName("PostFilters/Bloom/Blur"); pass->setInput(0, "rt0"); } { CompositionTargetPass *tp = t->getOutputTargetPass(); tp->setInputMode(CompositionTargetPass::IM_NONE); { CompositionPass *pass = tp->createPass(); pass->setType(CompositionPass::PT_RENDERQUAD); pass->setMaterialName("PostFilters/Bloom/Final"); pass->setInput(0, "rt2"); pass->setInput(1, "rt1"); } } }

 

// 做一次,清晰不少:

 

// bloom CompositorPtr comp = CompositorManager::getSingleton().create("Bloom", "TLBB"); { CompositionTechnique *t = comp->createTechnique(); { CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("<input>"); } { CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("<input1>"); } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_PREVIOUS); tp->setOutputName("<input>"); } { CompositionTargetPass *tp = t->createTargetPass(); tp->setInputMode(CompositionTargetPass::IM_NONE); tp->setOutputName("<input1>"); CompositionPass *pass = tp->createPass(); pass->setType(CompositionPass::PT_RENDERQUAD); pass->setMaterialName("PostFilters/Bloom/Blur"); pass->setInput(0, "<input>"); } { CompositionTargetPass *tp = t->getOutputTargetPass(); tp->setInputMode(CompositionTargetPass::IM_NONE); { CompositionPass *pass = tp->createPass(); pass->setType(CompositionPass::PT_RENDERQUAD); pass->setMaterialName("PostFilters/Bloom/Final"); pass->setInput(0, "<input1>"); pass->setInput(1, "<input>"); } } }

 

 

你可能感兴趣的:(脚本,input,IM,shader)