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;