threejs帆布todataurl是空白的

时间:2016-01-18 04:21:41

标签: html5 canvas three.js webgl todataurl

好的,我知道canvas.toDataUrl()会以png格式生成图像。但是,当我尝试从http://threejs.org/examples/#webgl_lines_sphere获取图像时。我看到的只是镀铬上的黑色图像。复制步骤 -

1)打开开发控制台并选择canvas元素。 2)canvas = $0 3)context = canvas.getContext('webgl', {preserveDrawingBuffer: true}) 4)img = canvas.toDataUrl() 5)document.write('<img src="'+img+'"/>')

图片为空白。 但是,我尝试在链接http://threejs.org/examples/#canvas_geometry_cube使用不同的画布。请执行以下步骤进行复制。

1)打开开发控制台并选择canvas元素。 2)canvas = $0 3)context = canvas.getContext('2d', {preserveDrawingBuffer: true}) 4)img = canvas.toDataUrl() 5)document.write('<img src="'+img+'"/>')

这给出了预期的结果。为什么存在差异,如何避免检索第一张图像呢?

2 个答案:

答案 0 :(得分:5)

我也得到了纯黑色图像。

我以前的代码是:

this.renderer = new THREE.WebGLRenderer({premultipliedAlpha: false});

我已将THREE.WebGLRenderer中的参数更改为:

this.renderer = new THREE.WebGLRenderer({preserveDrawingBuffer: true});

我正在拍摄快照。

希望有帮助。

答案 1 :(得分:0)

这是因为第一个例子(参见source lines 103)确实使用THREE.WebGLRenderer创建者,而第二个(参见source lines 92)使用一个THREE.CanvasRenderer

一些注意事项: