comutação de tela / rendertarget em three.js
-
12-12-2019 - |
Pergunta
Eu tenho dois elementos de tela na minha página e eu começo a renderização para o meu:
new THREE.WebGLRenderer({canvas:myFirstCanvas});
e a cena 3D é correctamente apresentada como eu espero
mas então se eu tentar alterar o elemento canvas, o processador está apontando para se usando:
renderer.domElement = mySecondCanvas;
ou
renderer.setRenderTarget({canvas:mySecondCanvas});
Eu olhei na documentação no github, mas setRenderTarget() diz TODO, infelizmente.É possível mudar o elemento canvas, o processador está usando?e se assim como eu iria fazer isso?atualmente a minha tentativa não faz nada a não borrar a imagem original do elemento canvas, presumivelmente, porque eu também redimensionar o processador com:
renderer.setSize(mySecondCanvas.width,mySecondCanvas.height);
quando eu estou tentando alternar para outra tela.
Solução
Infelizmente, e isto é devido a hon WebGL trabalho e não tem nada a ver com Three.js especificidades, mas cada WebGL-contexto (em Three.js representado por WebGL renderer) é vinculado a um elemento de tela e você não pode alterar o elemento que o WebGL-contexto deve processar.
Assim:fazer dois, TRÊS.WebGLRenderers, um para cada elemento de tela.