9RIA天地会2017 发表于 2019-2-28 10:13:09

【半原创】来一个高大上的Stage3D水晶台球(有源码)

本帖最后由 TKCB 于 2019-2-28 10:16 编辑

转载:9RIA游戏开发者社区(天地会)
作者:iloveas(原天地会大神)

demo
attach://2026.swf

之所以说半原创,是因为这个游戏或者说特效是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,代码很蛋疼
第二个用法线贴图分担了一部分,代码可读性和执行效率都高了不少


源文件下载

**** Hidden Message *****

TKCB 发表于 2019-2-28 10:15:36

【11RIA 闪客社区,评分公示】:
是否有价值:一般(银子 +10贡献 +1)
是否原创:否
是否翻译:否
如对自己的评分有疑问,则咨询版主、管理员等。

Leo 发表于 2019-2-28 10:18:01

赞一个赞一个

岩新新 发表于 2019-4-1 20:57:49

欣赏点赞!

墨海雪浪 发表于 2019-4-1 21:38:50

欣赏朋友佳作!

qiuhao 发表于 2019-4-2 12:46:40

大神厉害了

馨儿xiner 发表于 2019-4-3 02:11:48

赚点银子,下载资源

qq172715384 发表于 2019-4-4 11:24:23

666666666666666666

king_honvy 发表于 2019-4-9 10:04:55

不错,真厉害,{:4_159:}

fdisker 发表于 2022-2-3 08:37:22

下载学习,感觉分享
页: [1] 2
查看完整版本: 【半原创】来一个高大上的Stage3D水晶台球(有源码)

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)