如何处理视网膜显示的图像背景

How to handle image backgrounds for retina display

我正在设计一款使用大背景的游戏。这些是插图背景,目前大小约为 4.5 MB,并且作为背景,在整个游戏中都位于场景中。

首先,我不确定这是否会导致内存使用量增加,但我想它会,因为屏幕上还有其他覆盖的纹理。这是我的第一个问题:它会导致内存问题吗?

其次,如果我有一个 2048 x 1536 和 300 dpi 的背景,以及 compress/optimise 这个图像,它会减少内存 usage/CPU 使用吗?是否有关于如何最好地优化这些类型图像的文档?

有几种方法可以做到这一点。这取决于您将如何使用图像。

  1. 如果它是运动中的背景,您可以将其分割成小块,然后渲染较小的图像。
  2. 取决于格式,大多数人只知道 PNG 和 JPEG,但还有其他 projects/formats 您可以使用。其中一些体积较小但速度较慢read/write,因此如何使用它们取决于您。 即: https://github.com/onevcat/APNGKit
  3. 如果在您的背景中不需要 alpha 通道,请使用 JPEG 而不是 PNG 然后您将节省一些 space。