unity 如何处理不是2的幂次方的图片

首先要知道为什么untiy中的图片需要是2的N次方

第一:底层图形学只识别2的N次方的图片,OpenGL仅支持分辨率为2mx2n的纹理,非2的N次方的图片会转化为2的N次方的图片,这个转化的过程十分耗时

第二:ios pvrtc的原因,有些GUP不支持NPOT,遇到NPOT会有一个转换POT的过程,浪费性能

解决办法

第一:把不规则的图打成图集

第二:如果是一些NGUI的texture UGUI的RawImage 就尽量的按照最接近的尺寸来做 比如123*58那么让美术提供 128*64 的图,可以填充透明空白

第三:这种单独的大图直接使用unity的ASTC格式加载,不用原图保持2的N次方

ASTC一般UI使用 6*6 贴图使用8*8

iOS 上,苹果从 A8 处理器开始支持 ASTC 格式(即从 iphone6,iPad mini 4 开始支持),而以前的 iPhone 5s 和 iPad mini 3 及之前的设备都不支持。

Android 上,未来的压缩格式正在从 ETC2 转向 ASTC

2012年开始就支持了,现在应该没有那么次的机型了吧

上一篇:java – 是否可以为~100个常量创建一个位掩码?


下一篇:位屏蔽(javascript):如何检查所有标志