散仙
阅读权限 3
积分 23109
侠名
UID 1145
主题
帖子
精华
好友
银子
金子
贡献
威望
推广
活跃
荣耀
注册时间 2018-11-22
最后登录 1970-1-1
在线时间 小时
个人主页
|
【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 TKCB 于 2019-2-28 10:16 编辑
转载:9RIA游戏开发者社区(天地会)
作者:iloveas(原天地会大神)
demo
之所以说半原创,是因为这个游戏或者说特效是uu70的原创,只不过他写的时候Stage3D还没出来,所以他的核心代码都基于PixelBender,现在Adobe似乎弃用了这东东,新版的FP跑PixelBender的代码很卡(至少桌面版播放器是这样)
iloveas在这里只是充当一个格式工厂的角色,把PixelBender代码移植到了Stage3D上,在此灰常感谢uu70提供的源程序
PixelBender版的代码使用了tan和atan2这两个函数,然而Stage3D的agal并不支持这俩函数,所以tan需要通过sin/cos来实现,至于反正切,那更是蛋疼,因为agal压根儿就没有反三角的概念,因此通过y和x求出角度在agal上要根据实际情况写很多的判断
在此要感谢另一位大神——式神,他通过法线贴图的思路完美巧妙地解决了这一难题,在iloveas的demo里你也会看到这样的一个BitmapData,思路就是在AS3里用反正切计算好,然后作为颜色setPixel到BitmapData,再作为纹理上传到显卡上
虽然解决了反正切的难题,但agal写起来仍然相当蛋疼,PixelBender一行能搞定的代码,在agal里可能要20行,并且很难调试,多数情况下只能脑补。幸运的是,接下来,我发现这种玻璃球的变换本质跟DisplacementMapFilter也很像,既然如此,我就在法线贴图思路的基础上实现出了自己的置换图滤镜(有点像Starling的那个了),agal代码简化了不少,发上来大家应该就更好看懂了
源文件注释都写好了,特别是agal的部分已经写的足够详细,如果感觉还有疑问,或者想更进一步讨论的话,欢迎加群371259465,这里的朋友都很热心滴~~
最后就是源文件了,为了让更多的人看到,我继续设置内个,你懂的,嘿嘿
第一个源文件,扭曲变换全用agal,代码很蛋疼
第二个用法线贴图分担了一部分,代码可读性和执行效率都高了不少
源文件下载
|
评分
-
查看全部评分
|