【问题标题】:Texture and material loading issue with THREE.OBJLoader2.WWOBJLoader2THREE.OBJLoader2.WWOBJLoader2 的纹理和材质加载问题
【发布时间】:2017-10-01 19:05:02
【问题描述】:

我正在使用 three.js 在我的 Web 应用程序中包含 3D 模型(OBJ + MTL 格式)。 3D 模型的大小非常大(35-70MB),所以我需要使用网络工作者加载它们以避免冻结网页。我已经使用 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)

【问题讨论】:

  • do not duplicate questions。改为改进问题。
  • 如果您认为存在three.js 错误,那么您可以在three.js github 站点上提交错误报告。
  • @WestLangley 我无法确认这是一个 three.js 错误,因为具有单一纹理的 3D 模型可以完美地使用这种方法。
  • 感谢您的解决方案。

标签: 3d three.js


【解决方案1】:

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

【讨论】:

  • 我刚刚回答这个问题是为了结束这个问题。
猜你喜欢
  • 2014-10-04
  • 2019-04-06
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 2018-03-12
  • 2012-11-20
  • 2021-12-27
  • 2021-06-24
相关资源
最近更新 更多