首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >TREE.OBJLoader2.WWOBJLoader 2的纹理和材料加载问题

TREE.OBJLoader2.WWOBJLoader 2的纹理和材料加载问题
EN

Stack Overflow用户
提问于 2017-08-14 19:53:25
回答 1查看 559关注 0票数 0

我使用three.js在我的web应用程序中包含3D模型(OBJ + MTL格式)。3D模型的大小非常大( 35-70MB ),所以我需要使用web工作者来加载它们,以避免冻结网页。我尝试了基于worker的方法,使用了THREE.OBJLoader2.WWOBJLoader 2,但是只有一个纹理被应用到3D模型中。我试过使用不同的3D模型,结果是一样的。

代码语言:javascript
运行
复制
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

呈现结果(红色圆圈显示加载的纹理)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-01 11:05:02

问题是TREE.OBJLoader2.WWOBJLoader 2库已经解决了。如需参考,请访问https://github.com/mrdoob/three.js/pull/11955

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45682075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档