2016-07-28 3 views
0

Эта картина - моя модель JSON.Как я могу изменить прозрачность модели JSON в сцене Three.js?

painting

Я понимаю, что я могу изменить прозрачность путем изменения «прозрачны»: правда, и «прозрачность»: 0.5 в файле формата JSON.

Однако я хочу изменить непрозрачность модели после того, как модель 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

Это действительно работает! ! Большое спасибо! –

Смежные вопросы