我正在为图形引擎开发一个关卡编辑器。最近,随着一个项目的扩展,我遇到了内存问题。特别是,水平相当大,需要加载大约300个不同大小的纹理。一些纹理非常像2048x2048,其他纹理更小,如256x256或512x512。无论如何,编辑器为此级别消耗了1.3gb的内存,并且因为它抛出内存异常而无法加载某些纹理。那么我有什么解决方案呢?
现在我能想到的唯一解决方案是将级别划分为更小的部分,并根据可见区域按需加载纹理。但我相信这会减慢在现场导航时的性能。有什么想法吗?在这个问题上,关于级别编辑应该有一些标准的方法。
答案 0 :(得分:3)
你基本上有两个选择
我在想,如果您的艺术方向与基于图块的方法没有真正相符,那么您将需要开始考虑方法#2。需要考虑的一些事情
答案 1 :(得分:1)
使用不同质量的纹理可能是一个好主意,如果你在远处使用64x64纹理,那么当你靠近时,请将其交换为128x128,256x256,512x512等...同时重新考虑使用2056x2056的纹理,因为它最好有4个1024x1024纹理:)。
(注意:生成mip-maps会部分执行此操作,但不会释放计算机上的内存)
编辑:也尝试打开DXT5纹理压缩,这可能会节省大量内存!