Toile de commutation / Rendertarget dans trois.js
-
12-12-2019 - |
Question
J'ai deux éléments de toile sur ma page et je commence à rendre à mes:
new THREE.WebGLRenderer({canvas:myFirstCanvas});
et la scène 3D est correctement rendue comme je m'attends à
Mais si j'essaie de changer l'élément en toile, le rendu pointe vers l'aide de:
renderer.domElement = mySecondCanvas;
ou
renderer.setRenderTarget({canvas:mySecondCanvas});
J'ai regardé la documentation sur GitHub, mais SETRenderTarget () dit TODO Malheureusement. Est-il possible d'allumer l'élément de canvas que le rendu utilise-t-il?Et si oui, comment irai-je à ce sujet?Actuellement, ma tentative ne fait que brouiller l'image dans l'élément de toile d'origine, probablement parce que je redimensionniste également le rendu avec:
renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);
Quand j'essaie de passer à l'autre toile.
La solution
Malheureusement, et cela est dû à Hon WebGL Work et n'a rien à voir avec trois spécificités de trois.js, mais chaque contexte WebGL (en trois.js représenté par WebGL Renderer) est lié à un élément de toile et vous ne pouvez pas changerquel élément le contexte webgl devrait rendre.
Donc: faites deux trois.WebglRenderers, un pour chaque élément de toile.