THREE.js渲染目标纹理不会在不同的场景中绘制

Arm*_*eri 1 javascript rendertarget three.js

因此,如果任何THREE.js专业人员都能理解为什么我无法将WebGLRenderTarget用作另一个场景中的飞机材料,我会非常高兴.

它现在如何工作是我用透视相机创建一个场景,渲染一个简单的平面.这发生在Application对象中.

我还有一个使用另一个场景和正交相机的WaveMap对象,并使用片段着色器在另一个占据整个屏幕的四边形上绘制cos(x)*sin(y)函数.我将其渲染为纹理,然后创建一个使用此纹理的材质.

然后,我传递要在Application对象中使用的Material,以在我提到的第一个平面上绘制纹理.

问题是出于某种原因我可以使用WaveMap对象内的正交相机在场景中工作,但是在传递材料之后,在Application对象中没有透视相机的场景中.:(

我试过简单地传递一个纯色的简单材质,但是当我尝试传递一个使用WebGLRenderTarget作为纹理的材质时,它不会再出现了.

https://github.com/ArminTaheri/rendertotexture-threejs

the*_*her 7

您需要克隆要由两个不同渲染器渲染的任何材质/纹理.

var materialOnOther = originalMaterial.clone();
Run Code Online (Sandbox Code Playgroud)

在r72之前,您需要强制更新纹理的图像缓冲区,如下所示:

materialOnOther.uniforms.exampleOfATexture.value.needsUpdate = true;
Run Code Online (Sandbox Code Playgroud)