6

我正在为一个 android 游戏创建一个 UI 系统,该系统将有一个大的(高达 4096x4096)背景区域,其中菜单可以放置在该屏幕内的任何位置,并且当需要不同的菜单时,相机会飞到该位置。我不想拥有一个大的静态图像,而是希望能够稍微对其进行动画处理。我想知道的是如何在不滞后设备的情况下有效地做到这一点。这些是我到目前为止提出的方法,但也许有更好的方法..

1)有3个独立的4096x4096静态图层作为背景,1是天空,1是地形,1是云和树木之类的东西。每一层都被放置在彼此的顶部,在 Z 空间中略有不同,以便在相机移动时产生一点视差效果。

2)有一个大的静止背景图像,在其顶部有一个图层,上面有云、树木和其他应该动画的东西的特定精灵。我认为这可能是最有效的路线,因为我可以选择不对不在视野中的部分进行动画处理,但它也会限制可重用性,因为每个不同的对象都必须手动放置在空间中。我的目标是能够简单地更改资产并能够拥有一个全新的游戏。

3)有 1 个大背景层,其中包含几帧,几乎像视频一样播放。我觉得这将是性能上最差的(加载几个 4096x4096 帧并每秒绘制 30 次不同的帧),但会给我的场景正是我想要的直接从 After Effects 中取出的场景。我怀疑这个甚至是可行的,不仅仅是因为绘图而且 android 设备上的存储空间仅用于菜单 UI 不允许几个 6MB 帧。

这些中的任何一个都朝着正确的方向发展吗?我已经看到过一些类似的问题,但没有一个与我需要的足够接近(不是由瓷砖制成的大型移动背景)。

任何帮助表示赞赏。

4

1 回答 1

3

至于您的问题被标记为 Android,我会推荐第二种解决方案。

主要原因是解决方案 #1 和 #3 涉及加载大量 4096x4096 纹理。快速计算:三个具有这种分辨率的 32 位纹理将使用至少 200MB 的显存。这意味着您可以立即丢弃很多安卓设备。

另一方面,解决方案 #2 将只涉及两个大纹理:一个大的静止背景图像,以及一个包含特定云、树精灵的纹理图集……这个解决方案确实更利于内存,并且会导致相同的结果审美输出。

TL;DR:这 3 种解决方案效果很好,但只有 #2 适合嵌入式设备

于 2013-02-13T10:45:15.763 回答