【发布时间】:2019-08-16 02:44:08
【问题描述】:
我通过以下方式实现了一个反馈循环(后缓冲):
function render()
{
renderer.setRenderTarget(BufferA);
renderer.render(BufferAScene, camera);
renderer.setRenderTarget(null);
renderer.clear(); let temp = BufferA;
BufferA = BufferAFeedBack;
BufferAFeedBack = temp;
...
}
虽然它有效,但它会发出警告,提示纹理目标和帧缓冲区之间存在反馈循环。我想这就是为什么在移动设备上看不到任何着色器的原因。 有没有更有效的方法来交换 THREE.js 中的 FBO? 我知道 OpenGL 并且已经实现了同样的东西,所以我想我可以在 vanilla WebGL 中实现应用程序,但我不想从头开始重新编写主机应用程序! 尽管抽象层似乎让我复制了普通 WebGL 中不需要的对象,但有什么建议吗?
【问题讨论】:
-
谢谢 gman 我会告诉你它是否有效。
-
顺便提一下在移动设备中调试着色器的技巧?我知道 Chrome 的移动模拟器,但在这种情况下,模拟器运行而移动没有。
-
您可以将Safari远程连接到iOS,将Chrome远程连接到Android Chrome进行调试。谷歌“远程调试 safari/chrome”。也许this article 和this one?
-
谢谢!如果您的评论有效,我会通知您,以便您可以将其发布为答案
标签: javascript three.js shader pixel-shader