Javascript 从101升级到3JS中的交叉淡入淡出场景>;107

Javascript 从101升级到3JS中的交叉淡入淡出场景>;107,javascript,three.js,Javascript,Three.js,费尔南多·塞拉诺(Fernando Serrano)教我如何在三个场景中的两个场景之间进行交叉淡入淡出。一个使用ThreeJS 101稍微修改过的工作JSFIDLE版本。现在我的问题是 将ThreeJS升级到最新版本(107)时,WebGLRenderer发生了一些更改。renderTarget和forceClear参数已从其render函数中删除。我已经试过了,一切似乎都很好,但我的控制台显示了很多错误 我似乎不知道问题出在哪里。顺序或设置渲染目标以及清除渲染器是否重要?我可以对两个渲染目标使

费尔南多·塞拉诺(Fernando Serrano)教我如何在三个场景中的两个场景之间进行交叉淡入淡出。一个使用ThreeJS 101稍微修改过的工作JSFIDLE版本。现在我的问题是

将ThreeJS升级到最新版本(107)时,
WebGLRenderer
发生了一些更改。
renderTarget
forceClear
参数已从其
render
函数中删除。我已经试过了,一切似乎都很好,但我的控制台显示了很多错误

我似乎不知道问题出在哪里。顺序或设置渲染目标以及清除渲染器是否重要?我可以对两个渲染目标使用相同的渲染器吗

如果有人能向我解释我做错了什么,那就太好了

我似乎不知道问题出在哪里。顺序或设置渲染目标以及清除渲染器是否重要

是的。将
WebGLRenderer
视为一个状态机。首先必须指定是否通过
.setRenderTarget()
使用渲染目标。在下一步中,可以执行可选的清除和相应的渲染

在第103行中,您设置了
renderer.setRenderTarget(this.fbo)
,尽管
renderer.setRenderTarget(null)
是正确的。您还可以将官方代码用作代码模板。我已经从那里采用了修复方法

我可以对两个渲染目标使用相同的渲染器吗

是的,没问题

固定小提琴:


three.js R107

非常感谢!这太浪费时间了,我没有用官方的例子。我一定是忽略了。将其视为状态机是有意义的。我必须注意正确设置渲染目标。