我是ThreeJS的新手,我做了这个示例,其中显示了我们的一个模型。 http://petrie3dtesting.museums.ucl.ac.uk/3DFootCover/index.html
我创建了一个Petrie3Dviewer,并在HTML页面中创建了一个查看器对象,该对象将.obj和.mtl文件作为输入。奇怪的是,对象显示黑色,然后当我开始交互时,纹理出现了。我尝试了所有我认为:不同的浏览器,使纹理更小,不同的计算机,没有任何东西我一直随机行为。 我主要试用FIrefox,Chrome。 似乎我需要在加载obj文件后强制渲染,但OBJMTLLoader.js不会为它提供任何事件。
非常感谢你的帮助。 最好, GC
答案 0 :(得分:0)
您应该在this.DoRender
函数中调用Animate
来渲染帧。
this.Animate = function() {
this.orbitControls.update();
this.Animate();
requestAnimationFrame(this.Animate.bind(this));
}
仅当用户使用OrbitControls
更改透视图时,才会调用渲染功能。并且因为您的纹理是异步加载的,所以在渲染帧时第一次没有准备好。