【发布时间】:2013-09-10 12:49:32
【问题描述】:
在我的应用程序中,我遇到了 z 缓冲区问题。我有一个 ParticleSystem,其中的点具有看起来像球体的纹理。但是有两个问题我不能同时解决....
要么球体在 z 缓冲区中正确排序但不透明,要么它们是透明但未正确排序!
请看看我的JSfiddle。 (基于来自 mrdoob 的 this example)
在原始示例中,一切看起来都很好。但正如你在我的小提琴中看到的那样,纹理不是透明的,所以隐藏了它后面的部分粒子。我只从Geometry 更改为BufferGeometry,因为在我的应用程序中我必须使用它来避免性能问题。您可以通过在小提琴中更改我的 cmets 在这两者之间切换。通过在Geometry 和BufferGeometry 之间切换,您可以看到 z 缓冲区正在中断。
我在互联网的某个地方找到了这个“解决方案”:
depthWrite : false
我添加到材料中。然后粒子看起来不错,但 z 缓冲区不正确。 这让我发疯了......无论如何我发现我的几何类型是问题所在。
那么为什么 mrdoob 的示例不适用于 BufferGeometry?我该怎么做才能在我的系统中获得正确排序和透明的粒子?
【问题讨论】:
标签: javascript three.js particle-system