在AS3中使用ATF图片的黑边以及透明度的解决方法

首先介绍一下我在用的两个图片打包工具StarlingSwf和TexturepPacker,前者会导出需要用到的一些单个的图片,并列出*.byte的一个字典文件,接着也是通过这个软件把合成的的png大图转成ATF格式的图片,后者把导出的小图合并成大图,并为每一个大图添加配置表。

在使用ATF的过程中遇到两个问题:

  1. 一个就是在某些时候会遇到图片产生黑边的问题
            图片在拼接成人物动画的时候会产生明显的断层,这对游戏产生了很大的影响,一开始我也在网上查个中资料,有人说要        修改图片的 blendMode模式,有的说要修改starling的底层代码,这些都有试过了,依然没有解决这个问题。最后在查阅了一          些资料之后才发现这个问题的原因,竟然是在texturepacker的设置中为了节省一些图片资源给生成的大图选择了Any size,而        没有选择POT。如图jt1。这两个选项的区别就在于生成的大图是否是按照可以被2整除的方式来排列的,选择了POT模式之后,starling在计算位置的之后是整数的,不存在边角由于计算小数而无法渲染的问题。
  1. 第二个就是在渲染一些具有较多透明度图片的时候整体显示色彩变化的问题
                遇到这个问题的时候我觉得是和上面那个问题是一样的,结果却让我失望了。

                然后就通过其他渠道去解决这个问题,用图片,到动画,再到游戏,检查了一遍,也比对了好多资源的效果,最后在                starling打包成的字典(*.byte)中找到了这个问题的答案。我针对同一个图片进行了两种实验,方法就是在Adobe Flash CC中用不同的方法来处理这个动画,分别用同一个雪花的小图片做成一个下雪的效果动画,不同处在于,一个把所有单个的图片都当成影片剪辑去处理,而一个把所有的单个图片当作图形去处理,如图jt2和jt3。jt2是正确的,jt3是错误的方式。

jt2:

jt3:

通过比对两种方式导出的字典(*.byte)中的数据得到了我需要的答案,如图:

jt4:

jt5:

jt5的那个数据是渲染有问题的方式导出的数据,通过比对可以看到,两个模式分别是分别在一张图片和许多张图片同时在进行渲染,虽然用了starling之后这个渲染的工作是交给GPU来完成的,但是在同一时间渲染许多张图片的效率可想而知,尤其是在性能不是很好的机器上,这个渲染的效果肯定没有只渲染一张图片,然后用这张图片去进行位置计算来的快,渲染和计算,我更倾向于让计算的步骤多一点。

最后,这两个问题都已经都已经解决了,在文章的最后想说一句,用ATF的图片真的能节省很多的资源,但是对动画的制作要求比较多,如果可以接受对动画的要求,对于降低GPU的运算率和降低包的大小的效果是绝对的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值