Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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
Javascript 使用alphaMap不会在我的材质中提供透明度_Javascript_Three.js_Alpha_Alphablending - Fatal编程技术网

Javascript 使用alphaMap不会在我的材质中提供透明度

Javascript 使用alphaMap不会在我的材质中提供透明度,javascript,three.js,alpha,alphablending,Javascript,Three.js,Alpha,Alphablending,我正在尝试创建链接曲面。我有两个纹理;具有白色背景(漫反射)金属链接金属外观的标准地图: 我还有一张阿尔法地图: 我正在尝试将这两种方法应用于MeshBasicMaterial,但运气不佳: var chainlinkMask = THREE.ImageUtils.loadTexture('textures/chainlink_Large-Panels_mask.png'); chainlinkMask.wrapS = THREE.RepeatWrapping; chainlinkMask.

我正在尝试创建链接曲面。我有两个纹理;具有白色背景(漫反射)金属链接金属外观的标准地图:

我还有一张阿尔法地图:

我正在尝试将这两种方法应用于
MeshBasicMaterial
,但运气不佳:

var chainlinkMask = THREE.ImageUtils.loadTexture('textures/chainlink_Large-Panels_mask.png');
chainlinkMask.wrapS = THREE.RepeatWrapping;
chainlinkMask.wrapT = THREE.RepeatWrapping;
chainlinkMask.repeat.set( 2, 2 );

var chainlinkDiffuse = THREE.ImageUtils.loadTexture('textures/chainlink_Large-Panels_Diffuse.png');
chainlinkDiffuse.wrapS = THREE.RepeatWrapping;
chainlinkDiffuse.wrapT = THREE.RepeatWrapping;
chainlinkDiffuse.repeat.set( 2, 2 );

material.map = chainlinkMask;
material.alphaMap = chainlinkDiffuse;
material.transparency = true;
material.side = THREE.DoubleSide;
这给了我以下信息:

如您所见,alpha贴图没有被应用

为什么不呢


非常感谢您的帮助。

尝试将
透明
参数设置为
而不是
透明

material.transparent = true;

如果使用alpha贴图,请在定义材质时使用以下两种图案之一:

alphaMap: texture,
transparent: true,

如果可能,请使用后者,并避免透明为真时可能出现的瑕疵


three.js r.85直接使用
材质。例如,透明的
会导致渲染问题。您有两个交叉平面,每个交叉平面都应用了
material.transparent=true
,以及
material.side=DoubleSide
。旋转它,您将看到渲染问题。 只需使用上面提到的解决方案@WestLangley

alphaMap: texture,
alphaTest: 0.5, // if transparent is false
transparent: false,