是否可以在场景套件中的半透明对象后面渲染粒子?

Xav*_*Xav 5 macos frameworks ios particle-system scenekit

我正在试用 Scenekit,当我尝试在半透明对象后面渲染粒子时遇到了一个问题。它们只是不渲染,而场景中的其他对象会渲染。

在此处输入图片说明

在这张图片上,所有粒子都在半透明框前面,后面的所有粒子都不显示。可以看到球体显示正确,被覆盖部分的颜色变淡了。我希望粒子也一样,但也许框架的渲染选择使粒子系统高效,使这种行为正常?

我试过 google/stackoverflow 它,但似乎scenekit 不是一个很好涵盖的主题。

Jus*_*ers 5

半透明在很大程度上取决于绘制顺序。通过 alpha 混合,渲染器读取帧缓冲区中的当前值,并在这些值之上混合半透明颜色。

这意味着应先绘制不透明对象,而应从后向前绘制半透明对象。如果在半透明对象之后绘制不透明对象,则渲染器没有当前颜色可供混合。

使用 SceneKit,绘制顺序可以由renderingOrder场景节点上的属性控制。

节点内容相对于其他节点的绘制顺序。

苹果文档