1. readPixels
_renderScene() {
this._renderer.clear()
this._renderer.render(this._scene, this._camera)
}
_readPixels() {
var t, gl = this._renderer.getContext(),
width = gl.drawingBufferWidth,
height = gl.drawingBufferHeight;
var pixels = new Uint8Array(width * height * 4);
if (this.isIOS) {
t = new THREE.WebGLRenderTarget(width, height)
this._renderer.setRenderTarget(t)
this._renderScene();
this._renderer.readRenderTargetPixels(t, 0, 0, width, height, pixels)
this._renderer.setRenderTarget(null)
t.dispose()
} else {
this._renderScene();
gl.readPixels(0, 0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels)
}
var a = new Uint8ClampedArray(width * height * 4),
A = 4 * width
for (var s = 0; s < height; s += 1) {
var c = s * A;
a.set(pixels.slice(c, c + A), (height - s - 1) * A)
}
return {
data: a,
width,
height
};
}