three.js がレンダーを処理する方法は、各要素を画像に変換し、コンテキストに描画することだと思います。それに関する詳細情報はどこで入手できますか。私が正しければ、その画像を取得して操作する方法はありますか?
任意の情報をいただければ幸いです。
three.js がレンダーを処理する方法は、各要素を画像に変換し、コンテキストに描画することだと思います。それに関する詳細情報はどこで入手できますか。私が正しければ、その画像を取得して操作する方法はありますか?
任意の情報をいただければ幸いです。
Three.js には、3D 空間でシーンがどのように見えるかが内部的に記述されており、特にすべての頂点とマテリアルが含まれています。レンダリング プロセスは、その 3D 表現を取得し、それを 2D 空間に投影します。Three.js には、 WebGLRenderer (最も一般的なもの)、CanvasRenderer、CSS3DRendererなど、いくつかのレンダラーがあります。それらはすべて異なる方法を使用して、その 2D 投影を描画します。
<canvas>
(これはすべて非常に単純化されています。)
WebGL および Canvas 表現でレンダリングされたフレームは、結果として画面に表示される画像であることを理解することが重要ですが、 <img>
. 通常、ブラウザは毎秒 60 フレームをレンダリングします。を画像にダンプする<canvas>
ことで、フレームを抽出できます。通常、これを行うためにアニメーション ループを停止する必要があります。停止しないと、必要なフレームをキャプチャできない可能性があります。この方法でフレームをキャプチャするのは遅く、ブラウザが毎秒非常に多くのフレームをレンダリングしていることを考えると、すべてのフレームをキャプチャする簡単な方法はありません。
さらに、Chrome には組み込みのキャンバス検査ツールがあり、ブラウザーが描画する各フレームを詳しく調べることができます。
Three.js がフレームをレンダリングしているため、バッファーを簡単にインターセプトすることはできませんが、通常どおりキャンバスに直接描画できます。renderer.context
は、Three.js が描画するグラフィックス コンテキストですrenderer
。 は、Three.js シーンを設定するときに作成する Renderer インスタンスです。(グラフィックス コンテキストは基本的に、フレームを構成するバッファーを組み立てるためのヘルパーです。)