Ner*_*ken 5 memory out-of-memory uiimage ios scenekit
我是一个相当有经验的iOS开发人员,但是一个完整的SceneKit新手,试图在一个基本的应用程序中模拟一些行星.
为此,我正在使用适用于基本球体的高分辨率火星,金星等的普通和漫反射贴图.他们工作!它们看起来很棒,正是我想要的.
问题是,我被质量/内存权衡所打死.
我可以缩小纹理的尺寸以减少内存占用,但是在某个分辨率以下,结果(特别是法线贴图)开始变得非常糊涂和可怕.应用程序需要能够至少缩放到行星的屏幕宽度,但为了保持山脉和山谷的任何清脆度,我需要使用大约6000 x 3000的PNG法线贴图(上图).我可以缩放漫反射地图的方式下降到大约1000 x 500,但即使这样,我也会从单个球体轻轻旋转中获得周期性的记忆崩溃,只有一个光,没有背景,没有物理,没有其他几何.
现在,我知道这是一张超高分辨率的普通地图.我知道了.但与此同时,它只是一个领域,什么都不做.这甚至没有接近我见过的其他应用程序执行完美的复杂性,即使有一些非常详细的纹理.似乎必须有一些方法可以为单个对象获取高细节表面纹理,而不会使应用程序崩溃.
所以,作为一个完整的SceneKit新手,我想知道:有没有任何技巧可以获得良好的SceneKit纹理质量而不使用世界上所有的内存? 也许一种处理图像纹理,重新编码文件,更改场景/节点设置等的方法?任何方式都可以通过较小的图像获得清晰的质量,或者使用相同的图像降低内存使用率?
我很乐意引用一些代码,但现在没有太多要显示的.我以标准方式将纹理应用于SceneKit节点,并且它可以工作.我只是因缺乏记忆或缺乏图像质量而死亡.
谁能帮我吗?
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |