我试图了解如何用多个缓冲区在three.js中编写一个着色器,方法是从着色器中转换一个着色器。我找到了这个例子:https://codepen.io/lickedwindows/pen/jGOLJr
但是,当我使用最新版本的Three.js运行它时,会遇到以下错误:
"THREE.WebGLRenderer.render():renderTarget参数已被删除。请使用.setRenderTarget()代替。“"THREE.WebGLRenderer.render():forceClear参数已被删除。请使用.clear()代替。“
我试图改变这种状况,但却想不出怎么做。如何将此代码转换为使用最新版本的three.js编译的正确代码?
基本上,我想在three.js中找到一个用于编写多缓冲着色器的样板
//Create 2 buffer textures
textureA = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight, { minFilter: THREE.LinearFilter, magFilter: THREE.NearestFilter });
textureB = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight, { minFilter: THREE.LinearFilter, magFilter: THREE.NearestFilter });
发布于 2020-09-28 18:41:47
您的演示程序使用了Three.js r85,这有点过时。到2020年9月,我们有了r120,现在您必须在每次向目标呈现时使用renderer.setRenderTarget(renderT);
。您可以在docs:https://threejs.org/docs/#api/en/renderers/WebGLRenderer.setRenderTarget中读到这方面的内容。
这是一种新方法:
var textureA = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight);
var textureB = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight);
renderer.setRenderTarget(textureA);
renderer.render(scene1, camera1);
renderer.setRenderTarget(textureB);
renderer.render(scene2, camera2);
https://stackoverflow.com/questions/64108975
复制相似问题