有没有像 `CanvasRenderingContext2D.getImageData()` 中那样的 `WebGLRenderingContext` 的方法?

Is there any method for `WebGLRenderingContext` as in `CanvasRenderingContext2D.getImageData()`?

假设我们可以从 CanvasRenderingContext2D.

得到 ImageData
var element = document.getElementById('someCanvas');
var context = element.getContext('2d');
var imageData = context.getImageData(0, 0, width, height);

不知道 WebGLRenderingContext 也可以吗?

var element = document.getElementById('someCanvas');
var context = element.getContext('webgl');
/* Get image data ... */

非常感谢!

它的工作原理并不完全相同,但您可以使用 WebGLRenderingContext.readPixels 获取绘图缓冲区中的所有像素。确保在退出实际渲染像素的事件之前调用它

var context = element.getContext('webgl');
var pixels = new Uint8Array(context.drawingBufferWidth * context.drawingBufferHeight * 4);
context.readPixels(
  0, 
  0, 
  context.drawingBufferWidth, 
  context.drawingBufferHeight, 
  context.RGBA, 
  context.UNSIGNED_BYTE, 
  pixels);