THREE.loadTexture()导致setInterval()更新中的闪烁

时间:2014-06-21 21:38:39

标签: three.js

我希望经常用三个js中的图像源更新材质。

我可以通过在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仍为黑色。

我怎么能摆脱这种闪光?

1 个答案:

答案 0 :(得分:0)

啊,啊,我不是在等待纹理加载。

将材质更新粘贴到loadTexture()中的匿名回调中,闪烁/闪烁停止

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