OGRE Bloom全屏柔光

1649 篇文章 11 订阅
1623 篇文章 22 订阅
搜索了一下cg文件,才发现有这个文件,

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

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

这fps掉得真快...

 

 

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

 

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

  1. // bloom   
  2. CompositorPtr comp = CompositorManager::getSingleton().create("Bloom""TLBB");  
  3. {  
  4.     CompositionTechnique *t = comp->createTechnique();  
  5.     {  
  6.         CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt0");  
  7.         def->width = 0;  
  8.         def->height = 0;  
  9.         def->format = PF_R8G8B8;  
  10.     }  
  11.     {  
  12.         CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt1");  
  13.         def->width = 0;  
  14.         def->height = 0;  
  15.         def->format = PF_R8G8B8;  
  16.     }  
  17.     {  
  18.         CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("rt2");  
  19.         def->width = 0;  
  20.         def->height = 0;  
  21.         def->format = PF_R8G8B8;  
  22.     }  
  23.     {  
  24.         CompositionTargetPass *tp = t->createTargetPass();  
  25.         tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);  
  26.         tp->setOutputName("rt1");  
  27.     }  
  28.     {  
  29.         CompositionTargetPass *tp = t->createTargetPass();  
  30.         tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);  
  31.         tp->setOutputName("rt2");  
  32.     }  
  33.     {  
  34.         CompositionTargetPass *tp = t->createTargetPass();  
  35.         tp->setInputMode(CompositionTargetPass::IM_NONE);  
  36.         tp->setOutputName("rt0");  
  37.         CompositionPass *pass = tp->createPass();  
  38.         pass->setType(CompositionPass::PT_RENDERQUAD);  
  39.         pass->setMaterialName("PostFilters/Bloom/Blur");  
  40.         pass->setInput(0, "rt1");  
  41.     }  
  42.     {  
  43.         CompositionTargetPass *tp = t->createTargetPass();  
  44.         tp->setInputMode(CompositionTargetPass::IM_NONE);  
  45.         tp->setOutputName("rt1");  
  46.         CompositionPass *pass = tp->createPass();  
  47.         pass->setType(CompositionPass::PT_RENDERQUAD);  
  48.         pass->setMaterialName("PostFilters/Bloom/Blur");  
  49.         pass->setInput(0, "rt0");  
  50.     }  
  51.     {  
  52.         CompositionTargetPass *tp = t->getOutputTargetPass();  
  53.         tp->setInputMode(CompositionTargetPass::IM_NONE);  
  54.         { CompositionPass *pass = tp->createPass();  
  55.         pass->setType(CompositionPass::PT_RENDERQUAD);  
  56.         pass->setMaterialName("PostFilters/Bloom/Final");  
  57.         pass->setInput(0, "rt2");  
  58.         pass->setInput(1, "rt1");  
  59.         }  
  60.     }  
  61. }  

 

// 做一次,清晰不少:

 

  1. // bloom   
  2. CompositorPtr comp = CompositorManager::getSingleton().create("Bloom""TLBB");  
  3. {  
  4.     CompositionTechnique *t = comp->createTechnique();  
  5.     {  
  6.         CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("<input>");  
  7.     }  
  8.     {  
  9.         CompositionTechnique::TextureDefinition *def = t->createTextureDefinition("<input1>");  
  10.     }  
  11.     {  
  12.         CompositionTargetPass *tp = t->createTargetPass();  
  13.         tp->setInputMode(CompositionTargetPass::IM_PREVIOUS);  
  14.         tp->setOutputName("<input>");  
  15.     }  
  16.     {  
  17.         CompositionTargetPass *tp = t->createTargetPass();  
  18.         tp->setInputMode(CompositionTargetPass::IM_NONE);  
  19.         tp->setOutputName("<input1>");  
  20.         CompositionPass *pass = tp->createPass();  
  21.         pass->setType(CompositionPass::PT_RENDERQUAD);  
  22.         pass->setMaterialName("PostFilters/Bloom/Blur");  
  23.         pass->setInput(0, "<input>");  
  24.     }  
  25.     {  
  26.         CompositionTargetPass *tp = t->getOutputTargetPass();  
  27.         tp->setInputMode(CompositionTargetPass::IM_NONE);  
  28.         { CompositionPass *pass = tp->createPass();  
  29.         pass->setType(CompositionPass::PT_RENDERQUAD);  
  30.         pass->setMaterialName("PostFilters/Bloom/Final");  
  31.         pass->setInput(0, "<input1>");  
  32.         pass->setInput(1, "<input>");  
  33.         }  
  34.     }  
  35. }  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值