2014-05-21 1 views
1

로드/가져 오기 된 오브젝트에서면의 색상을 변경할 수 있다는 것을 알고 있습니다. 하지만 블렌더 모델을 JSON 형식이나 OBJ 형식으로 내보내는 경우 얼굴 그룹을 만들고 런타임에 색상을 변경하는지 알고 싶습니다. 이 솔루션은 텍스처를 피하는 것입니다. 왜냐하면 내 지오메트리가 매우 간단하기 때문입니다.얼굴 그룹의 색상 변경

답변

3

기본적으로 JSON을 사용하면 블렌더 밖으로 자료를 내보낼 수 있습니다. MeshFaceMaterials를 조작하면 메쉬 그룹에 링크 된 재료를 조작하게됩니다.

블렌더의 JSON 내보내기에는 메쉬 그룹의 재료가 포함됩니다. jsonLoader의 콜백 함수에서 이들을 조작 할 수 있습니다.

var mesh; 

jsonLoader.load(url, function(geometry, materials) { 
    mesh = new THREE.Mesh(geometry, new THREE.MeshFaceMaterial(materials)); 

    /* 
    The MeshFaceMaterial contains the exported materials from blender. 
    If you manipulate one entry of the material array, every object that uses 
    this material, will display the changes. 
    */ 
    mesh.material.materials[0].color.setHex(0xff0000); 

    scene.add(mesh); 
});