【问题标题】:three.js OBJLoader and precompressed gzip obj not loading三.js OBJLoader 和预压缩的 gzip obj 未加载
【发布时间】:2015-08-31 15:02:03
【问题描述】:

库可能不支持此功能。只是想知道是否有人遇到过这个。我试过加载一个obj,没有问题。如果我预压缩为 gzip 格式,它将不会加载,并且它的回调永远不会被调用。很好地压缩 obj 文件,因为它们得到了很好的压缩。

代码没有什么特别之处。

var loader = new THREE.OBJLoader(manager);
loader.load(meshUrl, function (sceneObject) {
    sceneObject.traverse(function (child) {
        if (child instanceof THREE.Mesh) {
            child.material = material;
        }
    });
}, onProgress, onError);

更新

meshUrl 如果指向一个未压缩的 obj 文件的外部 url,则加载正常。 onProgressed 调用并按您预期的方式运行。 如果指向同一个 obj 的预压缩 gzip 版本,则会调用 onProgress 方法,但 progress.total 始终为 0,这导致我的代码无法正常运行。

已修复,现在可以更好地处理进度

【问题讨论】:

  • 问题是什么?是否有一些导致问题的代码可以向我们展示?
  • 见我上面的编辑。搞定了,谢谢。

标签: three.js


【解决方案1】:

讨厌回答我自己的问题,但事实证明 onProgress 仍然被调用,如果内容被压缩,则总值始终为 0。所以解决方案是将总数存储在其他地方,在这种情况下,加载引用的 url 的 db 和以这种方式加载的计算百分比。 加上进度参数有一个 lengthComputable 布尔值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多