Cambio de lienzo / Rendertarget en tres.js
-
12-12-2019 - |
Pregunta
Tengo dos elementos de lienzo en mi página y empiezo a rendirme a mi:
new THREE.WebGLRenderer({canvas:myFirstCanvas});
y la escena 3D se traduce correctamente como espero
Pero, entonces, si trato de cambiar el elemento de lienzo, el renderizador está apuntando al usar cualquiera de:
renderer.domElement = mySecondCanvas;
o
renderer.setRenderTarget({canvas:mySecondCanvas});
He mirado la documentación en GitHub, pero SetRenderTarget () dice que ToDO desafortunadamente. ¿Es posible cambiar el elemento de lienzo que el renderizador está usando?Y si es así, ¿cómo iría esto?Actualmente, mi intento no hace nada más que borrando la imagen en el elemento de lienzo original, presumiblemente porque también cambio de tamaño al renderizador con:
renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);
cuando estoy tratando de cambiar al otro lienzo.
Solución
Desafortunadamente, y esto se debe a Hon WebGL, no tiene nada que ver con los detalles de Three.js, pero cada contexto de WebGL (en tres.js representado por el renderizador webgl) está unido a un elemento de lona y no puede cambiar¿Qué elemento debe hacerse el contexto webgl?
Entonces: Haz dos tres.WebGlrenderners, uno para cada elemento de lienzo.