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 具有多重混合的三个js透明PNG_Three.js_Webgl - Fatal编程技术网

Three.js 具有多重混合的三个js透明PNG

Three.js 具有多重混合的三个js透明PNG,three.js,webgl,Three.js,Webgl,在一个Three.js项目中,我尝试将一个透明的PNG应用为带有多重混合的纹理 piano_scritta.material = new THREE.MeshPhongMaterial( { transparent:true, side:THREE.DoubleSide, map: new THREE.ImageUtils.loadTexture( src ) }); piano_scritta.material.blending = THREE.MultiplyBlending; 图像的透

在一个Three.js项目中,我尝试将一个透明的PNG应用为带有多重混合的纹理

piano_scritta.material = new THREE.MeshPhongMaterial( { transparent:true,  side:THREE.DoubleSide, map: new THREE.ImageUtils.loadTexture( src ) });
piano_scritta.material.blending = THREE.MultiplyBlending;
图像的透明部分显示为白色,边界周围有一种奇怪的效果。 我怎样才能让PNG在多重借贷模式下保持透明? 这里您可以看到一个示例:

编辑:我做了一个更改,得到了一个非常奇怪的结果,将不透明度:0指定给我得到的材质


PNG的黑色部分按预期消失,但透明部分仍为白色

我建议在处理透明度时使用
ShaderMaterial
。看看这个:在询问之前,我做了很多测试,ShaderMaterial可以提高透明度,但还有很多其他问题,我无法处理基础材质的envMap或反射率。此外,这是一个大型项目,运行时会有大量纹理和模型发生变化,而且都基于标准材质,因此修改项目结构是一件大事。