0

所以我正在为three.js 开发一个Tile Renderer,一切似乎都在工作。

它的作用方式如下:

a)创建一堆摄像机,b)在每个摄像机中渲染场景 c)创建一个“toDataURL”,并下载它。

一些代码:

  this.renderer.render( this.scene , this.camera );

  var imgData = this.renderer.domElement.toDataURL();      

  //this.imageData.push( imgData );

  var a = document.createElement('a');

  a.href = imgData;

  a.download = this.title + "_"+this.x+"_"+this.y+".png";
  a.click();

现在因为我多次这样做,(理想情况下是任意大的次数)。它最终可能会产生数百张图像。

这样做会使我的 chrome 标签崩溃。从字面上看,每次。我想知道是否有办法阻止这种情况发生?在我运行 chrome 时设置一个标志,或者对代码做一些事情。我尝试过为每个渲染调用设置超时(AKA 暂停渲染器,而不是渲染 1 个图像并每 10 秒保存一次),但即使这样似乎也不起作用。

您可以在此处查看崩溃:http: //cabbi.bo/ENOUGH/(按“p”尝试捕获图像,页面需要一点时间才能加载)。

预先感谢您的帮助!

艾萨克/卡比博

4

1 回答 1

4

在我的盒子上,将大图像保存为 PNG 会使 Chrome(OS X 10.10、Chrome 40)崩溃。将图像另存为 JPG可解决此处的问题。我猜PNG数据字符串太大了。

var imgData = renderer.domElement.toDataURL("image/jpeg");  
于 2015-02-20T19:11:38.840 回答