如何从Three.js中上传的obj文件中获取顶点

时间:2015-08-02 05:52:34

标签: javascript three.js

我正在为WebGL和Three.js开发的体积渲染工具上传一系列.obj和.mtl文件。在代码的一部分中,我使用OBJMTLLoader上传文件:

 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);

但它不起作用。如果你能帮助我,我将非常感激。

提前致谢。

1 个答案:

答案 0 :(得分:3)

three.js中导入的3d模型的节点结构取决于OBJ文件的结构以及oghttp://www.fileformat.info/format/wavefrontobj/egff.htm#WAVEOBJ-DMYID.2)等分组元素。

您可以使用浏览器调试器来了解three.js如何构建您的结构。在我的情况下(我在OBJ文件中声明了几个对象),结构如下所示:

model(THREE.Group)> children(Array)> child [i](THREE.Object3D)> children(Array)>孩子[j](THREE.Mesh)>几何(THREE.Geometry)>顶点(数组)

在这里,您可以访问object3d i中的Mesh j的顶点k:

var vertexK = object.children[i].children[j].geometry.vertices[k];