我希望经常用三个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
仍为黑色。
我怎么能摆脱这种闪光?
答案 0 :(得分:0)
将材质更新粘贴到loadTexture()中的匿名回调中,闪烁/闪烁停止
THREE.ImageUtils.loadTexture(pullImg,{},function(){
planeMesh.material.map = tmp;
planeMesh.material.needsUpdate = true;
});