2015-01-22 3 views
3

Я использую STLLoader.js для рисования компонентов. Каждый компонент отображается правильно с одним определенным цветом, но это не выглядит как компонент реального мира.Проблемы с файловыми файлами STL

enter image description here

Над изображения является реализация моего Three.js с помощью STLLoader.js (Binary файл STL используется), как я прочитал этот формат поддерживает цвета компонентов.

Ниже изображено одно из моих оконных программ, и там я использовал файл Step. Я хочу, чтобы компонент выглядел так же, как в нижнем изображении, поэтому он выглядит как компонент реального мира.

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 Я не уверен, что понимаю вопрос. Является ли [это] (http://ar3f.in/goochShading.html) затенением, которое вы хотите достичь? – WestLangley

ответ

0

STEP-файлы обычно содержат геометрию BREP, и вам необходимо ядро ​​САПР для преобразования BREP в сетку. Взгляните на BRL-CAD, FreeCAD, pythonOCC и OCE/OCCT для ядер САПР и meshlab для преобразования сеток.

+1

Я уже использовал программное обеспечение FreeCad для скрытого STEP для сетки (STL, OBJ, PLY и т. Д.). После преобразования формы STEP в другой формат конвертированный файл поддерживает цвет. Он поддерживает только один цвет, который является основной проблемой. –

0

Вам нужно выбрать формат файла, который позволяет указать цвет за треугольник, а не только на сетку. Насколько мне известно, это работает с vrml, который может быть экспортирован FreeCAD.

Идея Annother состоит в том, чтобы разделить вашу часть на несколько и экспортировать каждую область цвета в виде одиночной сетки с цветом.

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