首页 > 解决方案 > SCNParticleSystem 以错误的方式部分隐藏或遮挡

问题描述

我对粒子系统有疑问,在极少数情况下,它可能会以错误的方式被遮挡。您在打印屏幕上看到的粒子系统是一个球体(具有不可见材料,材料透明度 = 0.0),从其表面发射粒子。就像每秒 250 个粒子 - 没有魔法 - 粒子系统按应有的 99% 工作。

您还会看到一个直径非常大的地板(即 SCNPlane),例如 100m x 100m。当相机飞过并且视角发生一点变化时会发生遮挡,因为相机移动平稳。根据相机角度,它可能会发生 - 正如您在第二张图像中看到的那样 - 粒子系统以错误的方式被部分遮挡,就像它会留在地平线后面 - 但它不会 - 它在地板上方 2m 处徘徊并且有半径1m。

有没有人遇到过类似的问题?有没有什么办法可以在所有情况下(从所有视角)正确渲染。

有时粒子系统甚至完全消失。i.Ex 当相机从上方 (20m) 直接观察粒子系统时。

良好的粒子系统 坏粒子系统

(场景使用 SceneKit 使用基于物理的渲染 - 背景是一个简单的天空盒)

标签: iosswiftscenekitparticle-systempbr

解决方案


你问有没有人遇到过类似的问题?我可以回答是的!

根据视点(相机位置)和附加 SCNParticleSystem 的对象,我得到了发射粒子的奇怪遮挡。

我没有 SCNPlane,但我在场景周围有一个大的 SCNSphere,显示 360 度视频。如果我移除球体,则该错误不再发生。

这可能是 iOS 14.x 和 macOS 11.2 的回归,因为在 iOS 13.6.1 下运行的同一个应用程序没有显示问题!


推荐阅读