【发布时间】:2016-05-31 07:57:21
【问题描述】:
.load() 函数允许用户提供一个回调函数,以便在加载对象时执行。但是,似乎此回调是在加载 .obj 和 .mtl 文件之后执行的,但在解析 .mtl 并且存在纹理图像之前。这会导致在没有任何纹理的情况下渲染对象。有人知道这个问题的解决方案吗?
GitHub 上有一个issue 解决了这个问题,但我没有看到那里发布的解决方案。
OBJMTLLoader 示例:
var loader = new THREE.OBJMTLLoader();
loader.load( model_obj, model_mtl, function ( object ) {
object.position.y = y_init;
scene.add( object );
render();
document.body.classList.add('is-loaded');
}, onProgress, onError );
【问题讨论】:
-
你有例子吗?
-
@Vince 尝试过讨论中提到的任何选项吗? github.com/mrdoob/three.js/issues/1751
-
@pratikwebdev 如果可能的话,我更喜欢不需要修改 three.js 源代码的解决方案。
-
@OliverQueen 添加示例代码
-
你能用一个promise来等待整个东西加载吗?
标签: javascript three.js