3

我正在制作一款格斗游戏,所以我有巨大的角色精灵(300 像素 X 350 像素)和很多动画帧(每个角色约 150 帧),所以最大 2048 x 2048 纹理大小不适合所有动画帧特点。所以,我需要多个 TextureAtlases,对吧?

如果我在 MovieClip 上切换 TextureAtlases,我是否需要担心代价高昂的 GPU 纹理交换?

要更改动画帧,创建一个管理器来选择帧和图集是否明智?

或者我可以组合 TextureAtlases 以便一个图集存储多个 2048 x 2048 精灵表?

你会如何处理这个问题?

4

4 回答 4

4

Daniel Sperl 在 Starling 论坛上的建议:

如果你的精灵太大了,恐怕你会遇到纹理内存的问题。不幸的是,目前没有简单的解决方法,除了使用“Spriter”(测试版)创建该动画:

http://www.kickstarter.com/projects/539087245/spriter

于 2012-05-16T18:04:05.000 回答
1

考虑是否可以通过制作骨骼动画来减少动画需求。与其将角色的每一帧直接绘制到纹理中,不如将角色分解为可动画的部分,使用变换定位这些部分,然后在运行时将它们合成到动画帧中。这是一个格斗游戏,所以这应该是可以管理的(大概你只有两个动画角色,加上一些相对便宜的环境效果)。因此,您只需要每个角色的每个独特部分,这将大大减少您的纹理预算(但会增加动画引擎的复杂性)。

您可以查看 DragonBones (http://dragonbones.github.com/getting_started_en.html) 以获取帮助。

于 2012-11-28T22:46:01.863 回答
0

2048 x 2048此限制记录在哪里?我从来没有读过这样的东西。我可以在Starling 1.1 文档中找到关于纹理图集大小的唯一内容是:

任何 Stage3D 纹理的边长都必须是 2 的幂。Starling 向您隐藏了这个限制,但代价是额外的图形内存。通过使用纹理图集,您可以避免纹理切换和二次幂限制。所有纹理都在一个大的“超级纹理”内,Starling 会注意显示该纹理的正确部分。

假设我没有完全错过这个重要的细节,并且纹理图集没有大小限制,只需在4096 x 4096or处创建一个8192 x 8192

于 2012-05-09T06:40:28.903 回答
0

嗯 - 我的猜测是使用大于 2048x2048 的纹理会对性能产生影响。而且我会进一步假设在这种大小的纹理之间转换也会导致性能受到影响。您是否考虑过缩小纹理资源并在游戏中放大它们?

于 2012-05-09T07:21:26.200 回答