Three.js 当网格不可见时,网格不透明度问题

Three.js 当网格不可见时,网格不透明度问题,three.js,Three.js,我创建了一个jsfiddle[]来演示这个问题 场景中有一个红色立方体,立方体内有许多粒子。下面是重现问题的步骤 1) 通过取消选中“控制面板”中的“可见”复选框,将多维数据集设置为不可见 2) 旋转立方体 3) 通过窗格中的不透明度控件增加不透明度 4) 将立方体设置为可见 现在立方体将变得完全不透明。我观察到,这个问题并不一致,但对我来说,大多数时候都会发生 这是API中的一个错误还是我的代码中有任何问题?在webGL中,透明度是偶然的。在本例中,透明对象相互竞争。一种解决方案是在着色器材质

我创建了一个jsfiddle[]来演示这个问题

场景中有一个红色立方体,立方体内有许多粒子。下面是重现问题的步骤

1) 通过取消选中“控制面板”中的“可见”复选框,将多维数据集设置为不可见

2) 旋转立方体

3) 通过窗格中的不透明度控件增加不透明度

4) 将立方体设置为可见

现在立方体将变得完全不透明。我观察到,这个问题并不一致,但对我来说,大多数时候都会发生


这是API中的一个错误还是我的代码中有任何问题?

在webGL中,透明度是偶然的。在本例中,透明对象相互竞争。一种解决方案是在
着色器材质
中将粒子的透明度设置为
false
,因此只有一个透明立方体。在那种情况下一切都正常


Fiddle:

这是否意味着场景中只有网格可以设置为透明。我需要处理一种情况,一次将多个网格设置为透明。如何处理这种情况?您可以拥有多个透明对象,并且可以通过设置
renderer.sortObjects=false
来控制渲染顺序。如果您想继续这样做,我建议您学习
webGLRenderer.js
,以便真正了解three.js如何处理透明度。