我正在使用Unity3d(4.3.1)和NGUI来创建一个2D(iOS)应用程序。另外,我需要使用大量全屏图像(大约100张图像,大小为2048x1536),例如Gallery。
现在我使用GUI类型,覆盖iPhone,最大尺寸为2048,压缩质量:正常。我正在使用带有Unlit / Transparent着色器的UITexture
来显示它们。
但是,在项目中大约40个图像后,XCode会返回terminated due to memory
错误。所以问题是,我需要什么类型的图像,以及使它们有效的偏好?
我正在使用iPad 3作为XCode 5.1.1的测试设备。我会感谢任何帮助!
答案 0 :(得分:2)
另外,我需要使用大量全屏图像(大约100张图像,大小为2048x1536),例如Gallery。
我认为您的2048x2048尺寸图像使用非常大的内存区域。基本上,2048图像使用16MB内存。所以,这种情况需要使用大约1600MB的内存!正常应用程序不超过大约200 MB。
所以,我认为你需要使用内存来减少:
请记住,此纹理将按统一扩展2048x2048。(http://www.opengl.org/wiki/NPOT_Texture)因此,如果要将文件大小减小到1500x1000,则应用程序仍使用2048x2048图像。但是如果你可以将文件大小减小到1024x1024,那就去做吧。 1024图像只使用4 MB内存。
如果可以使用纹理压缩。用它。 PVRTC 4位(https://docs.unity3d.com/Documentation/Manual/ReducingFilesize.html)压缩使文件大小为真实颜色的1/8。内存大小也将减少。(可能减少到一半)
如果您的应用程序未显示所有图像,请动态加载图像。用拇指钉。
答案 1 :(得分:0)
如果你想制作一个类似画廊的应用程序来渲染照片,你可以尝试不同的方法:
答案 2 :(得分:-3)
最好的方法是使用较小的纹理。在ipad中你需要一个放大镜来真正体会1024x1024和更大纹理之间的区别。请记住,ipad屏幕比计算机屏幕小(7“~10”)并且启用过滤功能很难区分。
如果由于某些其他原因(缩放或类似)仍然需要管理员如此大的纹理,我推荐您采用以下方法之一:
如果可能,请始终避免使用如此大的纹理。