搜索了一下cg文件,才发现有这个文件,
shader实现的bloom全屏柔光效果,有点朦胧,感觉没漩涡鸣的清晰啊
混了2次太模糊了.应该做成blur,囧
这fps掉得真快...
由于搜狐并没有提供合成器脚本,所以要我们自己代码实现合成器
我发出自己实现的源码,模糊版本:
- // 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>");
- }
- }
- }