如何在 WebGL 中将纹理从 GPU 内存复制到 CPU?我在运行时使用 texSubImage2D 更新纹理。
我想避免:
- 在画布上存储纹理副本
- 渲染到纹理并调用 readPixels
还有其他方法吗?
已经阅读了这些(这对于在执行期间未更新的纹理很有用):
如何在 WebGL 中将纹理从 GPU 内存复制到 CPU?我在运行时使用 texSubImage2D 更新纹理。
我想避免:
还有其他方法吗?
已经阅读了这些(这对于在执行期间未更新的纹理很有用):
除了将纹理附加到 FBO 并执行 readPixels 之外,别无他法。
readPixels 或(因为 readPixels 往往有点慢)你可以在画布大小的四边形上渲染它。
和
var img = canvas.toDataURL("image/png");
该纹理将在 img 变量中。为了让它工作,你需要用这样的东西来初始化你 gl
gl = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true});