编程语言
首页 > 编程语言> > javascript-如何从Three.js中的上载obj文件获取顶点

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

作者:互联网

我正在上传一系列.obj和.mtl文件,用于由WebGL和Three.js开发的体积渲染工具.在代码的一部分中,我使用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);

但是没有用.如果您能帮助我,我将不胜感激.

提前致谢.

解决方法:

three.js中导入的3d模型的节点结构取决于OBJ文件的结构以及分组元素,例如o或g(http://www.fileformat.info/format/wavefrontobj/egff.htm#WAVEOBJ-DMYID.2).

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

型号(THREE.Group)>子级(数组)>子[i](THREE.Object3D)>子级(数组)>子[j](三个网格)>几何(THREE.Geometry)>顶点(数组)

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

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

标签:three-js,javascript
来源: https://codeday.me/bug/20191119/2039976.html