将纹理从GPU复制到CPU

时间:2012-07-31 16:38:58

标签: javascript html5 gpu webgl textures

如何在GPU中将纹理从GPU内存复制到CPU?我在运行时使用texSubImage2D更新纹理。

我想避免:

  • 在画布上存储纹理副本
  • 渲染到纹理并调用readPixels

还有其他办法吗?

已经读过这些(对于在执行期间未更新的纹理非常有用):

2 个答案:

答案 0 :(得分:4)

除了将纹理附加到FBO并执行readPixels之外别无他法。

答案 1 :(得分:1)

readPixels或(因为readPixels往往有点慢)你可以在画布大小的四边形上渲染它。

var img = canvas.toDataURL("image/png");

纹理将在img变量中。要做到这一点,你需要为你做准备 gl有这样的东西

gl = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true});