【发布时间】:2011-01-07 17:18:51
【问题描述】:
我对 OpenGL 很陌生,所以如果这可能非常基本(或没有意义),我很抱歉。
我正在开发一个 2D 游戏,其中有很多大小不是 2 次方的精灵。所以我会有像 520x260 这样的纹理,并且不能重新设计。现在我的理解是,由于 OpenGL ES 1 需要纹理是 2 的幂,因此我实际上会浪费大量内存(因为我之前示例中的纹理实际上会在硬件上占用 1024x512)。
我一直在想的是,与其让精灵成为两个三角形并具有一个大纹理,我可以让精灵由更多更小的三角形组成,并且我可以分解成更小的大纹理pow2 块(比如 128x128)可以在这些三角形上单独使用(使用类似于网格图的东西)。
所以我的问题是:为单个网格使用多个纹理是否可行且可行?如果是这样,额外的计算(所有较小的三角形和纹理化它们所必需的)是否值得节省纹理内存?
附:我正在开发 Android,但我认为这不会有太大的不同。
【问题讨论】:
-
好吧,根据您的回答,我继续执行此操作。它似乎确实产生了积极的影响!如果不出意外,我至少可以剔除更多的每个精灵(当它离开屏幕时),因为它现在被分解成更小的部分。