2

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

我想避免:

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

还有其他方法吗?

已经阅读了这些(这对于在执行期间未更新的纹理很有用):

4

2 回答 2

4

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

于 2012-07-31T21:09:31.677 回答
1

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

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

该纹理将在 img 变量中。为了让它工作,你需要用这样的东西来初始化你 gl

gl = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true});
于 2012-08-01T13:20:49.833 回答