【问题标题】:What is the maximum texture size available on the iPad?iPad 上可用的最大纹理尺寸是多少?
【发布时间】:2011-01-31 02:27:36
【问题描述】:

有人知道 iPad 的最大纹理尺寸吗?我很难找到这方面的数字。

【问题讨论】:

  • 您确实需要说明iPad 的哪个版本(iPad、iPad 2、iPad 3rd gen 或 iPad 4th gen(迄今为止)?)
  • @Rob,接受的答案已经过时了。一个适度的建议 - 将我的答案标记为已接受的答案,并节省一些时间访问此页面的人。

标签: ipad textures opengl-es-2.0


【解决方案1】:

作为已接受答案的补充:

2048 也是 iPad2 的最大值,直到 iOS5.1 变为 4096。

4096 是 iPad3 的最大值,正如 cmets 中的 @badweasel 所指出的那样。

最好以编程方式确定限制,使用

int max;
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max);

如果您希望您的代码适应您尚未尝试或尚未发布的设备或版本的最大大小,这将非常有用。

【讨论】:

  • 我的纹理图集刚刚达到了这个极限。注意到在纹理停止正确渲染之前的一个显示对象上,我的图集高度为 2046,并且接近 2 的幂让我谷歌,然后出现了。 +1 用于 GL 整数查询,这正是我想要的 :-)
  • 对于 iPad3(“新 iPad”),它返回 4096。
  • 代码对我不起作用。 glGetIntegerv 没有修改 max 的值,glError 返回 0。我错过了什么吗?我在开始时在应用程序委托中调用它。
  • @louissmr,我现在不是 GL 用户,但您可能需要在此工作之前设置一个 GL 上下文。
  • 谢谢@brainjam,这是有道理的。我根本没有在我的应用程序中使用 OpenGL,但我仍然需要最大纹理大小来确定要在不使用图块的情况下加载的最大分辨率图像大小。创建上下文应该有任何副作用吗?我想我可以创建上下文,调用 glGetIntegerv 然后销毁上下文。
【解决方案2】:

【讨论】:

  • 是的,答案是基于初步的和不正确的规范。不错的收获。 +1
  • -1:你没有说什么iPad。 iPad 内部变化如此之大,它们也可能是完全不同的设备,具有完全不同的名称,例如“iPad”代表一个,而“myPad”代表下一个。
  • iPad 2 有 512MB,iPad 3 有1G of shared RAM。在 3 个 2048x2048 纹理之后,您不会耗尽内存。
  • @bobobobo 我使每个纹理 2048*2048*4/(1024*1024) = 2*2*4 = 16 mb。所以空间可容纳不少于三个。
【解决方案3】:

这是来自 Apple 的更新资源。

https://developer.apple.com/metal/limits/

它有很多关于图形限制的信息。如果您想知道 iOS 的最大纹理大小,请找到“最大 2D 纹理宽度和高度”条目。

这取决于您所针对的操作系统。例如,如果您想支持 iOS 8 及更高版本,您将受限于 iOS 8 对 4096 x 4096 像素的 2D 纹理的限制,即使更高版本的 iOS 可以支持更大的纹理。

【讨论】:

    猜你喜欢
    • 2011-10-12
    • 1970-01-01
    • 2013-09-11
    • 1970-01-01
    • 2018-04-21
    • 2015-01-22
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    相关资源
    最近更新 更多