2016-07-28 4 views
0

この絵は私のJSONモデルです。 JSONファイルで0.5:真、および「不透明度」:Three.jsシーンでJSONモデルの透明度を変更するにはどうすればよいですか?

painting

は、私が「透明」で修正することにより、透明度を変更することができることを理解しています。

しかし、JSONモデルがThree.jsシーンに読み込まれた後、モデルの不透明度を変更したいとします。 .....

mesh.material.transparent =真

私はメソッドを使用しますが、それはうまくいきませんでした。 mesh.material.opacity = 0.1;

ここは私のコードです。

私は本当にこの質問の答えを知りたい
jsonLoader2.load("models/pic.json", addPicToScn); 

function addPicToScn(geometry, material) { 
    var mtl = new THREE.MeshFaceMaterial(material); 
    var mesh = new THREE.Mesh(geometry, mtl); 
    mesh.scale.set(1.3, 1.3, 1.3); 
    mesh.material.transparent = true; 
    mesh.material.opacity = 0.1; 
    mesh.castShadow = true; 
    mesh.receiveShadow = true; 
    mesh.rotation.set(2.8*Math.PI/5, 0, -Math.PI/2); 
    mesh.position.set(0, 6, 21.8); 
    scene.add(mesh); 
      } 

....

答えて

0

あなたはMeshFaceMaterialを使用しています。透明度を設定する場合は、MeshFaceMaterialではなく、モデルから素材に設定する必要があります。

次のようにコードは次のようになります。

jsonLoader2.load("models/pic.json", addPicToScn); 

function addPicToScn(geometry, material) { 
    var mtl = new THREE.MeshFaceMaterial(material); 
    var mesh = new THREE.Mesh(geometry, mtl); 
    mesh.scale.set(1.3, 1.3, 1.3); 
    mesh.material.materials.forEach(function(m){ 
     m.transparent = true; 
     m.opacity = 0.1; 
    }; 
    mesh.castShadow = true; 
    mesh.receiveShadow = true; 
    mesh.rotation.set(2.8*Math.PI/5, 0, -Math.PI/2); 
    mesh.position.set(0, 6, 21.8); 
    scene.add(mesh); 

}

+0

それは動作します! ! ありがとうございます! –

0

mesh.material.needsUpdate = true

を試してみて、見てみましょう:あなたのモデルが理由である複数の材料を生成https://github.com/mrdoob/three.js/wiki/Updates

+0

はご回答いただきありがとうございます! –

関連する問題