gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 04:56:44 24 4
gpt4 key购买 nike

我是一名相当有经验的 iOS 开发人员,但完全是 SceneKit 的新手,试图在一个基本的应用程序中模拟一些行星。

为此,我使用了应用于基本球体的火星、金星等高分辨率法线和漫反射贴图。他们工作!它们看起来棒极了,正是我想要的。

enter image description here enter image description here

问题是,质量/内存权衡让我丧命

我可以缩小纹理的尺寸以减少内存占用,但低于特定分辨率时,结果(尤其是法线贴图)开始看起来非常糊状和糟糕。该应用程序至少需要能够缩放到地球屏幕宽度的位置,但为了保持山脉和山谷的清晰度,我需要使用大约 6000 x 3000 的 PNG 法线贴图(上图)。我可以缩放漫反射贴图下降到大约 1000 x 500,但即便如此,我从一个轻轻旋转的球体中得到周期性的内存崩溃,只有一个光,没有背景,没有物理,也没有其他几何体。

现在,我知道那是一张超高分辨率的法线贴图。我得到它。但与此同时,它只是一个球体,什么都不做。这甚至比不上我见过的其他应用程序可以完美执行的某些复杂性,即使它们自己有一些非常详细的纹理。似乎必须有某种方法可以在不使应用程序崩溃的情况下获取单个对象的高细节表面纹理。

因此,作为一个 SceneKit 新手,我想知道:是否有任何技巧可以在不使用世界上所有内存的情况下获得良好的 SceneKit 纹理质量?也许是一种处理图像纹理的方法,重新编码文件,更改场景/节点设置等?有没有什么方法可以用较小的图像获得清晰的质量,或者用相同的图像降低内存使用量?

我很乐意引用一些代码,但现在没有太多可展示的。我以标准方式将纹理应用到 SceneKit 节点,它起作用了。我快要死于内存不足或图像质量差。

谁能帮帮我?

最佳答案

我认为这个想法是明智地分割球体纹理,因此它在任何时候都只显示大约 60 度的纹理,类似于缩放时以高分辨率显示图片的方式。我不确定该怎么做,但这是我的猜测。

关于ios - 使用高分辨率纹理优化 SceneKit 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32747531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com