Three.js - 精灵深度在r70 +中向后渲染

时间:2015-04-25 19:02:52

标签: javascript three.js webgl

对于精灵的z深度,r70 +看起来像是坏了。

这是jsfiddle,与r69完美配合。

除了使用r71之外,这是jsfiddle。 您现在可以看到,当场景旋转时,精灵的深度并不总是正确显示。有一半时间它们被旋转到具有错误z深度的视图中。

这是一个错误还是我需要添加的新内容,我错过了?

我已经尝试过以下常见命令的所有变体,似乎没有像过去那样全面工作。

var shaderMaterial = new THREE.ShaderMaterial({

    ...
    depthTest:      false,
    depthWrite:      false,
    transparent:    true
});

particleSystem.sortParticles = true;

我知道新的renderDepth,但是这个解决方案似乎是无关的,并没有解释为什么它会打破以前的行为。我们现在不需要为所有摄像机角度手动更新renderDepths吗?

1 个答案:

答案 0 :(得分:0)

PointCloud.sortParticles已在three.js r70中删除;见this commit

在原始示例中(没有透明度),您可以通过启用材料的深度测试来获得所需的行为:

var shaderMaterial = new THREE.ShaderMaterial({

    ...
    depthTest: true
});

在您更新的示例中(透明度),您需要在three.js r70中自行对粒子进行排序。

请注意,渲染THREE.Sprite对象时,three.js仍会处理z排序。这可能值得调查。