我正在尝试使用Scenekit,当我尝试在半透明对象后面渲染粒子时,我遇到了一个问题。它们只是在场景中的其他对象进行渲染时才会渲染。
在此图片上,所有粒子都位于半透明盒子的前面,后面的所有粒子都不会显示。您可以看到球体已正确显示,并且覆盖部分的颜色会减弱。我希望粒子能够做到这一点,但是为了使粒子系统高效,框架的渲染选择可能使这种行为正常吗?
我试过google / stackoverflow它,但似乎scenekit不是一个很好的主题。
答案 0 :(得分:2)
半透明度在很大程度上取决于绘制顺序。使用Alpha混合时,渲染器会读取帧缓冲区中的当前值,并在这些值的顶部混合半透明颜色。
这意味着应首先绘制不透明对象,并从后向前绘制半透明对象。如果在半透明对象之后绘制不透明对象,则渲染器不会混合当前颜色。
使用SceneKit,绘制顺序可以由场景节点上的renderingOrder
属性控制。
节点的内容相对于其他节点的内容的顺序 节点