2016-02-05 29 views
0

我想拍一個babylon3d場景的'快照'......換句話說:我想在用戶按下時克隆一個babylon3d畫布一個按鈕,然後將新的<canvas>附加到<body> ..有時它可以工作,但其他時間不起作用。拍一個babylonjs場景的'快照'有時可以工作,有時不會

但是,如果我使用簡單的畫布(即通過使用fillRect),克隆/附加始終按預期工作。

我已經設置了一個測試,以顯示我的問題:plunker:一遍又一遍地按下按鈕,看看它是如何零星表現有巴比倫場景。 AND NOTE:您可以在_jquery(document).ready(...)處理程序內,在簡單畫布和巴比倫畫布之間切換。

thanks, Shannon 

回答

0

這是因爲從version 2.3.0 of Babylonjs

引擎現在初始化WebGL的與preserveDrawingBuffer =默認爲false。

您需要通過傳遞{preserveDrawingBuffer: true}對象作爲第三個參數來初始化引擎。

Forked plnkr

但是,這將不幸殺死你的畫布上的表現。

See more about it here.

我真的不Babylonjs的專家,我沒有找到一個方法來從scene.render方法,我們可以使用由 @CapsE提出的標誌方法撥打電話。但有一個BABYLON.Tools.CreateScreenshot(engine, camera, size)方法,它將從您的場景中製作一個可下載的png;也許這可以幫助你。

相關問題