UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

92 lines (91 loc) 4.07 kB
import type { FrameGraph, FrameGraphTextureHandle, DrawWrapper, FrameGraphRenderPass, FrameGraphRenderContext, EffectWrapper, IStencilState } from "../../../index.js"; import { FrameGraphTask } from "../../frameGraphTask.js"; /** * Task which applies a post process. */ export declare class FrameGraphPostProcessTask extends FrameGraphTask { /** * The source texture to apply the post process on. * It's allowed to be undefined if the post process does not require a source texture. * In that case, targetTexture must be provided. */ sourceTexture?: FrameGraphTextureHandle; /** * The sampling mode to use for the source texture. */ sourceSamplingMode: number; /** * The target texture to render the post process to. * If not supplied, a texture with the same configuration as the source texture will be created. */ targetTexture?: FrameGraphTextureHandle; /** * The stencil state to use for the post process (optional). */ stencilState?: IStencilState; /** * The depth attachment texture to use for the post process (optional). * Note that a post-process task never writes to the depth buffer: attaching a depth texture is only useful if you want to test against the depth/stencil aspect or write to the stencil buffer. */ depthAttachmentTexture?: FrameGraphTextureHandle; /** * If true, the depth attachment will be read-only. * This means that the post process will not write to the depth buffer. * Setting depthReadOnly and stencilReadOnly to true is useful when you want to also be able to bind this same depth/stencil attachment to a shader. * Note that it will only work in WebGPU, as WebGL does not support read-only depth/stencil attachments. */ depthReadOnly: boolean; /** * If true, the stencil attachment will be read-only. * This means that the post process will not write to the stencil buffer. * Setting depthReadOnly and stencilReadOnly to true is useful when you want to also be able to bind this same depth/stencil attachment to a shader. * Note that it will only work in WebGPU, as WebGL does not support read-only depth/stencil attachments. */ stencilReadOnly: boolean; /** * If true, color write will be disabled when applying the post process. * This means that the post process will not write to the color buffer. */ disableColorWrite: boolean; /** * If true, the post process will be generated by a back face full-screen quad (CW order). */ drawBackFace: boolean; /** * If depth testing should be enabled (default is true). */ depthTest: boolean; /** * The output texture of the post process. */ readonly outputTexture: FrameGraphTextureHandle; /** * The output depth attachment texture. * This texture will point to the same texture than the depthAttachmentTexture property if it is set. * Note, however, that the handle itself will be different! */ readonly outputDepthAttachmentTexture: FrameGraphTextureHandle; /** * The post process to apply. */ readonly postProcess: EffectWrapper; /** * The draw wrapper used by the post process */ get drawWrapper(): DrawWrapper; protected readonly _postProcessDrawWrapper: DrawWrapper; protected _sourceWidth: number; protected _sourceHeight: number; protected _outputWidth: number; protected _outputHeight: number; /** * Constructs a new post process task. * @param name Name of the task. * @param frameGraph The frame graph this task is associated with. * @param postProcess The post process to apply. */ constructor(name: string, frameGraph: FrameGraph, postProcess: EffectWrapper); isReady(): boolean; record(skipCreationOfDisabledPasses?: boolean, additionalExecute?: (context: FrameGraphRenderContext) => void, additionalBindings?: (context: FrameGraphRenderContext) => void): FrameGraphRenderPass; dispose(): void; }