Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js-双面半透明材质只能从某些角度工作_Three.js_Camera_Transparency_Angle - Fatal编程技术网

Three.js-双面半透明材质只能从某些角度工作

Three.js-双面半透明材质只能从某些角度工作,three.js,camera,transparency,angle,Three.js,Camera,Transparency,Angle,我目前正在使用three.js,并尝试使用半透明材质创建一个可以从各个角度查看的3D体验。我注意到,根据摄影机角度的不同,只有网格的某些部分是半透明的,并且会显示它们后面的内容。在下面的示例中,我创建了两个半圆柱体,并将相同的透明材质应用于stack overflow徽标。左侧的半圆柱体正确地显示了最近表面上的徽标,以及其后面的表面。右侧的半圆柱体仅在最近的曲面上显示徽标,无法渲染包裹在其后面的徽标。但是,它会正确渲染背景图像,因此材质仍然被正确视为透明: 如果我将轨道相机旋转180度,原先看

我目前正在使用three.js,并尝试使用半透明材质创建一个可以从各个角度查看的3D体验。我注意到,根据摄影机角度的不同,只有网格的某些部分是半透明的,并且会显示它们后面的内容。在下面的示例中,我创建了两个半圆柱体,并将相同的透明材质应用于stack overflow徽标。左侧的半圆柱体正确地显示了最近表面上的徽标,以及其后面的表面。右侧的半圆柱体仅在最近的曲面上显示徽标,无法渲染包裹在其后面的徽标。但是,它会正确渲染背景图像,因此材质仍然被正确视为透明:

如果我将轨道相机旋转180度,原先看不透的一侧现在可以工作了,而另一侧表现出错误的行为。这让我相信它与相机位置/深度排序有关。本例中的材质是标准MeshPhongMaterial,透明设置为true,侧面设置为双面,透明堆栈溢出徽标的单个贴图。该几何体由开口圆柱几何体构成。任何帮助都将不胜感激

可能是的副本:。或者,只需尝试
material.depthWrite=false
。很可能是的副本:。或者,只需尝试
material.depthWrite=false