THREE.OBJLoader2.WWOBJLoader2的纹理和材料加载问题

时间:2017-08-14 19:53:25

标签: 3d three.js

我正在使用three.js在我的网络应用程序中包含3D模型(OBJ + MTL格式)。 3D模型的大小非常大(35-70MB),因此我需要使用Web worker加载它们以避免冻结网页。我已经使用THREE.OBJLoader2.WWOBJLoader2尝试了基于Web worker的方法,但只有一个纹理应用于3D模型。我尝试使用不同的3D模型,结果是一样的。

reader.addEventListener( 'load', function ( event ) {

    var uint8ArrayNew  = new Uint8Array(event.target.result);
    objBuffer = uint8ArrayNew;

    initPostGL();
    prepData = new THREE.OBJLoader2.WWOBJLoader2.PrepDataArrayBuffer(
        workerInput.obj,    // overall model name
        objBuffer,          // OBJ file as arrayBuffer
        workerInput.path,   // Texture path
        mtlString           // MTL as string
    );

    objectGroup = new THREE.Group();
    objectGroup.name = workerInput.obj;

    prepData.setSceneGraphBaseNode( objectGroup );
    prepData.setStreamMeshes( true );
    wwObjLoader2.setDebug(false);
    wwObjLoader2.prepareRun( prepData );
    wwObjLoader2.run();

}, false );
reader.readAsArrayBuffer( objectAsBuffer );

以下是OBJ文件的链接: https://www.dropbox.com/s/95l3cwv68a0r5hi/SampleObjMtlModel.zip?dl=0

rendering result (red circle shows the loaded texture)

1 个答案:

答案 0 :(得分:0)

问题在于现在解决的THREE.OBJLoader2.WWOBJLoader2库。如需参考,请访问https://github.com/mrdoob/three.js/pull/11955