API Reference

Class List

pc.RenderTarget

A render target is a rectangular rendering surface.

// 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(graphicsDevice, colorBuffer, {
    depth: true
});

// Set the render target on an entity's camera component
entity.camera.renderTarget = renderTarget;

Summary

Properties

colorBufferColor buffer set up on the render target.[read only]
depthBufferDepth buffer set up on the render target.[read only]
faceIf the render target is bound to a cubemap, this property specifies which face of the cubemap is rendered to.[read only]
heightHeight of the render target in pixels.[read only]
widthWidth of the render target in pixels.[read only]

Methods

destroyFrees resources associated with this render target.
resolveIf samples > 1, resolves the anti-aliased render target (WebGL2 only).

Details

Constructor

RenderTarget(options)

Creates a new render target. A color buffer or a depth buffer must be set.

// 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(graphicsDevice, colorBuffer, {
    depth: true
});

// Set the render target on an entity's camera component
entity.camera.renderTarget = renderTarget;

Parameters

optionsObjectObject for passing optional arguments.
options.colorBufferpc.TextureThe texture that this render target will treat as a rendering surface.
options.depthBooleanIf set to true, depth buffer will be created. Defaults to true. Ignored if depthBuffer is defined.
options.stencilBooleanIf set to true, depth buffer will include stencil. Defaults to false. Ignored if depthBuffer is defined or depth is false.
options.depthBufferpc.TextureThe 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.
options.samplesNumberNumber of hardware anti-aliasing samples (WebGL2 only). Default is 1.
options.autoResolveBooleanIf samples > 1, enables or disables automatic MSAA resolve after rendering to this RT (see pc.RenderTarget#resolve). Defaults to true; Defaults to true.
options.faceNumberIf 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.

Properties

pc.TexturecolorBuffer

Color buffer set up on the render target.[read only]

pc.TexturedepthBuffer

Depth buffer set up on the render target. Only available, if depthBuffer was set in constructor. Not available, if depth property was used instead.[read only]

Numberface

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
[read only]

Numberheight

Height of the render target in pixels.[read only]

Numberwidth

Width of the render target in pixels.[read only]

Methods

destroy()

Frees resources associated with this render target.

resolve()

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.