diff --git a/docs/api/en/renderers/WebGLRenderer.html b/docs/api/en/renderers/WebGLRenderer.html
index 8b2a4ab4db614836c0b4ff37762158a52e1f4493..c815bbb9bdd8ca9e8df9202e2a5360417538beba 100644
--- a/docs/api/en/renderers/WebGLRenderer.html
+++ b/docs/api/en/renderers/WebGLRenderer.html
@@ -394,11 +394,11 @@
[method:null resetGLState]( )
Reset the GL state to default. Called internally if the WebGL context is lost.
- [method:null readRenderTargetPixels]( [param:WebGLRenderTarget renderTarget], [param:Float x], [param:Float y], [param:Float width], [param:Float height], [param:TypedArray buffer] )
+ [method:null readRenderTargetPixels]( [param:WebGLRenderTarget renderTarget], [param:Float x], [param:Float y], [param:Float width], [param:Float height], [param:TypedArray buffer], [param:Integer activeCubeFaceIndex] )
buffer - Uint8Array is the only destination type supported in all cases, other types are renderTarget and platform dependent. See [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.12 WebGL spec] for details.
Reads the pixel data from the renderTarget into the buffer you pass in. This is a wrapper around [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/readPixels WebGLRenderingContext.readPixels]().
- See the [example:webgl_interactive_cubes_gpu interactive / cubes / gpu] example.
-
+ See the [example:webgl_interactive_cubes_gpu interactive / cubes / gpu] example.
+ For reading out a [page:WebGLRenderTargetCube WebGLRenderTargetCube] use the optional parameter activeCubeFaceIndex to determine which face should be read.
[method:null render]( [param:Scene scene], [param:Camera camera] )
diff --git a/src/renderers/WebGLRenderer.d.ts b/src/renderers/WebGLRenderer.d.ts
index e59c5cf90ee4eb49b0b4ffddb14a73e94d937740..c3dc91addcafd22c7540e97b1224d241dca2a79e 100644
--- a/src/renderers/WebGLRenderer.d.ts
+++ b/src/renderers/WebGLRenderer.d.ts
@@ -379,7 +379,8 @@ export class WebGLRenderer implements Renderer {
y: number,
width: number,
height: number,
- buffer: any
+ buffer: any,
+ activeCubeFaceIndex?: number
): void;
/**
diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js
index e96e6734f9439324ec2eac3d1cf05e4d87e179f7..81fd25adb029b587f369b71b11354e70bfb5ff19 100644
--- a/src/renderers/WebGLRenderer.js
+++ b/src/renderers/WebGLRenderer.js
@@ -2501,7 +2501,7 @@ function WebGLRenderer( parameters ) {
};
- this.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer ) {
+ this.readRenderTargetPixels = function ( renderTarget, x, y, width, height, buffer, activeCubeFaceIndex ) {
if ( ! ( renderTarget && renderTarget.isWebGLRenderTarget ) ) {
@@ -2512,6 +2512,12 @@ function WebGLRenderer( parameters ) {
var framebuffer = properties.get( renderTarget ).__webglFramebuffer;
+ if ( activeCubeFaceIndex != undefined ) {
+
+ framebuffer = framebuffer[ activeCubeFaceIndex ];
+
+ }
+
if ( framebuffer ) {
var restore = false;