Threejs objmtlloader黑色模型

时间:2014-03-25 21:24:24

标签: three.js rendering loader .obj

我是ThreeJS的新手,我做了这个示例,其中显示了我们的一个模型。 http://petrie3dtesting.museums.ucl.ac.uk/3DFootCover/index.html

我创建了一个Petrie3Dviewer,并在HTML页面中创建了一个查看器对象,该对象将.obj和.mtl文件作为输入。奇怪的是,对象显示黑色,然后当我开始交互时,纹理出现了。我尝试了所有我认为:不同的浏览器,使纹理更小,不同的计算机,没有任何东西我一直随机行为。 我主要试用FIrefox,Chrome。 似乎我需要在加载obj文件后强制渲染,但OBJMTLLoader.js不会为它提供任何事件。

非常感谢你的帮助。 最好, GC

1 个答案:

答案 0 :(得分:0)

您应该在this.DoRender函数中调用Animate来渲染帧。

this.Animate = function() { 
    this.orbitControls.update();
    this.Animate();
    requestAnimationFrame(this.Animate.bind(this));
}

仅当用户使用OrbitControls更改透视图时,才会调用渲染功能。并且因为您的纹理是异步加载的,所以在渲染帧时第一次没有准备好。