Tag: 不足场景包

使用高分辨率纹理优化SceneKit性能

我是一个相当有经验的iOS开发人员,但总共是一个SceneKit新手,试图在一个基本的应用程序中模拟一些行星。 为此,我使用火星,金星等高分辨率的正常和散射图,应用于基本领域。 他们工作! 他们看起来真棒,正是我想要的。 问题是,我正因为质量/记忆的折衷而死亡 。 我可以缩小纹理的尺寸以减less内存占用,但低于一定的分辨率时,结果(特别是法线贴图)开始变得非常糟糕和可怕。 该应用程序需要能够至less放大到行星是屏幕宽度的地方,但要保持山区和山谷的任何脆度,我需要使用一个约6000×3000的PNG法线贴图(上图)。我可以缩放漫reflection地图的方式下降到1000 x 500左右,但即使如此, 我从一个单一的球体周期性的记忆崩溃轻轻旋转,一个单一的光线,没有背景,没有物理,没有其他几何。 现在, 我知道这是一个超高分辨率的法线贴图。 我知道了。 但与此同时,这只是一个领域,什么都不做。 这甚至没有接近其他应用程序完美执行的一些复杂性,即使有一些非常细腻的纹理也是如此。 似乎必须有一些方法可以获得单个对象的高细节表面纹理,而不会崩溃应用程序。 所以,作为一个SceneKit的新手,我想知道: 在没有使用全部内存的情况下,获得好的SceneKit纹理质量有什么技巧吗? 也许是一种处理图像纹理,重新编码文件,改变场景/节点设置等的方式? 任何方式都可以用较小的图像获得清晰的质量,或者使用相同的图像来降低内存使用率? 我很高兴地引用一些代码,但是现在没有太多可以显示的东西。 我将这些纹理以标准的方式应用到SceneKit节点,并且工作正常。 我只是因为缺乏记忆力或缺乏图像质量而死亡。 谁能帮我吗?