我正在试图拍摄一个babylon3d场景的“快照”......换句话说:当用户按下按钮时,我试图克隆一个babylon3d画布,然后将新的isNaN
附加到<canvas>
..有时候它会起作用,但有时则不然。
但是,如果我使用一个简单的画布(即使用fillRect),克隆/追加总是按预期工作。
我已经对plunker进行了测试以证明我的问题:plunker:反复按下按钮,看看当巴比伦场景时它的行为是多么零星。 AND NOTE :您可以在_jquery(document).ready(...)处理程序中切换简单画布和babylon画布。
<body>
答案 0 :(得分:0)
这是因为来自version 2.3.0 of Babylonjs:
引擎现在默认使用preserveDrawingBuffer = false初始化WebGL。
您需要通过传递{preserveDrawingBuffer: true}
对象作为第三个参数来初始化引擎。
<强> Forked plnkr 强>
但不幸的是,这会扼杀你的画布&#39;性能。
我不是Babylonjs的专家,我也没有办法用scene.render
方法拨打电话,我们可以使用
@CapsE。但是有一个BABYLON.Tools.CreateScreenshot(engine, camera, size)
方法,可以从你的场景中下载png;也许这可以帮到你。