Class: RenderTarget

pc.RenderTarget

A render target is a rectangular rendering surface.

Constructor

new RenderTarget(options)

Creates a new render target. A color buffer or a depth buffer must be set.
Parameters:
Name Type Description
options Object Object for passing optional arguments.
Properties
Name Type Attributes Description
colorBuffer pc.Texture <optional>
The texture that this render target will treat as a rendering surface.
depth Boolean <optional>
If set to true, depth buffer will be created. Defaults to true. Ignored if depthBuffer is defined.
stencil Boolean <optional>
If set to true, depth buffer will include stencil. Defaults to false. Ignored if depthBuffer is defined or depth is false.
depthBuffer pc.Texture <optional>
The texture that this render target will treat as a depth/stencil surface (WebGL2 only). If set, the 'depth' and 'stencil' properties are ignored. Texture must have pc.PIXELFORMAT_DEPTH or PIXELFORMAT_DEPTHSTENCIL format.
samples Number <optional>
Number of hardware anti-aliasing samples (WebGL2 only). Default is 1.
autoResolve Boolean <optional>
If samples > 1, enables or disables automatic MSAA resolve after rendering to this RT (see pc.RenderTarget#resolve). Defaults to true; Defaults to true.
face Number <optional>
If the colorBuffer parameter is a cubemap, use this option to specify the face of the cubemap to render to. Can be:
  • pc.CUBEFACE_POSX
  • pc.CUBEFACE_NEGX
  • pc.CUBEFACE_POSY
  • pc.CUBEFACE_NEGY
  • pc.CUBEFACE_POSZ
  • pc.CUBEFACE_NEGZ
Defaults to pc.CUBEFACE_POSX.
Source:
Example
// Create a 512x512x24-bit render target with a depth buffer
var colorBuffer = new pc.Texture(graphicsDevice, {
    width: 512,
    height: 512,
    format: pc.PIXELFORMAT_R8_G8_B8
});
var renderTarget = new pc.RenderTarget({
    colorBuffer: colorBuffer,
    depth: true
});

// Set the render target on a layer
layer.renderTarget = renderTarget;

Members

(readonly) colorBuffer :pc.Texture

Color buffer set up on the render target.
Type:
Source:

(readonly) depthBuffer :pc.Texture

Depth buffer set up on the render target. Only available, if depthBuffer was set in constructor. Not available, if depth property was used instead.
Type:
Source:

(readonly) face :Number

If the render target is bound to a cubemap, this property specifies which face of the cubemap is rendered to. Can be:
  • pc.CUBEFACE_POSX
  • pc.CUBEFACE_NEGX
  • pc.CUBEFACE_POSY
  • pc.CUBEFACE_NEGY
  • pc.CUBEFACE_POSZ
  • pc.CUBEFACE_NEGZ
Type:
  • Number
Source:

(readonly) height :Number

Height of the render target in pixels.
Type:
  • Number
Source:

(readonly) width :Number

Width of the render target in pixels.
Type:
  • Number
Source:

Methods

copy(source, color, depth) → {Boolean}

Copies color and/or depth contents of source render target to this one. Formats, sizes and anti-aliasing samples must match. Depth buffer can only be copied on WebGL 2.0.
Parameters:
Name Type Description
source pc.RenderTarget Source render target to copy from
color Boolean Copy color buffer
depth Boolean Copy depth buffer
Source:
Returns:
true if the copy was successfull, false otherwise.
Type
Boolean

destroy()

Frees resources associated with this render target.
Source:

resolve(color, depth)

If samples > 1, resolves the anti-aliased render target (WebGL2 only). When you're rendering to an anti-aliased render target, pixels aren't written directly to the readable texture. Instead, they're first written to a MSAA buffer, where each sample for each pixel is stored independently. In order to read the results, you first need to 'resolve' the buffer - to average all samples and create a simple texture with one color per pixel. This function performs this averaging and updates the colorBuffer and the depthBuffer. If autoResolve is set to true, the resolve will happen after every rendering to this render target, otherwise you can do it manually, during the app update or inside a pc.Command.
Parameters:
Name Type Description
color Boolean Resolve color buffer
depth Boolean Resolve depth buffer
Source: