WebGL纹理同时读/写

时间:2012-02-14 03:05:18

标签: textures shader webgl

我想用webGL着色器做一些渲染,但我需要读取由前一帧着色器生成的数据数组。我这样做是使用着色器写入纹理并使用相同的着色器读取该纹理。但是,这不起作用。着色器可以从最后一帧读取纹理并完美地写入帧缓冲区,但它不能再次写入纹理。我也尝试将纹理复制到其他图像单元,但它也不起作用。我想知道是否对webGL的纹理有任何限制,你不能在同一个着色器中读/写?或者我做错了什么?

提前致谢, 易

1 个答案:

答案 0 :(得分:6)

来自http://www.opengl.org/wiki/GLSL_:_common_mistakes的常见错误: “通常情况下,你不应该对纹理进行采样并同时渲染到相同的纹理。这会给你一些未定义的行为。它可能适用于某些GPU和某些驱动程序版本但不适用于其他版本。”

使用乒乓方法代替两个纹理(以下教程是OpenGL,但在WebGL中使用该技术应该是直截了当的):

http://www.mathematik.tu-dortmund.de/~goeddeke/gpgpu/oldstuff/HelloPingPong.pdf

相关问题