저는 초보자 인 three.js
을 사용하고 있습니다. 하나의 단일 물체에 두 개의 물질을 정의하려고합니다. 두 개의 물체를 visibilty 플래그를 사용하여 교대로 만들었지 만 성공하지 못했습니다. 다른 방법이 있습니까, 아니면이 작업을 수행 할 수 있습니까?하나의 물체에 교번하는 물질
var materials = [
new THREE.MeshPhongMaterial({ color: 0x00ff00,visible:true, shininess: 1 }),
new THREE.MeshPhongMaterial({ color: 0xff0000,visible:false, shininess: 1 })
];
obj= THREE.SceneUtils.createMultiMaterialObject(geometry, materials);
scene.add(obj);
scene.traverse(function (node){
if(node instanceof THREE.Mesh) {
node.visible =!node.visible;
}
});
내가 entually aplly이 나는 scene.traverse이 자료에 대한 가시성을 적용하려는 것 같습니다
고마워요, 그 속임수를했습니다. .children []으로 각 머티리얼을 가져올 수 있으며 머티리얼의 매개 변수를 변경할 수 있습니까? –
물론입니다! '.material' 속성을 통해 메쉬의 재질에 접근 할 수 있습니다. 예를 들어,'var materialOfMesh2 = obj.children [1 ].material'. 거기에서 다음과 같은 재질 속성을 변경할 수 있습니다 :'materialOfMesh2.color.setRGB (1, 0, 0);'중단 점과 브라우저 개발자 도구 (일반적으로 F12)를 사용하여 객체의 다양한 속성을 탐색하고, 더 자세한 정보는 THREE.js 문서를 참조하십시오. – TheJim01
감사합니다. 큰 도움이되었습니다! –