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
Javascript r85中的Three.js多材质实现_Javascript_Three.js - Fatal编程技术网

Javascript r85中的Three.js多材质实现

Javascript r85中的Three.js多材质实现,javascript,three.js,Javascript,Three.js,我正在尝试将多材质迁移到r85,但似乎看不到任何结果 以前我有: mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ material1, material2 ] ); mesh.children[1].material.transparent = true; 现在我做到了: materials = [ material1, material2 ]; mesh = new THREE.Mesh( geometry, m

我正在尝试将多材质迁移到r85,但似乎看不到任何结果

以前我有:

mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ material1, material2 ] );
mesh.children[1].material.transparent = true;

现在我做到了:

materials = [ material1, material2 ];
mesh = new THREE.Mesh( geometry, materials );
material2.transparent = true;


但我不能同时看到这两种材料。为什么?

THREE.Mesh()
不接受第二个参数中的材质数组,应该只有一种材质(在中表示)。使用
THREE.SceneUtils.createMultiMaterialObject()
的方法在您的钢笔示例中非常适合我。您确定吗?请参考r85:A-ha中的此更新,如果我没有弄错的话,
MultiMaterial
用于为网格的面指定不同的材质。不能将两种材质指定给同一个面
createMultiMaterialObject()
工作方式不同,用途也不同:它创建一组具有相同几何体但具有不同材质的对象(其中一种材质必须是透明的)。因此,我仍然确信(尽管我不坚持)正确的方法是使用
createMultiMaterialObject
。关于其他选项,请参考此Doh!出于某种原因,我认为这已经解决了在同一个面上的材料分层问题。我想,我必须给
ShaderMaterial
一些爱。还有一个例子: