レンダリングされたフレームが完成した後にスクリーンショットを撮る必要がありますが、一部のスクリーンショットが重複していることがわかりましたので、レンダリングが完了する前にスクリーンショットを保存しているかどうかは疑問です。したがって...renderer.render()はブロックされているか、ブロックされていませんか?
- renderer.render()はレンダリングが終了するまでブロックしますか?
- もしそうでなければ、コールバックやイベントが完了したらそれを知る方法はありますか?
レンダリングされたフレームが完成した後にスクリーンショットを撮る必要がありますが、一部のスクリーンショットが重複していることがわかりましたので、レンダリングが完了する前にスクリーンショットを保存しているかどうかは疑問です。したがって...renderer.render()はブロックされているか、ブロックされていませんか?
私は自分のラップトップに約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);
は、すべてのレンダリングされたフレームとの間に有意な変化は、またはどのようにスクリーンショットが同じように見えるとき、それは次のフレームをレンダリングしていない知っているのですか? – Arg0n
アニメーションは、一定の割合で画面を横切って水平に移動するオブジェクトです。具体的には、 'object.position.x - = 40'です。変化は数ピクセルであり、視覚的に有意である。 – Jonas