javascript - tutorial - THREE.js La textura del objetivo Render no dibujará en una escena diferente
three js texture (1)
Entonces, si alguno de los profesionales de THREE.js puede entender por qué no puedo usar WebGLRenderTarget como material para un avión en otra escena, estaría muy contento.
Cómo funciona ahora es crear una escena con una cámara en perspectiva que rinde un plano simple. Esto sucede en el objeto Aplicación.
También tengo un objeto WaveMap que usa otra escena y una cámara ortográfica y el uso de un sombreador de fragmentos dibuja la función cos (x) * sin (y) en otro quad que ocupa toda la pantalla. Lo renderizo en una textura y luego creo un material que usa esta textura.
Luego paso ese Material para ser utilizado en el objeto Aplicación para dibujar la textura en el primer plano que mencioné.
El problema es que por alguna razón pude hacer que esto funcione en la escena con la cámara ortográfica dentro del objeto WaveMap pero no en la escena con la cámara en perspectiva en el objeto Aplicación después de pasar el material. :(
Intenté simplemente pasar un material simple con un color sólido y eso funciona, pero cuando intento pasar un material que usa un WebGLRenderTarget como textura, ya no aparece.
Necesita clonar cualquier material / textura que desee renderizar mediante dos procesadores diferentes.
var materialOnOther = originalMaterial.clone();
Antes de r72 necesitabas forzar los búferes de imagen para que las texturas se actualizaran así:
materialOnOther.uniforms.exampleOfATexture.value.needsUpdate = true;