0

在场景中,我只有透明对象,因此启用深度测试会导致对象相互隐藏。我知道深度测试不考虑任何透明度,它只是写入深度缓冲区,查看z. 那么如何正确渲染两个透明物体呢?

我这样做了,renderer.context.disable(renderer.context.DEPTH_TEST);但没有任何改变

我的具体问题的说明: 在此处输入图像描述

立方体是MeshLambertMaterial({color: ..., transparent: true, opacity: 0.6})

飞机是MeshLambertMaterial({color: ..., transparent: true, opacity: 0.4})

立方体是在平面之后渲染的,但是如果立方体是不透明的,那么整个立方体将被正确渲染而没有任何丢弃(还要查看它们也是不透明的点,因此是可见的)。

那么如何让它考虑透明度并且不关心渲染顺序以便两个透明对象不会相互隐藏呢?

4

1 回答 1

3

在three.js中,可以通过设置关闭深度测试

material.depthTest = false;

如果在更改相机位置时出现伪影,请不要感到惊讶。

您可能还想阅读这个答案

三.js r.80

于 2016-09-09T14:54:34.450 回答