2014-06-21 40 views
0

我正在寻找频繁更新三个j中图像源的材质纹理。THREE.loadTexture()会导致在setInterval()中闪烁更新

我可以通过调用做到这一点在我的init()

setInterval(function(){ 
    var pullImg = $('#frame_loader').attr('src'); 
    var tmp = THREE.ImageUtils.loadTexture(pullImg); 
    planeMesh.material.map = tmp; 
    planeMesh.material.needsUpdate = true; 
},100); 

然而,这导致了很多浮华的下面。

我推理说,使这个异步渲染循环是罪魁祸首。

但是,当我尝试将setInterval()的上述内容迁移到render()时,纹理未应用。 planeMesh保持黑色。

我该如何摆脱这种闪烁?

回答

0

Ahhhh,我没有等待纹理加载。

棒材料更新成在loadTexture(匿名回叫)和闪光/闪烁停止

THREE.ImageUtils.loadTexture(pullImg,{},function(){ 
    planeMesh.material.map = tmp; 
    planeMesh.material.needsUpdate = true; 
});