Javascript r85中的Three.js多材质实现
我正在尝试将多材质迁移到r85,但似乎看不到任何结果 以前我有: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
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
一些爱。还有一个例子: