@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.
125 lines (124 loc) • 4.25 kB
TypeScript
import type { MaterialDefines, Effect, Mesh, AbstractMesh, Material } from "../index.js";
import { Matrix } from "../Maths/math.vector.js";
/**
* Type of clear operation to perform on a geometry texture.
*/
export declare enum GeometryRenderingTextureClearType {
/**
* Clear the texture with zero.
*/
Zero = 0,
/**
* Clear the texture with one.
*/
One = 1,
/**
* Clear the texture with the maximum view Z value.
*/
MaxViewZ = 2
}
/**
* Configuration for geometry rendering.
* A configuration is created for each rendering pass a geometry rendering is used in.
*/
export type GeometryRenderingConfiguration = {
/**
* Defines used for the geometry rendering.
*/
defines: {
[name: string]: number;
};
/**
* Previous world matrices for meshes.
*/
previousWorldMatrices: {
[index: number]: Matrix;
};
/**
* Previous view projection matrix.
*/
previousViewProjection: Matrix;
/**
* Current view projection matrix.
*/
currentViewProjection: Matrix;
/**
* Previous bones for skinned meshes.
*/
previousBones: {
[index: number]: Float32Array;
};
/**
* Last frame id the configuration was updated.
*/
lastUpdateFrameId: number;
/**
* List of excluded skinned meshes.
*/
excludedSkinnedMesh: AbstractMesh[];
/**
* Whether to reverse culling for the geometry rendering (meaning, if back faces should be culled, front faces are culled instead, and the other way around).
*/
reverseCulling: boolean;
};
/**
* Helper class to manage geometry rendering.
*/
export declare class MaterialHelperGeometryRendering {
/**
* Descriptions of the geometry textures.
*/
static readonly GeometryTextureDescriptions: {
type: number;
name: string;
clearType: GeometryRenderingTextureClearType;
define: string;
defineIndex: string;
}[];
private static _Configurations;
/**
* Creates a new geometry rendering configuration.
* @param renderPassId Render pass id the configuration is created for.
* @returns The created configuration.
*/
static CreateConfiguration(renderPassId: number): GeometryRenderingConfiguration;
/**
* Deletes a geometry rendering configuration.
* @param renderPassId The render pass id of the configuration to delete.
*/
static DeleteConfiguration(renderPassId: number): void;
/**
* Gets a geometry rendering configuration.
* @param renderPassId The render pass id of the configuration to get.
* @returns The configuration.
*/
static GetConfiguration(renderPassId: number): GeometryRenderingConfiguration;
/**
* Adds uniforms and samplers for geometry rendering.
* @param uniforms The array of uniforms to add to.
* @param _samplers The array of samplers to add to.
*/
static AddUniformsAndSamplers(uniforms: string[], _samplers: string[]): void;
/**
* Marks a list of meshes as dirty for geometry rendering.
* @param renderPassId The render pass id the meshes are marked as dirty for.
* @param meshes The list of meshes to mark as dirty.
*/
static MarkAsDirty(renderPassId: number, meshes: AbstractMesh[]): void;
/**
* Prepares defines for geometry rendering.
* @param renderPassId The render pass id the defines are prepared for.
* @param mesh The mesh the defines are prepared for.
* @param defines The defines to update according to the geometry rendering configuration.
*/
static PrepareDefines(renderPassId: number, mesh: AbstractMesh, defines: MaterialDefines): void;
/**
* Binds geometry rendering data for a mesh.
* @param renderPassId The render pass id the geometry rendering data is bound for.
* @param effect The effect to bind the geometry rendering data to.
* @param mesh The mesh to bind the geometry rendering data for.
* @param world The world matrix of the mesh.
* @param material The material of the mesh.
*/
static Bind(renderPassId: number, effect: Effect, mesh: Mesh, world: Matrix, material: Material): void;
}