Adr*_*von 11 augmented-reality ios scenekit swift arkit
我正在研究ARKit项目4个月了.我注意到在将一个子项添加到我的场景rootNode时,会有一个FPS丢弃.该设备冻结不到一秒钟.我做了很多研究和试验,注意到所有Apple的代码示例在放置对象时都会使这个FPS下降.无论是直接添加节点(scene.rootNode.addChild(child))还是在不同阶段(didUpdateAtTime,didApplyAnimations等等)的渲染器循环中添加节点都无关紧要.我发现一旦将一个对象添加到场景中,下一个添加的对象将立即呈现.我使用在SceneKit编辑器中创建的3D模型,克隆它以生成我的不同节点,然后将它们添加为子节点.我在放置物体之前做了这个装载工作.
仪器显示渲染器循环在冻结期间忙.
我找到的唯一解决方案是在开始整个体验之前将我的节点添加到加载屏幕后面的场景中.
这是游戏编程中使用它们之前渲染节点的正常行为吗?
多谢你们
随着ARKit 3.0及其卫星 \xe2\x80\x93 RealityKit的发布(具有优化渲染引擎和更改场景层次结构的框架,它是用 Swift 编写的,因此没有 Objective-C 绑定),一个 drop-frame,当添加一个孩子时,减少到一个难以察觉的值。
\n\n对于采用 7 nm 工艺制造的处理器A12 Bionic 和A13 Bionic 的设备来说,这种可预测的行为尤其如此(当然,因为它们拥有最新一代的神经引擎和强大的 GPU)ARKit3。RealityKit
对于处理器功能较弱的设备(A9、A10、A11),建议使用每个模型的多边形总数不超过 10K 的 3D 模型,并使用常用的着色器,例如.blinn或.phong(不是 PBR)。
我相信对于使用游戏引擎的游戏和应用程序来说,在使用它们之前首先将所有必要的游戏资源(如 3D 模型、纹理、声音文件等)加载(或缓存)到 RAM 中是很常见的做法。欲了解更多详细信息,请阅读这篇文章和这篇文章。
\n\n然而,值得一提的是,AR 游戏与 VR 游戏不同,它消耗的处理能力要高得多,因此需要仔细优化。所以,你是完全正确的,在使用节点之前渲染节点,这是游戏编程中的正常行为。
\n| 归档时间: |
|
| 查看次数: |
459 次 |
| 最近记录: |