2017-06-13 21 views
0

レンダリングされたフレームが完成した後にスクリーンショットを撮る必要がありますが、一部のスクリーンショットが重複していることがわかりましたので、レンダリングが完了する前にスクリーンショットを保存しているかどうかは疑問です。したがって...renderer.render()はブロックされているか、ブロックされていませんか?

  1. renderer.render()はレンダリングが終了するまでブロックしますか?
  2. もしそうでなければ、コールバックやイベントが完了したらそれを知る方法はありますか?
+0

は、すべてのレンダリングされたフレームとの間に有意な変化は、またはどのようにスクリーンショットが同じように見えるとき、それは次のフレームをレンダリングしていない知っているのですか? – Arg0n

+0

アニメーションは、一定の割合で画面を横切って水平に移動するオブジェクトです。具体的には、 'object.position.x - = 40'です。変化は数ピクセルであり、視覚的に有意である。 – Jonas

答えて

1

私は自分のラップトップに約6-10秒かかる50k立方体のレンダリングテストを作成しました。

フィドルはここにある:http://jsfiddle.net/1ma18gLf/

機能は、テストに基づいてブロックを行います。ブラウザコンソールを使用して結果を確認し、base64イメージを表示します。

質問は、WebGLのは別に関係なく、JavaScriptがやっていることのキャンバスにペイントしないとなります。

レンダリングする前にあなたは明確なマニュアルを試みることができる:

var renderer = new THREE.WebGLRenderer({ preserveDrawingBuffer: true }); 
renderer.autoClear = false; 

//In your render loop: 

renderer.clear(); 
renderer.render(scene, camera); 
+0

これには2つの投票があります。質問に答えるより良い方法があれば、私は本当に興味があります。ありがとう! – Radio

+0

あなたの答えはその確定性に非常に役立ちました。ありがとうございました! – Jonas

関連する問題