下图展示的是通过柏林噪声和一些滤镜制作的火焰效果。这个效果是从舞台底部燃起的熊熊烈火。这个效果使用了BitmapData里的perlinNoise方法,以及ColorMatrixFilter和DisplacementMapFilter两个滤镜,点击截图下面的链接,可以在新窗口中查看运行的效果。

http://www.flashandmath.com/flashcs5/fire/fire.html

http://files.cnblogs.com/wonderKK/fire.zip

点击上面的链接下载完整的源文件,源码中已做好注释,也可以在源码的基础上轻松的自定义效果。

效果是如何实现的

 

效果实现的基本思路是通过柏林噪声实现扭曲而不是柏林噪声显示。柏林噪声扭曲效果随着时间平滑的移动。在AS3Flash: Low CPU Clouds Animation - Perfect for Mobile effect这个效果中,我们同样使用了这个思想。在ScrollingPerlinNoise类中,我们创建了一个准确的柏林噪声扭曲效果,然后利用bitmap复制方法随着时间平滑的移动这个扭曲效果,这一点跟clouds效果里一样。

下面一步步介绍了火焰的制作过程,不过你也可以打开源文件,体验一下效果,这样目的会更加明确。在main.fla中的onEnter方法中,可以看到绘制和滤镜的每个步骤,这些也已做好注释。

下面是火焰效果创建的详细步骤:

· ScrollingPerlinNoise类的两个实例(我们叫做“clouds”)用来创建火焰。它们是随时间移动的灰度的柏林噪声。这两朵clouds会以不同的方向进行移动,来产生分散的移动的效果。实际上一朵clouds也是可以的,但是用两朵clouds实现的火焰效果会更好。

· 在火焰中绘制一个用渐变填充的半椭圆形,让它的顶部更加圆润,而且平滑的淡出。

· 现在给灰度的图片加上火的颜色。这一点我们通过BitmapData的palleteMap方法来实现,这和我们在中AS3WoodTexture Class - Apply Wood Texture to Any Display Object example实现木质纹理的方法是一样的。但是在这个效果中我用了一个比较聪明的方法,用ColorMatrixFilter滤镜将颜色转换成红黄白。ColorMatrixFilter在颜色通道值基础上,与它的multipliers和offsets属性进行计算得到最终的颜色值。深灰色转换成红色;灰色转换成黄色,因为红色和绿的混合;浅灰色转换成白色,因为颜色通道里的值都已经被加到最大值255了。

· 给clouds填充完颜色红,我为它添加了模糊效果,特别是在y方法模糊值更大,整页可以将颜色延伸到整个图片。

· 然后使用DisplacementMapFilter扭曲火焰,让效果更加逼真。DisplacementMapFilter应用于另外一个ScrollingPerlinNoise实例中。因为clouds的不断移动,扭曲效果会随时间不断变化。

· 最后,再加另外一个小小的模糊给火焰效果做一下润色。

绘制和滤镜的步骤看起来非常复杂,但是它只是诸多滤镜和柏林噪声试验效果之一,试着修改一下源文件,看看你能否发现其他更好的效果。

原文链接:http://www.flashandmath.com/flashcs5/fire/index.html

转载于:https://www.cnblogs.com/wonderKK/p/3440782.html

(转) [Flash/Flex] 用柏林噪音和滤镜制作翻腾的火焰效果----Flash AS3效应相关推荐

  1. Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动

    对于从Sprite类继承来的对象,要实现拖放当然是Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) 里讲的方法最方便,但是对于不是从Sprite类继承得来的对象, ...

  2. [轉]Flash/Flex监听浏览器的关闭事件

    FROM : http://blog.ityao.com/archives/581 如果想用Flash/Flex监听浏览器的关闭事件, 可以通过JavaScript的window.onbeforeun ...

  3. flash/flex基础发展区别等

    原文地址:https://blog.csdn.net/xygg0801/article/details/53323136 很好的一篇文章 博主总结了很多资料 本文和大家重点讨论一下Flex和Flash ...

  4. Flash, Flex, Air, Flashplayer之间的相互关系是什么

    Flash, Flex, Air, Flashplayer之间的相互关系是什么? 著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:曾嵘 链接:http://www.zhi ...

  5. AMFPhp与Flash||Flex 的交互后——台技术区分类导航

    2010-12-03 21:07 http://bbs.9ria.com/redirect.php?tid=57798&goto=lastpost php简介及学习方法 [转载]PHP大潮将至 ...

  6. 浅谈 Flash/Flex/HTML5 技术选型

    在HTML5发布以前,RIA领域的技术解决方案一直相都是各展所长,并无争议.Adobe体系中,Flash做不了的事情,Flex可以做到:.Net系决策者在选用RIA解决方案时,Silverlight是 ...

  7. Unity中利用柏林噪音生成随机地图

    利用柏林噪音生成随机地图<2/2/2018> 什么是柏林噪音?(请自行百度)Perlin噪声 ( Perlin noise )指由Ken Perlin发明的自然噪声生成算法 . 原理学习可 ...

  8. Flash/Flex学习笔记(51):3维旋转与透视变换(PerspectiveProjection)

    Flash/Flex学习笔记(49):3D基础 里已经介绍了3D透视的基本原理,不过如果每次都要利用象该文中那样写一堆代码,估计很多人不喜欢,事实上AS3的DisplayObject类已经内置了z坐标 ...

  9. Flash和HTML5那点事:后者拿什么取代Flash?

    感谢匿名人士的投递 新闻来源:so雷so昏 最近关于HTML5 吵得火热,很多人认为HTML5出现会秒杀Flash,以至于在各大web前端开发论坛吵得不可开交.论坛里三言 两语说的不够 尽兴,只好在自 ...

最新文章

  1. centos 安装java web_centos6.9 安装JAVA-WEB环境
  2. 公司各个阶段 CTO 需要做什么?(下篇)
  3. 创建一个自定义颜色IRgbColor
  4. 8.2 动力系统的贝叶斯推理
  5. MFC类中获得其它类指针
  6. OpenGL RGTC Compressor压缩实例
  7. VirtualBox Network设置的NAT和Bridged Adapter模式区别
  8. 算法-排序-归并排序
  9. mysql连接idea详细教程_idea配置连接数据库的超详细步骤
  10. MFC实现 MSN QQ 窗口抖动
  11. Eclipse开发Android常用快捷键
  12. pythonassert关键字_Python assert 关键字
  13. R语言空间插值的几种方法及案例应用
  14. 第五模块 常用邮件沟通场景(1):求职信
  15. Fruits 360(水果数据集)
  16. 微软漏洞导致SQL注入威胁
  17. (一)来自 192.168.xx.xx的回复: TTL 传输中过期。
  18. 淘宝如何打造承载亿级流量的首页?
  19. Python 文件IO操作
  20. 自我评价范文计算机专业,计算机专业学习的自我评价范文

热门文章

  1. uniApp 自定义分享到微信、朋友圈
  2. 华为MateX5G折叠屏手机正式发售的意义
  3. Description Resource Path Location Type Target runtime Apache Tomcat v8.0 is not defined.
  4. ac电源测试系统生产厂家-ac电源测试系统厂家-ac电源测试设备厂家NSAT-8000
  5. MAC在终端用subl打开文件
  6. python输出进度条 tqdm_tqdm:Python 进度条
  7. 医惠护理系统服务器错误,产品解读|医惠移动护理信息系统的创新应用
  8. 柔性制造方式的建立(zt)
  9. access如何保存小数点后_1英寸多少毫米,英制图纸如何快速转公制,转换后小数点怎么处理...
  10. 李硕:周灭商之惊心动魄超乎想象!