拍摄babylonjs场景的“快照”有时是有效的,有时则不然

时间:2016-02-05 14:12:47

标签: html5-canvas cloning babylonjs

我正在试图拍摄一个babylon3d场景的“快照”......换句话说:当用户按下按钮时,我试图克隆一个babylon3d画布,然后将新的isNaN附加到<canvas> ..有时候它会起作用,但有时则不然。

但是,如果我使用一个简单的画布(即使用fillRect),克隆/追加总是按预期工作。

我已经对plunker进行了测试以证明我的问题:plunker:反复按下按钮,看看当巴比伦场景时它的行为是多么零星。 AND NOTE :您可以在_jquery(document).ready(...)处理程序中切换简单画布和babylon画布。

<body>

1 个答案:

答案 0 :(得分:0)

这是因为来自version 2.3.0 of Babylonjs

  

引擎现在默认使用preserveDrawingBuffer = false初始化WebGL。

您需要通过传递{preserveDrawingBuffer: true}对象作为第三个参数来初始化引擎。

<强> Forked plnkr

但不幸的是,这会扼杀你的画布&#39;性能。

See more about it here.

我不是Babylonjs的专家,我也没有办法用scene.render方法拨打电话,我们可以使用 @CapsE。但是有一个BABYLON.Tools.CreateScreenshot(engine, camera, size)方法,可以从你的场景中下载png;也许这可以帮到你。