WebGL在react三纤维自定义着色器冻结道具更改或窗口调整大小



我在react三纤维场景中有一个自定义着色器材质,它在着色器材质本身中发生了一些动画。我已经将制服设置为使用useUpdate钩子在黑暗模式切换时进行更新。但是,无论何时调整窗口大小,或切换暗模式,着色器材质中的动画都会冻结,而暗模式不会切换。但是,平面缓冲几何体上的轨道控制仍然有效,因此冻结的不是场景,而是着色器材质本身。如果我切换了暗模式并进行了热重新加载,着色器材质会更新,并且我会看到着色器材质处于暗模式状态,但这是我实现这一点的唯一方法。每当我从原始状态切换到暗模式时,它就会冻结。即使我打开开发工具,并且窗口根据该工具调整大小,着色器动画也会冻结。

我在互联网上搜索过有这个问题的人,除非我的措辞不正确,否则我似乎什么都找不到。

有人知道是什么原因造成的吗?除了此着色器材质在任何状态更改时冻结之外,其他一切似乎都很好。

我能够在这里为未来的读者找到解决方案:https://github.com/pmndrs/react-three-fiber/discussions/440