【发布时间】:2012-07-29 12:08:39
【问题描述】:
如何在 WebGL 中将纹理从 GPU 内存复制到 CPU?我在运行时使用 texSubImage2D 更新纹理。
我想避免:
- 在画布上存储纹理副本
- 渲染到纹理并调用 readPixels
还有其他方法吗?
已经阅读了这些(这对于在执行期间未更新的纹理很有用):
【问题讨论】:
标签: javascript html gpu webgl textures
如何在 WebGL 中将纹理从 GPU 内存复制到 CPU?我在运行时使用 texSubImage2D 更新纹理。
我想避免:
还有其他方法吗?
已经阅读了这些(这对于在执行期间未更新的纹理很有用):
【问题讨论】:
标签: javascript html gpu webgl textures
除了将纹理附加到 FBO 并执行 readPixels 之外,别无他法。
【讨论】:
readPixels 或(因为 readPixels 往往有点慢)您可以在画布大小的四边形上渲染它。
与
var img = canvas.toDataURL("image/png");
该纹理将在 img 变量中。为此,您需要初始化您 gl 类似这样的东西
gl = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true});
【讨论】: