pixel bender 学习备忘录

之前学习冷门的pixel bender;写了两个滤镜。第一个是抠像滤镜(DigFilter可对显示对象中特定颜色进行替换达到抠像的目的)另一个则是位移滤镜(DisplacementFilter类似于photoshop的位移滤镜);
先说抠像功能:简单来说就是逐个遍历像素,将符合抠像条件的像素替换为透明的;这个十分简单的功能,实现起来却弄得自己有点晕;最开始在toolkit中测试都正常,然而放到flash环境就什么都显示不出来。纠结了一个晚上后发现原来在as中对pixel bender的矢量访问不支持rgb的命名。换成xyz居然好了。而这个问题是任何资料中都没有写的。(或许是自己电脑的问题,因为以前写agal着色器的时候也是不支持rgb命名的)
接下来是位移滤镜:虽然实现原理简单,但运行效率上却并没有达到预期的效率。一般来说,在IDE中测试影片的效率是低于独立播放器效率的。结果却不同,在fp10和fp11下播放的效率竟然比fp15高出很多。在fp15的独立播放器中速度似乎比原生api的效率还低;这个问题在编写位图引擎的时候也曾遇到。不知道是不是自从flash拥抱stage3D以后就放弃了对pixel bender的优化呢?之后在网上看到了一篇关于pixelbender性能测试的文章;其结果显示在处理较小图形方面使用pixelbender并没有明显优势。处理较大图形上有优势。处理动画果然还是stage3D更靠谱一点;
以下是关于pixelbender在as3中使用的要点:
1:toolkit调试设置需要为flash才能真正体现出在真实环境的效果;
2:As3中对于用rgb表示pixel类型的值支持不好(或者不支持)应使用xyz;
3:pixel bender进行动画处理时最消耗cpu的部分已经变成了缩放的矩阵运算;往往这方面的消耗要远大于应用pixelbender而节省的cpu消耗;
4:向核传递多张图像可以用以下语句: input image4 src; AS3中 shader.data.src.input=new BitmapData();
5:当使用两张图形作为输入,且进行blendShader设置的时候无需显式的指定输入图形;flash会自动将当前图形与当前图形下方的显示对象作为第一和第二张图像;
6:shader填充和滤镜并不会随着显示对象的缩放而缩放;
7:pixel bender Toolkit2编译器不支持中文目录名称,这点体现在导出pbj时不能成功(无错误提示);只能保存在英文目录中;
8:pixel bender中很多功能并不被as3支持;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值