1024x1024是桌面上广泛支持的OpenGL最大纹理大小吗?

1024x1024是桌面上广泛支持的OpenGL最大纹理大小吗?,opengl,textures,sprite,Opengl,Textures,Sprite,我正在创建一个sprite引擎,它使用“图形库”的概念来加速使用批处理的渲染。我想知道现在是否有人知道1024x1024纹理是否得到了足够广泛的支持,可以“指望”,和/或是否有办法知道1024x1024在图形芯片组/卡(如图表或其他)方面的支持有多远,然后根据估计的兼容性%来决定是否使用1024x1024或将存储组限制为512x512(如果算上集成的加速器,我觉得这一点得到了更广泛的支持)根据这个答案,“iPhone 3g可以支持1024x1024纹理大小。这款手机是在2008年发布的,这让我相

我正在创建一个sprite引擎,它使用“图形库”的概念来加速使用批处理的渲染。我想知道现在是否有人知道1024x1024纹理是否得到了足够广泛的支持,可以“指望”,和/或是否有办法知道1024x1024在图形芯片组/卡(如图表或其他)方面的支持有多远,然后根据估计的兼容性%来决定是否使用1024x1024或将存储组限制为512x512(如果算上集成的加速器,我觉得这一点得到了更广泛的支持)

根据这个答案,“iPhone 3g可以支持1024x1024纹理大小。这款手机是在2008年发布的,这让我相信,5年前,大多数台式机都能支持同样的功能


由实现来定义。野火游戏也很友好,提供了他们的最大纹理大小的数据集。截至撰写本文时,33085名用户中只有18名(0.05%)报告称无法渲染1024或更大尺寸的GL_MAX_纹理。

感谢您提供该研究的链接;而且,这个标题更好。我对这项研究持怀疑态度;“wildfiregames”让我觉得他们的样本主要是由“铁杆”玩家组成。@RogerLevy-看看供应商列表,只有那些拥有少于1024个的玩家是由开源MESA库提供支持的。我不认为你会发现很多系统使用这种配置。看起来大多数集成的GPU都可以处理1024.ok。谢谢你,这让我信服了。如果我能让银行变得更大,并在99%的潜在客户的机器上运行,那将真的很棒;切换纹理的代价很糟糕。您可以同时支持这两种方法。检查
GL\u MAX\u TEXTURE\u SIZE
并在上载纹理之前按编程方式缩小纹理。如果你使用两个宽度和高度的幂,将分辨率除以一半是非常容易的,较小图像中的新像素是原始图像中四个像素的平均值。是的,我考虑过这个。缩小规模有两大不利因素;1) 我的sprite引擎将使用4位调色板图形,在每个组中预先计算4个调色板(每个象限使用不同的调色板,以避免依赖像素着色器支持),因此像素化样式将被过滤破坏;2) 这可能不值得付出代码复杂性和维护成本;我宁愿保持简单,依赖较小的尺寸(或者让驱动程序进行任何缩小),或者如果不支持最大纹理尺寸,则干脆拒绝运行。不想浪费我的生命写胶水…是的,1024是一个常见的桌面大小。OpenGL 3.0实现至少需要支持此分辨率。OpenGL 2.0只需要64x64 texel纹理,这是OpenGL 2.0的一个巨大飞跃:)大多数桌面GPU支持4096-16384,并且在4.x中使用稀疏纹理,支持的最大纹理尺寸几乎没有意义。感谢回复。我不会说最大的纹理大小几乎,甚至几乎没有意义。我只是读了一下,当缓存丢失时,稀疏纹理会变得模糊。我的意思是,可寻址的纹理范围会非常大,你不必担心。稀疏纹理与缓存效率无关,它们与定义第一次加载尚未加载的纹理部分时的行为有关。将这种情况想象成传统虚拟内存中的页面错误,必须引入延迟来处理该错误,但您可以拥有一个应用程序,该应用程序使用的资源远远超过一次装入内存的资源。T