Engine API Reference
    Preparing search index...

    Class RenderTarget

    A render target is a rectangular rendering surface.

    Index

    Constructors

    • Creates a new RenderTarget instance. A color buffer or a depth buffer must be set.

      Parameters

      • Optionaloptions: {
            autoResolve?: boolean;
            colorBuffer?: Texture;
            colorBuffers?: Texture[];
            depth?: boolean;
            depthBuffer?: Texture;
            face?: number;
            flipY?: boolean;
            mipLevel?: number;
            name?: string;
            samples?: number;
            stencil?: boolean;
        } = {}

        Object for passing optional arguments.

        • OptionalautoResolve?: boolean

          If samples > 1, enables or disables automatic MSAA resolve after rendering to this RT (see RenderTarget#resolve). Defaults to true.

        • OptionalcolorBuffer?: Texture

          The 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?: boolean

          If set to true, depth buffer will be created. Defaults to true. Ignored if depthBuffer is defined.

        • OptionaldepthBuffer?: Texture

          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 PIXELFORMAT_DEPTH or PIXELFORMAT_DEPTHSTENCIL format.

        • Optionalface?: number

          If 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?: boolean

          When set to true the image will be flipped in Y. Default is false.

        • OptionalmipLevel?: number

          If 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?: string

          The name of the render target.

        • Optionalsamples?: number

          Number of hardware anti-aliasing samples. Default is 1.

        • Optionalstencil?: boolean

          If set to true, depth buffer will include stencil. Defaults to false. Ignored if depthBuffer is defined or depth is false.

      Returns RenderTarget

      // 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;

    Properties

    autoResolve: boolean
    flipY: boolean
    name: string

    The name of the render target.

    Accessors

    • get colorBuffer(): Texture

      Color buffer set up on the render target.

      Returns Texture

    • get depth(): boolean

      True if the render target contains the depth attachment.

      Returns boolean

    • get depthBuffer(): 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.

      Returns Texture

    • get height(): number

      Height of the render target in pixels.

      Returns number

    • get mipLevel(): number

      Mip level of the render target.

      Returns number

    • get mipmaps(): boolean

      True if the mipmaps are automatically generated for the color buffer(s) if it contains a mip chain.

      Returns boolean

    • get samples(): number

      Number of antialiasing samples the render target uses.

      Returns number

    • get stencil(): boolean

      True if the render target contains the stencil attachment.

      Returns boolean

    • get width(): number

      Width of the render target in pixels.

      Returns number

    Methods

    • 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

      • source: RenderTarget

        Source render target to copy from.

      • Optionalcolor: boolean

        If true, will copy the color buffer. Defaults to false.

      • Optionaldepth: boolean

        If true, will copy the depth buffer. Defaults to false.

      Returns boolean

      True if the copy was successful, false otherwise.

    • Frees resources associated with this render target.

      Returns void

    • Accessor for multiple render target color buffers.

      Parameters

      • index: any

        Index of the color buffer to get.

      Returns Texture

      • Color buffer at the specified index.
    • Resizes the render target to the specified width and height. Internally this resizes all the assigned texture color and depth buffers.

      Parameters

      • width: number

        The width of the render target in pixels.

      • height: number

        The height of the render target in pixels.

      Returns void

    • 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.

      Parameters

      • Optionalcolor: boolean = true

        Resolve color buffer. Defaults to true.

      • Optionaldepth: boolean = ...

        Resolve depth buffer. Defaults to true if the render target has a depth buffer.

      Returns void