我正在制作一个使用纹理集加载大量艺术品的OpenGL游戏。
纹理集很有用,因为您只需一次加载图像,然后从中切割出精灵。与独立文件相比,您节省了从磁盘加载所有文件所需的时间,并节省了存储图像的内存。但是在我看来,超过某个点,这种优势将不再真实,对吧?我的想法是,如果纹理集非常巨大,您将浪费很多内存来存储它,并且其中一些精灵可能不会被频繁使用。
那什么是最好的方法?分成多个精灵?逐级分离?或者其他什么?
无论如何,我的问题是:什么是以像素为单位的最大纹理集大小,才能被认为是有利的?
纹理集很有用,因为您只需一次加载图像,然后从中切割出精灵。与独立文件相比,您节省了从磁盘加载所有文件所需的时间,并节省了存储图像的内存。但是在我看来,超过某个点,这种优势将不再真实,对吧?我的想法是,如果纹理集非常巨大,您将浪费很多内存来存储它,并且其中一些精灵可能不会被频繁使用。
那什么是最好的方法?分成多个精灵?逐级分离?或者其他什么?
无论如何,我的问题是:什么是以像素为单位的最大纹理集大小,才能被认为是有利的?
GL_MAX_TEXTURE_SIZE
xGL_MAX_TEXTURE_SIZE
以下。一个非常现实的问题是,在 OpenGL ES 中纹理不能“部分存在”(你标记了错误版本的 GL),因此你不想使用 MAX SIZE 纹理,在空间中浪费 90% 的内存,或者强制让几乎从不被引用的纹理保持存在,只是因为其他更常见的纹理总是被引用。这时候,你开始撤销单个纹理缓存的好处。 - Andon M. Coleman