【问题标题】:Should my spritesheet / atlas be power of 2我的 spritesheet / atlas 是否应该是 2 的幂
【发布时间】:2013-10-02 06:23:24
【问题描述】:

使用 Atlases / Spritesheets 来减少基于 Web 的游戏的连接开销是一种常见的做法,而且我读过有关使用 2 次方的 sprites,这对内存和 mipmapping 都很有用(不确定是否这是针对基于网络的游戏)。

但是,同样的原则(mipmapping)是否适用于 Atlases? 基本上,我的 Atlas 的大小应该是 2 的幂还是应该(2 的幂规则)适用于它包含的单个图像?

【问题讨论】:

    标签: javascript html 2d-games sprite-sheet mipmaps


    【解决方案1】:

    一般的答案是这取决于您使用的引擎。由于您在问题中所述的原因,某些引擎需要二次幂纹理。而且由于图集实际上只不过是一种纹理,因此它符合这条规则。

    同样,根据引擎的不同,图集中的各种精灵可能还需要是 2 的幂(这就是精灵表的所谓“网格系统”)。但我使用的引擎并不在意,只要图集本身是二次方即可。

    网络游戏

    特别是对于基于网络的游戏,就个人经验而言,我从来不用担心二次方的问题。我只是将我的图像制作成它们需要的任何尺寸。这是有道理的,因为:

    1. 这是网络 :)
    2. 将图像填充到 2 的幂会增加文件大小,因此会增加带宽使用量(尽管幅度不大)

    我认为(尽管可能是错误的)大多数 JavaScript 引擎并不关心二次幂。

    【讨论】:

    • Thnx,但我的问题是确保对 JavaScript 使用 2 的幂没有额外的优势。你能参考一些我可以阅读确认的来源吗?
    • 抱歉,我误解了这个问题……我以为您只是在问他们是否需要 2 的幂。因此,我无法向您推荐任何有关其他优势的来源。不过,我确实知道,如果您打算使用 WebGL,那么您必须使用 2 的幂。请参阅此处:khronos.org/webgl/wiki/…
    • 感谢链接!我尝试在画布上使用 NPOT 地图集尺寸,在一些浏览器上进行测试并让朋友在他们的机器上进行测试后,它们运行良好。所以我想答案是:Canvas 不需要,但如果使用 WebGL 则更好(鉴于目前支持非常有限)
    猜你喜欢
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多