【问题标题】:Choppy images in iOS simulatoriOS模拟器中的断断续续的图像
【发布时间】:2013-01-22 04:56:45
【问题描述】:

我使用 GLES 2.0 for iOS 制作了一款 iOS 游戏。当我在实际设备上运行它时,它与我的高分辨率图像完美配合,但是当我在模拟器中运行它时,我得到的图像非常不稳定:

我在开发过程中并没有真正关心过,但是现在我要提交到 iTunes Store,我必须上传我没有的 3.5 英寸和 4 英寸 iPhone 的屏幕截图(我已经一直在 iPad 上开发)。所以我决定用模拟器,但我真的不能用这些截图。

没有购买 3.5'' 和 4'' 设备只是来截图,我该如何解决这个问题并获得高质量的截图?

注意:原始图像质量很高。即使在视网膜 iPad 上,它们看起来一点也不波涛汹涌。

【问题讨论】:

  • 我认为您应该降低 iPhone 的图像尺寸。看起来它们太大了,模拟器在下采样方面做得不好,尽管设备可以。
  • @jv42 有没有办法在模拟器上获得高质量的上/下采样?我不会手动重新创建我的所有资产,并重新计算所有渲染坐标以针对较小的分辨率,只是为了截取一些屏幕截图。
  • 你试过模拟器的缩放选项吗?也许当设置为 2 倍或 0.5 倍时渲染效果会更好?
  • @jv42 模拟器中的缩放选项在哪里?我在任何地方都找不到它们...
  • @rob 我在朋友的 4GS 上测试了它的早期版本,它的外观和性能完美无缺。 ipad模拟器看起来也很不稳定。我仔细分析了我的应用程序,在任何情况下我都使用了超过 96MB 的未压缩资产,包括声音,甚至可以在 3 岁的 2.3 机器人上使用。我毫不怀疑最终版本将在 4GS 上完美运行,这是我的最低目标平台。

标签: ios objective-c xamarin.ios ios-simulator


【解决方案1】:

这是预期/已知的行为。模拟器就是:simulator 而不是emulator。模拟器中的 OpenGL 性能和图像质量通常与实际设备上的大不相同(而且通常更差)。确定 OpenGL 代码在设备上的外观和性能的唯一方法是在设备上对其进行测试,而在您的情况下获得好的屏幕截图的唯一方法是寻找这样的设备并使用它来进行测试截屏。否则,就模拟器而言,所见即所得。没有神奇的开关说“让它看起来像在设备上一样”。

【讨论】:

  • 搞笑,android(虚拟设备)的等价物有非常准确的视觉质量
  • 鉴于整个 Android 生态系统的图形硬件种类繁多,我很难相信他们的模拟器能够准确地模拟所有不同的设备,但我不做 Android 开发,所以我不知道。
  • 最简单的考虑方法是:由于主机中的图形硬件与设备中的图形硬件不完全相同,因此模拟器图形无法完全相同作为设备图形。这永远是一种“尽力而为”的事情。
  • 我理解它是否无法准确模拟设备 gpu 最模糊的细微差别,但 opengles 平滑是非常基本的,我很惊讶它不是按设计工作的。
【解决方案2】:

事实证明模拟器一直都是对的。

我在朋友的 iPhone 5 上试用了最终版本,乍一看还不错,但仔细一看,它就像上面的屏幕截图一样。我可以通过让我的朋友截取屏幕截图来验证这一点,实际上看起来就像我在那里发布的屏幕截图。

它在 iPad 上看起来不错的原因是因为在 iPad 上,游戏实际上是对纹理进行了放大,即使只是轻微的放大,并且放大算法产生的结果比缩小算法的效果更好。 (我可以发誓它在 480x320 2.3 机器人上看起来不错)

所以无论如何,我开始通过在加载时创建 mipmap 来解决问题

GL.GenerateMipmap(TextureTarget.Texture2D);

然后设置缩小以使用这些 mipmap

GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.LinearMipmapLinear);

现在波涛汹涌的缩小已经消失了,取而代之的是一个肮脏的缩小。 orz

实际上这样做表明我错误地使用了对视网膜显示器的支持。该应用程序以 iPhone 3GS 的分辨率运行。

所以我只需要确保创建的帧缓冲区大小正确,问题就消失了。但是,在使用 Retina 显示器时,我再次放大了我的纹理,所以我只在非 Retina 设备上创建 mipmap(这会消耗更多 VRAM 并使游戏加载速度变慢)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    相关资源
    最近更新 更多