Creates a new RenderTarget instance. A color buffer or a depth buffer must be set.
Optionaloptions: {Object for passing optional arguments.
OptionalautoResolve?: booleanIf samples > 1, enables or disables automatic MSAA resolve after rendering to this RT (see resolve). Defaults to true.
OptionalcolorBuffer?: TextureThe texture that this render target will treat as a rendering surface.
OptionalcolorBuffers?: Texture[]The textures that this render target will treat as a rendering surfaces. If this option is set, the colorBuffer option is ignored.
Optionaldepth?: booleanIf set to true, depth buffer will be created. Defaults to true. Ignored if depthBuffer is defined.
OptionaldepthBuffer?: 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 PIXELFORMAT_DEPTH or PIXELFORMAT_DEPTHSTENCIL format.
Optionalface?: numberIf the colorBuffer parameter is a cubemap, use this option to specify the face of the cubemap to render to. Can be:
Defaults to CUBEFACE_POSX.
OptionalflipY?: booleanWhen set to true the image will be flipped in Y. Default is false.
OptionalmipLevel?: numberIf set to a number greater than 0, the render target will render to the specified mip level of the color buffer. Defaults to 0.
Optionalname?: stringThe name of the render target.
Optionalsamples?: numberNumber of hardware anti-aliasing samples. Default is 1.
Optionalstencil?: booleanIf set to true, depth buffer will include stencil. Defaults to false. Ignored if depthBuffer is defined or depth is false.
OptionaltransientColor?: booleanIf set to true, the multi-sampled (MSAA) color
attachment is allocated as a transient ("memoryless") attachment, allowing tile-based GPUs to
keep its contents in on-chip memory and avoid VRAM allocation. WebGPU only, and only effective
when samples > 1 - it has no effect on single-sampled color (which is always stored). Ignored
on devices without transient attachment support. The attachment must be cleared on load and
discarded on store, so it is incompatible with a scene color grab pass (sceneColorMap).
Defaults to false.
OptionaltransientDepth?: booleanIf set to true, the (engine-allocated) depth
attachment is allocated as a transient ("memoryless") attachment (see transientColor).
Applies to both single- and multi-sampled depth. WebGPU only; ignored on devices without
transient attachment support, and ignored (with a warning) when an explicit depthBuffer is
provided. Incompatible with a scene depth grab pass (sceneDepthMap), a depth prepass, or any
depth resolve, as the depth cannot be sampled or copied out. Defaults to false.
// Create a 512x512x24-bit render target with a depth buffer
const colorBuffer = new pc.Texture(graphicsDevice, {
width: 512,
height: 512,
format: pc.PIXELFORMAT_RGB8
});
const renderTarget = new pc.RenderTarget({
colorBuffer: colorBuffer,
depth: true
});
// Set the render target on a camera component
camera.renderTarget = renderTarget;
// Destroy render target at a later stage. Note that the color buffer needs
// to be destroyed separately.
renderTarget.colorBuffer.destroy();
renderTarget.destroy();
camera.renderTarget = null;
The name of the render target.
Color buffer set up on the render target.
True if the render target contains the depth attachment.
Depth buffer set up on the render target. Only available, if depthBuffer was set in constructor. Not available if depth property was used instead.
If the render target is bound to a cubemap, this property specifies which face of the cubemap is rendered to. Can be:
Height of the render target in pixels.
Mip level of the render target.
True if the mipmaps are automatically generated for the color buffer(s) if it contains a mip chain.
Number of antialiasing samples the render target uses.
True if the render target contains the stencil attachment.
True if the multi-sampled color attachment is allocated as a transient ("memoryless")
attachment (WebGPU only). See the transientColor constructor option.
True if the depth attachment is allocated as a transient ("memoryless") attachment (WebGPU
only). See the transientDepth constructor option.
Width of the render target in pixels.
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.
Source render target to copy from.
Optionalcolor: booleanIf true, will copy the color buffer. Defaults to false.
Optionaldepth: booleanIf true, will copy the depth buffer. Defaults to false.
True if the copy was successful, false otherwise.
Frees resources associated with this render target.
Accessor for multiple render target color buffers.
Index of the color buffer to get.
Resizes the render target to the specified width and height. Internally this resizes all the assigned texture color and depth buffers.
The width of the render target in pixels.
The height of the render target in pixels.
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 similar.
Optionalcolor: boolean = trueResolve color buffer. Defaults to true.
Optionaldepth: boolean = ...Resolve depth buffer. Defaults to true if the render target has a depth buffer.
A render target is a rectangular rendering surface.