Javascript 画布截图不工作

Javascript 画布截图不工作,javascript,canvas,webgl,screenshot,Javascript,Canvas,Webgl,Screenshot,不久前,我能够使用toDataURL功能从我的webGL 3D模型中拍摄屏幕截图,但突然这个停止工作,现在我无法从任何3D模型中获取图像 请参见下文了解更多信息: 三个例子: WebGL示例: 基本示例: 在前面的所有示例中,我没有得到图像,而是得到了黑色或透明的图像 2D: 只有2D示例返回了正确的图像 在前面的所有示例中,我都使用这个简单的方法来获取图像。 知道我做错了什么吗 我在MacBookPro上试过:Chrome和FireFox,在Windows8.1上

不久前,我能够使用
toDataURL
功能从我的webGL 3D模型中拍摄屏幕截图,但突然这个停止工作,现在我无法从任何3D模型中获取图像

请参见下文了解更多信息:

三个例子:
WebGL示例:
基本示例:
在前面的所有示例中,我没有得到图像,而是得到了黑色或透明的图像

2D:
只有2D示例返回了正确的图像

在前面的所有示例中,我都使用这个简单的方法来获取图像。 知道我做错了什么吗


我在MacBookPro上试过:Chrome和FireFox,在Windows8.1上的FireFox上也试过,我得到了同样的结果

下面是我如何在Chrome上进行测试的动画

我在我的Threejs应用程序中找到了解决此问题的方法,解决方法很简单,只需将标志设置为true,因此在我的Threejs实例中添加了
PreservedDrawingBuffer

var renderer   = new THREE.WebGLRenderer({
  preserveDrawingBuffer   : true   // required to support .toDataURL()
});
这是针对使用ThreeJs的模型的,所以我认为问题与配置设置有关,并且必须有一些使用普通WebGl或其他库的选项


谢谢你的阅读,我希望这对将来的人有所帮助。

你能发布相关的html+js吗?控制台
document.getElementsByTagName('canvas')[0]时,您会得到什么?
实际上这更像是一个全局问题,我所做的只是访问打开控制台的url,键入js行,我会在浏览器中打开一个base64图像链接,看看整个东西是base64还是图像类型附加在它前面。进一步尝试将整个东西粘贴到类似的东西上,看看你是否得到了图像。我添加了一个关于如何在chrome上测试的小屏幕截图动画,请检查一下out@RoyMJ,谢谢您的评论,但我不认为问题出在base64图像代码中,因为2D绘图工作正常,还是我弄错了什么?
var renderer   = new THREE.WebGLRenderer({
  preserveDrawingBuffer   : true   // required to support .toDataURL()
});