three.js OBJLoader和预压缩的gzip obj没有加载

时间:2015-08-31 02:39:13

标签: three.js

图书馆可能不支持此功能。只是想知道是否有人遇到过此事。我试过加载一个obj,没有问题。如果我预压缩为gzip格式,它将不会加载,并且永远不会调用它的回调。很高兴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,这导致我的代码放松。

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

1 个答案:

答案 0 :(得分:1)

讨厌回答我自己的问题但事实证明onProgress仍被调用,如果内容被gzip压缩,则总值为0。因此,解决方案是将总数存储在其他位置,在这种情况下,db将加载以此方式加载的引用url和calc百分比。 另外,progress参数有一个lengthComputable boolean。