gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:35:59 31 4
gpt4 key购买 nike

因此,如果任何 THREE.js 专业人士能够理解为什么我无法将 WebGLRenderTarget 用作另一个场景中的平面 Material ,我会非常高兴。

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

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

然后我将该 Material 传递给 Application 对象,以在我提到的第一个平面上绘制纹理。

问题是出于某种原因,我可以在 WaveMap 对象内使用正交相机的场景中使用它,但在传递 Material 后,在 Application 对象中使用透视相机的场景中却不能。 :(

我试过简单地传递一个纯色的简单 Material ,这很有效,但是当我尝试传递一个使用 WebGLRenderTarget 作为纹理的 Material 时,它不再显示了。

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

最佳答案

您需要克隆要由两个不同的渲染器渲染的任何 Material /纹理。

var materialOnOther = originalMaterial.clone();

在 r72 之前,您需要像这样强制更新纹理的图像缓冲区:

materialOnOther.uniforms.exampleOfATexture.value.needsUpdate = true;

关于javascript - THREE.js 渲染目标纹理不会在不同的场景中绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32812329/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com