我正在从PLY文件(超过60Mb)加载一个非常复杂的3D模型。在我的项目中,我需要使用轨道控制来移动对象。显然,由于文件很大,一些联谊会的操作速度非常缓慢。为了加快速度,我试图将我的几何体转换为具有以下代码行的Buffer几何体:
this.loader.load('assets/data/GuyFawkesMask.ply', function (geometry) {
var bufferGeometry = new THREE.BufferGeometry().fromGeometry( geometry );
console.log(bufferGeometry);
// Create object
let object =
new THREE.Mesh(bufferGeometry,
new THREE.MeshPhongMaterial(
{
color: 0xFFFFFF,
//vertexColors: THREE.VertexColors,
shading: THREE.FlatShading,
shininess: 0
})
);
_this.add(object);
});
但是我收到以下错误:
TypeError:无法读取未定义的属性“0” 在DirectGeometry.fromGeometry(three.module.js:12219) 在BufferGeometry.fromGeometry(three.module.js:14307) 在threed-viewer.component.ts:379 在index.js:52 在XMLHttpRequest。 (three.module.js:29263) 在ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask(zone.js:367) at Object.onInvokeTask(ng_zone.js:264) 在ZoneDelegate.webpackJsonp.818.ZoneDelegate.invokeTask(zone.js:366) 在Zone.webpackJsonp.818.Zone.runTask(zone.js:166) 在XMLHttpRequest.ZoneTask.invoke(zone.js:420)
有什么想法吗?
谢谢,
恐龙
答案 0 :(得分:0)
发布囚犯849评论(作为答案)以供将来参考:
如果我做对了,请查看PLYLoader.js的源代码 几何,回调函数返回,已经是 THREE.BufferGeometry()