Commutazione di tela / rendertArget in tre.js
-
12-12-2019 - |
Domanda
Ho due elementi su tela sulla mia pagina e iniziamo a rendering con il mio:
new THREE.WebGLRenderer({canvas:myFirstCanvas});
.
E la scena 3D è resa correttamente come mi aspetto
Ma poi se provo a modificare l'elemento tela, il rendering è indicato utilizzando:
renderer.domElement = mySecondCanvas;
.
o
renderer.setRenderTarget({canvas:mySecondCanvas});
.
Ho esaminato la documentazione su GitHub, ma SetrierdertArget () dice purtroppo. È possibile cambiare l'elemento tela che il rendering sta utilizzando?E se sì, come farei questo?Attualmente il mio tentativo non fa altro che sfocare l'immagine nell'elemento di tela originale presumibilmente perché ridimensiona anche il rendering con:
renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);
.
Quando sto cercando di passare all'altra tela.
Soluzione
Sfortunatamente, e questo è dovuto al lavoro di hon webgl e non ha nulla a che fare con le specifiche dei tre.js, ma ogni contesto WebGL (in tre.js rappresentato dal rendering WebGL) è legato a un elemento tela e non è possibile modificarequale elemento il contesto WebGL dovrebbe rendere.
SO: fai due tre.WebglRenderer, uno per ogni elemento tela.