为什么纹理大小会改变?

时间:2014-04-26 21:03:41

标签: unity3d textures

我做了一个小的png(100x30)并在Unity中添加了它作为纹理。我还将它添加到脚本中,以便我可以轮询它,但是如果我打印出它的宽度和高度,它现在表示它的128x32。发生了什么?

我试图调整相机,但它似乎与它没有任何关系。任何线索?

1 个答案:

答案 0 :(得分:2)

出于性能原因,通常纹理在两侧都缩放到2的幂。

例如,如果GPU可以假设您正在使用POT纹理,那么乘法除法会更快。即使 mipmaps 生成过程依赖于此,因为除以2也不会产生余数。

旧GPU(我不确切地知道,但现在甚至可能是几个移动GPU)需要严格的POT纹理。

默认情况下,Unity会尝试将纹理缩放到2的幂。您可以禁用或调整将texture import settings切换为"Advanced"的设置。

有关详细信息,请查看doc

请注意,通常只需要GUI的NPOT纹理,您需要在屏幕上精确控制分辨率,并且不使用mipmap。对于3D场景中的所有内容,2的功率表现更好。