我在某处读到 XNA 框架将纹理放大到最接近的两倍大小,然后将其发送到 VRAM,如果它确实是这样工作的,那么在加载许多小(在我的情况下为 150×150)纹理时可能效率不高,这本质上是因为放大而导致未使用的纹理数据浪费内存。
那么是否有一些自动优化,或者我应该自己实现它,比如加载所有纹理,找出“升级”空间足够大以容纳其他纹理并将其放置在那里,记住精灵位置,因此使用一个纹理而不是两个(或更多)?
为每个纹理手动执行此操作并不总是很方便(将许多小精灵放在单个纹理中),因为以后很难使用(本质上它变得不那么以人为本),而且并不总是需要精灵某个级别的游戏,所以如果精灵在不同的组合中会更好,所以它应该自动完成。