2015-01-22 10 views
3

STLLoader.js를 사용하여 구성 요소를 그립니다. 모든 구성 요소는 하나의 정의 된 색상으로 올바르게 렌더링되지만 실제 구성 요소처럼 보이지는 않습니다. 이미지 위STL 파일 판독기 문제

enter image description here

내가이 형식은 구성 요소의 색상을 지원 읽고으로 STLLoader.js를 사용하여 내 three.js를 구현 (사용 이진 STL 파일)입니다.

아래 이미지는 내 Windows 소프트웨어 중 하나이며 거기서 단계 파일을 사용했습니다. 아래 그림과 같이 구성 요소를 렌더링하여 실제 구성 요소처럼 보이게하고 싶습니다.

enter image description here

three.js를에서 정확한 색상 출력을 얻을 수있는 방법이 있습니까? 나는 많은 것을 수색했지만 그것을 구현할 방법을 얻지 못했다. 앞으로 나아갈 수있게 도와주세요.

 var loader = new THREE.STLLoader(); 
     loader.addEventListener('load', function (event) {    
      var material = new THREE.MeshPhongMaterial({ color: 0x75D3DC, ambient: 0x75D3DC, specular: 0x75D3DC, shininess: 200/*, vertexColors: THREE.VertexColors */}); 

      var mesh = new THREE.Mesh(geometry, material); 
      mesh.position.x = x - boardMaxX + w/2 ; 
      mesh.position.y = - 5 ; 
      mesh.position.z = z - boardMaxY + h/2 ; 

      mesh.rotation.set((rotation * Math.PI/180.0), 0, 0); 

      mesh.scale.set(2, 2, 2); 

      mesh.castShadow = true; 
      mesh.receiveShadow = true; 
      board.add(mesh); 
      objects.push(mesh); 

      i = i + 5; 
      componenetDraw(componentArray[i] * scaleX, -7, componentArray[i + 1] * scaleY, componentArray[i + 2], componentArray[i + 4]); 
     }); 

    loader.load(fileName); 
    } 

위의 코드는 읽기 STL 파일에 사용됩니다. 하지만 STEP 파일을 읽을 코드가 없습니다.

+1

STL 형식은 색상을 지원하지 않습니다. 로더와 아무 관련이 없습니다. – gaitat

+0

@gaitat 다른 파일 형식을 사용하여 동일한 작업을 수행 할 수있는 다른 방법이 있습니까? –

+1

@ Shiladittya 나는 그 질문을 이해할 수 있을지 확신하지 못한다. [this] (http://ar3f.in/goochShading.html) 달성하고자하는 음영입니까? – WestLangley

답변

0

STEP 파일에는 일반적으로 BREP 형상이 포함되어 있으며 BREP를 메쉬로 변환하려면 CAD 커널이 필요합니다. CAD 커널을위한 BRL-CAD, FreeCAD, pythonOCC, OCE/OCCT, 그리고 메쉬 변환을위한 meshlab을 살펴보십시오.

+1

난 이미 메쉬 (STL, OBJ, PLY 등)에 은밀 STEP에 FreeCad 소프트웨어를 사용했습니다. STEP에서 다른 형식으로 변환 한 후 변환 파일은 색상을 지원합니다. 그것의 주요 문제가 단 하나의 색상을 지원합니다. –

0

메시별로뿐만 아니라 삼각형 세트별로 색상을 지정할 수있는 파일 형식을 선택해야합니다. 필자의 지식으로는 FreeCAD로 내보낼 수있는 vrml에서 작동합니다.

다른 아이디어는 여러 부분으로 나누고 모든 색상 영역을 색상이있는 단일 메쉬로 내보내는 것입니다.