2015-08-02 2 views
3

Я загружаю серию файлов .obj и .mtl для инструмента для создания тома, разработанного WebGL и Three.js. В части кода я использую OBJMTLLoader загрузить файлы:Как получить вершины из загруженного файла obj в файле Three.js

scapula = new THREE.OBJMTLLoader(); 
scapula.load('obj/scapulaTWO.obj', 'obj/scapulaTWO.mtl', 
    function (object) { 
       object.name = "scapula"; 
       object.scale.set (4,4,4); 
       vertices = object.geometry.vertices; 
       scene.add(object); 
    }); 

Однако я не могу получить доступ к вершинам. Отладчик говорит, что object.geometry не определена. Я также пробовал

vertices = new THREE.Mesh(object); 

но это не сработало. Я был бы очень признателен, если бы вы могли мне помочь.

Заранее спасибо.

ответ

3

Структура узла импортированной 3d-модели в файле three.js зависит от структуры файла OBJ и элементов группировки, таких как o или g (http://www.fileformat.info/format/wavefrontobj/egff.htm#WAVEOBJ-DMYID.2).

Вы можете использовать отладчик вашего браузера, чтобы узнать, как построили вашу структуру three.js. В моем случае (где у меня есть несколько объектов, объявленных в OBJ-файле) структура выглядит так:

модель (THREE.Group)> дети (массив)> дочерние [i] (THREE.Object3D)> дети (массив)> ребенок [J] (THREE.Mesh)> геометрия (THREE.Geometry)> вершины (Array)

Здесь вы получаете доступ к вершине к сетке J в Object3D я:

var vertexK = object.children[i].children[j].geometry.vertices[k]; 
Смежные вопросы