@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.
159 lines (158 loc) • 6.1 kB
TypeScript
import type { FrameGraphTextureHandle, Scene, Camera, FrameGraph, FrameGraphObjectList, AbstractMesh, ObjectRendererOptions } from "../../../index.js";
import { FrameGraphTask } from "../../frameGraphTask.js";
import { ObjectRenderer } from "../../../Rendering/objectRenderer.js";
/**
* Description of a texture used by the geometry renderer task.
*/
export interface IFrameGraphGeometryRendererTextureDescription {
/**
* The type of the texture.
* The value should be one of the Constants.PREPASS_XXX_TEXTURE_TYPE values.
*/
type: number;
/**
* The type of the texture.
*/
textureType: number;
/**
* The format of the texture.
*/
textureFormat: number;
}
/**
* Task used to render geometry to a set of textures.
*/
export declare class FrameGraphGeometryRendererTask extends FrameGraphTask {
/**
* The depth texture attachment to use for rendering (optional).
*/
depthTexture?: FrameGraphTextureHandle;
private _camera;
/**
* Gets or sets the camera used for rendering.
*/
get camera(): Camera;
set camera(camera: Camera);
/**
* The object list used for rendering.
*/
objectList: FrameGraphObjectList;
/**
* Whether depth testing is enabled (default is true).
*/
depthTest: boolean;
/**
* Whether depth writing is enabled (default is true).
*/
depthWrite: boolean;
/**
* The size of the output textures (default is 100% of the back buffer texture size).
*/
size: {
width: number;
height: number;
};
/**
* Whether the size is a percentage of the back buffer size (default is true).
*/
sizeIsPercentage: boolean;
/**
* The number of samples to use for the output textures (default is 1).
*/
samples: number;
private _reverseCulling;
/**
* Whether to reverse culling (default is false).
*/
get reverseCulling(): boolean;
set reverseCulling(value: boolean);
/**
* Indicates if a mesh shouldn't be rendered when its material has depth write disabled (default is true).
*/
dontRenderWhenMaterialDepthWriteIsDisabled: boolean;
/**
* The list of texture descriptions used by the geometry renderer task.
*/
textureDescriptions: IFrameGraphGeometryRendererTextureDescription[];
/**
* The output depth texture attachment texture.
* This texture will point to the same texture than the depthTexture property if it is set.
* Note, however, that the handle itself will be different!
*/
readonly outputDepthTexture: FrameGraphTextureHandle;
/**
* The depth (in view space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryViewDepthTexture: FrameGraphTextureHandle;
/**
* The depth (in screen space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryScreenDepthTexture: FrameGraphTextureHandle;
/**
* The normal (in view space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryViewNormalTexture: FrameGraphTextureHandle;
/**
* The normal (in world space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryWorldNormalTexture: FrameGraphTextureHandle;
/**
* The position (in local space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryLocalPositionTexture: FrameGraphTextureHandle;
/**
* The position (in world space) output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryWorldPositionTexture: FrameGraphTextureHandle;
/**
* The albedo output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryAlbedoTexture: FrameGraphTextureHandle;
/**
* The reflectivity output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryReflectivityTexture: FrameGraphTextureHandle;
/**
* The velocity output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryVelocityTexture: FrameGraphTextureHandle;
/**
* The linear velocity output texture. Will point to a valid texture only if that texture has been requested in textureDescriptions!
*/
readonly geometryLinearVelocityTexture: FrameGraphTextureHandle;
/**
* The object renderer used by the geometry renderer task.
*/
get objectRenderer(): ObjectRenderer;
/**
* Gets or sets the name of the task.
*/
get name(): string;
set name(value: string);
private readonly _engine;
private readonly _scene;
private readonly _renderer;
private _textureWidth;
private _textureHeight;
private _clearAttachmentsLayout;
private _allAttachmentsLayout;
/**
* Constructs a new geometry renderer task.
* @param name The name of the task.
* @param frameGraph The frame graph the task belongs to.
* @param scene The scene the frame graph is associated with.
* @param options The options of the object renderer.
*/
constructor(name: string, frameGraph: FrameGraph, scene: Scene, options?: ObjectRendererOptions);
/**
* Gets the list of excluded meshes from the velocity texture.
*/
get excludedSkinnedMeshFromVelocityTexture(): AbstractMesh[];
isReady(): boolean;
record(): void;
dispose(): void;
private _createMultiRenderTargetTexture;
private _checkDepthTextureCompatibility;
private _buildClearAttachmentsLayout;
private _registerForRenderPassId;
}