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