如何将纹理放在一个文件中(2的幂)

时间:2010-06-29 10:09:53

标签: graphics textures

我想创建2的幂的大纹理,并在这个文件中放入许多较小的纹理。 你知道,我有几个不是2的幂的纹理所以我不能把它们加载到我的程序中。我必须将它们放在一个文件中(例如512x512)。

你知道任何可以自动为我做的程序吗? 纹理的大小是否有限制?我可以使用例如8192x8192文件吗?或者我必须少用一些。

2 个答案:

答案 0 :(得分:0)

您正在寻找的关键字是纹理图集

最大纹理尺寸取决于GPU,8K在较新的卡上很好。然而,这样的纹理消耗了大量的VRAM(如果算上MIP,它会变得更糟)。因此,最好使用几个较小的纹理,并且只有那些你需要的(热)VRAM。

答案 1 :(得分:0)

有几个应用程序可以帮助您将图像打包到纹理图集中。 Zwoptex有免费的Flash版本和商业Mac应用。 TexturePacker有一个Mac和Windows应用程序,以及一个命令行版本,一些功能是免费的,有些功能需要付费许可证。它们将打包的图像输出到单个图像和相关的数据文件中,其中坐标是打包图像的位置。它们还可以修剪任何给定图像周围的透明区域(如果有的话),从而节省更多空间。

还有一些工具,一些开源,列在this question的答案中。

打包到一个纹理中的优点是可以节省空间,但是从纹理中绘制多个图像时OpenGL状态更改也更少,以获得更好的性能。