【问题标题】:How does Quartz handle texture compression?Quartz 如何处理纹理压缩?
【发布时间】:2012-04-25 10:33:32
【问题描述】:

我在 iPhone 上进行开发,我们的大部分游戏都使用 OpenGL ES,但也有使用 CGImage 和 Quartz 的菜单来显示。在 OpenGL ES 中,我知道无论采用何种图像压缩(JPG、PNG 等),作为纹理存储在内存中的数据都是 8 位纹理,除非我使用 PVRTC 在这种情况下我可以得到它2 或 4 位。由于 CGImage 较大,我们一直存在内存问题,所以我的问题是...... Quartz 和 CGI​​mage 使用什么样的优化和压缩?我在 Apple 的文档中找不到详细信息,当我真的想知道放入 256 色图像或 JPG 与 PNG 是否会有所不同,如果尺寸为 2 次方有帮助,等等速度并不重要,内存是这里的瓶颈。

谢谢。

【问题讨论】:

    标签: iphone quartz-graphics textures


    【解决方案1】:

    Quartz 未压缩。它用于快速合成和渲染像素精确的内容。一旦您的图像被绘制到一个上下文中,它们来自哪里都无关紧要,无论它们拥有多少像素(如果我没记错的话,通常在设备中每个像素 4 个字节),它们会采用每个像素所需的任何上下文。它所做的一件大事是预乘 alpha 以避免混合。

    现在,一些处于内存压力下的视图如果不显示它们的内容,可以逐出它们,并根据需要重新构建它们。在这些情况下,来自压缩源的 CGImage 通常最终会占用更少的内存,但我怀疑这与您描述的情况无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多