2

ページに 2 つのキャンバス要素があり、レンダリングを開始します。

new THREE.WebGLRenderer({canvas:myFirstCanvas});

3D シーンは期待どおりに適切にレンダリングされます

しかし、レンダラーが指しているキャンバス要素を変更しようとすると、次のいずれかを使用します。

renderer.domElement = mySecondCanvas;

また

renderer.setRenderTarget({canvas:mySecondCanvas});

私は github のドキュメントを見てきましたが、 setRenderTarget() は残念ながら TODO と言っています。レンダラーが使用しているキャンバス要素を切り替えることは可能ですか? もしそうなら、私はこれについてどうすればいいですか?現在、私の試みは、元のキャンバス要素の画像をぼかすだけです。おそらく、レンダラーのサイズも次のように変更するためです。

renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);

他のキャンバスに切り替えようとしているとき。

4

1 に答える 1

4

残念ながら、これは WebGL の作業によるものであり、Three.js の仕様とは関係ありませんが、各 WebGL コンテキスト (WebGL レンダラーによって表される Three.js 内) はキャンバス要素にバインドされており、どの要素を変更するかを変更することはできません。 WebGL コンテキストはレンダリングする必要があります。

そのため、2 つの THREE.WebGLRenderer を各キャンバス要素に 1 つずつ作成します。

于 2012-05-20T06:03:07.213 に答える