three.js:纹理反馈循环(fbo pingpong?)

时间:2015-02-11 22:59:10

标签: javascript opengl-es three.js fbo doublebuffered

我正在尝试实现一个我已经制作的hlsl着色器的网页版本(使用vvvv) - 我对网络编程很新,但发现三个.js / webGL将是最佳选择。

到目前为止一切正常,但是现在我陷入了最复杂的部分,它涉及纹理反馈:渲染通道的输出纹理是它在下一帧中的输入纹理(非常容易做到) vvvv使用“frameDelay”函数“)

使这个尽可能简单让我说我想在每个帧中添加0.1到像素的红色分量(当然是模1.0) - 所以红色值保持从0到1循环.... 。我会在three.js中做到这一点吗?

我找不到任何实现类似事物的例子;从搜索网站/本网站我已经了解到它应该是可能的(在GLSL中)使用“fbo pingpong”或“双缓冲”,但我没有运气实现....

所以在发布所有代码之前我想确认必要的步骤,任何帮助都非常感激:

-setup scene1 + gemoetry -setup material1:“红色计数器”着色器 (-setup scene2和material2) -setup 2 WebGLRenderTargets Texture1 + Texture2

将场景1渲染到Texture1,将Texture2作为material1的统一输入 (将Texture1渲染到屏幕(使用scene2 / material2)) -swap Texture1 with Texture2和(重新)设置material1的制服

1 个答案:

答案 0 :(得分:0)

我使用fbo纹理交换aka pingpong成功地在three.js中做了一个反馈循环,它(一如既往)提出了新的问题 - 对于任何试图获得纹理反馈的人来说,看看我的新{ {3}}我已经发布了代码(在渲染循环中你可以删除if语句,只保留else块中的内容)。