This represents a texture in babylon. It can be easily loaded from a network, base64 or html input.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#texture

Hierarchy

Constructors

Properties

Accessors

Methods

Constructors

  • Instantiates a new texture. This represents a texture in babylon. It can be easily loaded from a network, base64 or html input.

    See

    https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#texture

    Parameters

    • url: Nullable<string>

      defines the url of the picture to load as a texture

    • Optional sceneOrEngine: Nullable<Scene | ThinEngine>

      defines the scene or engine the texture will belong to

    • Optional noMipmapOrOptions: boolean | ITextureCreationOptions

      defines if the texture will require mip maps or not or set of all options to create the texture

    • Optional invertY: boolean

      defines if the texture needs to be inverted on the y axis during loading

    • Optional samplingMode: number

      defines the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)

    • Optional onLoad: Nullable<(() => void)>

      defines a callback triggered when the texture has been loaded

    • Optional onError: Nullable<((message?: string, exception?: any) => void)>

      defines a callback triggered when an error occurred during the loading session

    • Optional buffer: Nullable<string | HTMLImageElement | Blob | ArrayBuffer | ArrayBufferView | ImageBitmap>

      defines the buffer to load the texture from in case the texture is loaded from a buffer representation

    • Optional deleteBuffer: boolean

      defines if the buffer we are loading the texture from should be deleted after load

    • Optional format: number

      defines the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)

    • Optional mimeType: string

      defines an optional mime type information

    • Optional loaderOptions: any

      options to be passed to the loader

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    • Optional forcedExtension: string

      defines the extension to use to pick the right loader

    Returns Texture

Properties

animations: BabylonAnimation[]

Define the list of animation attached to the texture.

anisotropicFilteringLevel: number

With compliant hardware and browser (supporting anisotropic filtering) this defines the level of anisotropic filtering in the texture. The higher the better but the slower. This defaults to 4 as it seems to be the best tradeoff.

delayLoadState: number

Define the current state of the loading sequence when in delayed load mode.

homogeneousRotationInUVTransform: boolean

Sets this property to true to avoid deformations when rotating the texture with non-uniform scaling

inspectableCustomProperties: Nullable<IInspectable[]>

List of inspectable custom properties (used by the Inspector)

See

https://doc.babylonjs.com/toolsAndResources/inspector#extensibility

invertZ: boolean

Is Z inverted in the texture (useful in a cube texture).

isRenderTarget: boolean

Define if the texture is a render target.

level: number

Intensity or strength of the texture. It is commonly used by materials to fine tune the intensity of the texture

metadata: any

Gets or sets an object used to store user defined information.

name: string

Define the name of the texture.

onDisposeObservable: Observable<BaseTexture>

An event triggered when the texture is disposed.

onLoadObservable: Observable<Texture>

Observable triggered once the texture has been loaded.

optimizeUVAllocation: boolean

Gets or sets a boolean indicating that the texture should try to reduce shader code if there is no UV manipulation. (ie. when texture.getTextureMatrix().isIdentityAs3x2() returns true)

reservedDataStore: any

For internal use only. Please do not use.

sphericalPolynomial: Nullable<SphericalPolynomial>

Get the polynomial representation of the texture data. This is mainly use as a fast way to recover IBL Diffuse irradiance data.

See

https://learnopengl.com/PBR/IBL/Diffuse-irradiance

uAng: number

Define an offset on the texture to rotate around the u coordinates of the UVs The angle is defined in radians.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials

uOffset: number

Define an offset on the texture to offset the u coordinates of the UVs

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials#offsetting

uRotationCenter: number

Defines the center of rotation (U)

uScale: number

Define an offset on the texture to scale the u coordinates of the UVs

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials#tiling

uniqueId: number

Gets or sets the unique id of the texture

url: Nullable<string>

Define the url of the texture.

vAng: number

Define an offset on the texture to rotate around the v coordinates of the UVs The angle is defined in radians.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials

vOffset: number

Define an offset on the texture to offset the v coordinates of the UVs

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials#offsetting

vRotationCenter: number

Defines the center of rotation (V)

vScale: number

Define an offset on the texture to scale the v coordinates of the UVs

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials#tiling

wAng: number

Define an offset on the texture to rotate around the w coordinates of the UVs (in case of 3d texture) The angle is defined in radians.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials

wRotationCenter: number

Defines the center of rotation (W)

wrapR: number
Value Type Description
0 CLAMP_ADDRESSMODE
1 WRAP_ADDRESSMODE
2 MIRROR_ADDRESSMODE
BILINEAR_SAMPLINGMODE: 2 = 2

Bilinear is mag = linear and min = linear and no mip

CLAMP_ADDRESSMODE: 0 = 0

Texture is not repeating outside of 0..1 UVs

CUBIC_MODE: 3 = 3

Cubic coordinates mode

DEFAULT_ANISOTROPIC_FILTERING_LEVEL: number

Default anisotropic filtering level for the application. It is set to 4 as a good tradeoff between perf and quality.

EQUIRECTANGULAR_MODE: 7 = 7

Equirectangular coordinates mode

EXPLICIT_MODE: 0 = 0

Explicit coordinates mode

FIXED_EQUIRECTANGULAR_MIRRORED_MODE: 9 = 9

Equirectangular Fixed Mirrored coordinates mode

FIXED_EQUIRECTANGULAR_MODE: 8 = 8

Equirectangular Fixed coordinates mode

ForceSerializeBuffers: boolean

Gets or sets a general boolean used to indicate that texture buffers must be saved as part of the serialization process. If no buffer exists, one will be created as base64 string from the internal webgl data.

INVCUBIC_MODE: 6 = 6

Inverse Cubic coordinates mode

LINEAR_LINEAR: 2 = 2

mag = linear and min = linear and mip = none

LINEAR_LINEAR_MIPLINEAR: 3 = 3

Trilinear is mag = linear and min = linear and mip = linear

LINEAR_LINEAR_MIPNEAREST: 11 = 11

Bilinear is mag = linear and min = linear and mip = nearest

LINEAR_NEAREST: 12 = 12

mag = linear and min = nearest and mip = none

LINEAR_NEAREST_MIPLINEAR: 10 = 10

mag = linear and min = nearest and mip = linear

LINEAR_NEAREST_MIPNEAREST: 9 = 9

mag = linear and min = nearest and mip = nearest

MIRROR_ADDRESSMODE: 2 = 2

Texture is repeating and mirrored

NEAREST_LINEAR: 7 = 7

mag = nearest and min = linear and mip = none

NEAREST_LINEAR_MIPLINEAR: 6 = 6

mag = nearest and min = linear and mip = linear

NEAREST_LINEAR_MIPNEAREST: 5 = 5

mag = nearest and min = linear and mip = nearest

NEAREST_NEAREST: 1 = 1

mag = nearest and min = nearest and mip = none

NEAREST_NEAREST_MIPLINEAR: 8 = 8

nearest is mag = nearest and min = nearest and mip = linear

NEAREST_NEAREST_MIPNEAREST: 4 = 4

mag = nearest and min = nearest and mip = nearest

NEAREST_SAMPLINGMODE: 1 = 1

nearest is mag = nearest and min = nearest and no mip

OnTextureLoadErrorObservable: Observable<BaseTexture>

This observable will notify when any texture had a loading error

PLANAR_MODE: 2 = 2

Planar coordinates mode

PROJECTION_MODE: 4 = 4

Projection coordinates mode

SKYBOX_MODE: 5 = 5

Inverse Cubic coordinates mode

SPHERICAL_MODE: 1 = 1

Spherical coordinates mode

SerializeBuffers: boolean

Gets or sets a general boolean used to indicate that textures containing direct data (buffers) must be saved as part of the serialization process

TRILINEAR_SAMPLINGMODE: 3 = 3

Trilinear is mag = linear and min = linear and mip = linear

UseSerializedUrlIfAny: boolean

Gets or sets a boolean which defines if the texture url must be build from the serialized URL instead of just using the name and loading them side by side with the scene file

WRAP_ADDRESSMODE: 1 = 1

Texture is repeating outside of 0..1 UVs

Accessors

  • get canRescale(): boolean
  • Get if the texture can rescale.

    Returns boolean

  • get coordinatesIndex(): number
  • Returns number

  • set coordinatesIndex(value: number): void
  • Define the UV channel to use starting from 0 and defaulting to 0. This is part of the texture as textures usually maps to one uv set.

    Parameters

    • value: number

    Returns void

  • get coordinatesMode(): number
  • Returns number

  • set coordinatesMode(value: number): void
  • How a texture is mapped.

    Value Type Description
    0 EXPLICIT_MODE
    1 SPHERICAL_MODE
    2 PLANAR_MODE
    3 CUBIC_MODE
    4 PROJECTION_MODE
    5 SKYBOX_MODE
    6 INVCUBIC_MODE
    7 EQUIRECTANGULAR_MODE
    8 FIXED_EQUIRECTANGULAR_MODE
    9 FIXED_EQUIRECTANGULAR_MIRRORED_MODE

    Parameters

    • value: number

    Returns void

  • get errorObject(): undefined | { exception?: any; message?: string }
  • If a loading error occurred this object will be populated with information about the error.

    Returns undefined | { exception?: any; message?: string }

  • get gammaSpace(): boolean
  • Define if the texture contains data in gamma space (most of the png/jpg aside bump). HDR texture are usually stored in linear space. This only impacts the PBR and Background materials

    Returns boolean

  • set gammaSpace(gamma: boolean): void
  • Parameters

    • gamma: boolean

    Returns void

  • get getAlphaFromRGB(): boolean
  • Returns boolean

  • set getAlphaFromRGB(value: boolean): void
  • Defines if the alpha value should be determined via the rgb values. If true the luminance of the pixel might be used to find the corresponding alpha value.

    Parameters

    • value: boolean

    Returns void

  • get hasAlpha(): boolean
  • Returns boolean

  • set hasAlpha(value: boolean): void
  • Define if the texture is having a usable alpha value (can be use for transparency or glossiness for instance).

    Parameters

    • value: boolean

    Returns void

  • get invertY(): boolean
  • Gets a boolean indicating if the texture needs to be inverted on the y axis during loading

    Returns boolean

  • get irradianceTexture(): Nullable<BaseTexture>
  • In case a better definition than spherical harmonics is required for the diffuse part of the environment. You can set the irradiance texture to rely on a texture instead of the spherical approach. This texture need to have the same characteristics than its parent (Cube vs 2d, coordinates mode, Gamma/Linear, RGBD).

    Returns Nullable<BaseTexture>

  • set irradianceTexture(value: Nullable<BaseTexture>): void
  • Parameters

    • value: Nullable<BaseTexture>

    Returns void

  • get is2DArray(): boolean
  • Define if the texture is a 2d array texture (webgl 2) or if false a 2d texture.

    Returns boolean

  • set is2DArray(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get is3D(): boolean
  • Define if the texture is a 3d texture (webgl 2) or if false a 2d texture.

    Returns boolean

  • set is3D(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get isBlocking(): boolean
  • Returns boolean

  • set isBlocking(value: boolean): void
  • Is the texture preventing material to render while loading. If false, a default texture will be used instead of the loading one during the preparation step.

    Parameters

    • value: boolean

    Returns void

  • get isCube(): boolean
  • Define if the texture is a cube texture or if false a 2d texture.

    Returns boolean

  • set isCube(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get isRGBD(): boolean
  • Gets or sets whether or not the texture contains RGBD data.

    Returns boolean

  • set isRGBD(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get linearSpecularLOD(): boolean
  • With prefiltered texture, defined if the specular generation is based on a linear ramp. By default we are using a log2 of the linear roughness helping to keep a better resolution for average roughness values.

    Returns boolean

  • set linearSpecularLOD(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get loadingError(): boolean
  • Was there any loading error?

    Returns boolean

  • get lodGenerationOffset(): number
  • With prefiltered texture, defined the offset used during the prefiltering steps.

    Returns number

  • set lodGenerationOffset(value: number): void
  • Parameters

    • value: number

    Returns void

  • get lodGenerationScale(): number
  • With prefiltered texture, defined the scale used during the prefiltering steps.

    Returns number

  • set lodGenerationScale(value: number): void
  • Parameters

    • value: number

    Returns void

  • get mimeType(): undefined | string
  • Returns the texture mime type if it was defined by a loader (undefined else)

    Returns undefined | string

  • get noMipmap(): boolean
  • Are mip maps generated for this texture or not.

    Returns boolean

  • set onDispose(callback: (() => void)): void
  • Callback triggered when the texture has been disposed. Kept for back compatibility, you can use the onDisposeObservable instead.

    Parameters

    • callback: (() => void)
        • (): void
        • Returns void

    Returns void

  • get samplingMode(): number
  • Get the current sampling mode associated with the texture.

    Returns number

  • get textureFormat(): number
  • Get the texture underlying format (RGB, RGBA...)

    Returns number

  • get textureType(): number
  • Get the texture underlying type (INT, FLOAT...)

    Returns number

  • get uid(): string
  • Define the unique id of the texture in the scene.

    Returns string

  • get wrapU(): number
  • Value Type Description
    0 CLAMP_ADDRESSMODE
    1 WRAP_ADDRESSMODE
    2 MIRROR_ADDRESSMODE

    Returns number

  • set wrapU(value: number): void
  • Parameters

    • value: number

    Returns void

  • get wrapV(): number
  • Value Type Description
    0 CLAMP_ADDRESSMODE
    1 WRAP_ADDRESSMODE
    2 MIRROR_ADDRESSMODE

    Returns number

  • set wrapV(value: number): void
  • Parameters

    • value: number

    Returns void

Methods

  • Checks if the texture has the same transform matrix than another texture

    Returns

    true if the transforms are the same, else false

    Parameters

    • texture: Nullable<Texture>

      texture to check against

    Returns boolean

  • Clones the texture.

    Returns

    the cloned texture

    Returns Texture

  • Dispose the texture and release its associated resources.

    Returns void

  • Force recomputation of spherical polynomials. Can be useful if you generate a cubemap multiple times (from a probe for eg) and you need the proper polynomials each time

    Returns void

  • Get the base size of the texture. It can be different from the size if the texture has been resized for POT for instance

    Returns

    the base size

    Returns ISize

  • Get the current class name of the texture useful for serialization or dynamic coding.

    Returns

    "Texture"

    Returns string

  • Get the underlying lower level texture from Babylon.

    Returns

    the internal texture

    Returns Nullable<InternalTexture>

  • Get the current matrix used to apply reflection. This is useful to rotate an environment texture for instance.

    Returns

    The reflection texture transform

    Returns Matrix

  • Gets a suitable rotate/transform matrix when the texture is used for refraction. There's a separate function from getReflectionTextureMatrix because refraction requires a special configuration of the matrix in right-handed mode.

    Returns

    The refraction matrix

    Returns Matrix

  • Get the scene the texture belongs to.

    Returns

    the scene or null if undefined

    Returns Nullable<Scene>

  • Get the size of the texture.

    Returns

    the texture size.

    Returns ISize

  • Get the current texture matrix which includes the requested offsetting, tiling and rotation components.

    Returns

    the transform matrix of the texture.

    Parameters

    • Optional uBase: number

    Returns Matrix

  • Get if the texture is ready to be used (downloaded, converted, mip mapped...).

    Returns

    true if fully ready

    Returns boolean

  • Get if the texture is ready to be consumed (either it is ready or it is not blocking)

    Returns

    true if ready, not blocking or if there was an error loading the texture

    Returns boolean

  • Reads the pixels stored in the webgl texture and returns them as an ArrayBuffer. This will returns an RGBA array buffer containing either in values (0-255) or float values (0-1) depending of the underlying buffer type.

    Returns

    The Array buffer promise containing the pixels data.

    Parameters

    • Optional faceIndex: number

      defines the face of the texture to read (in case of cube texture)

    • Optional level: number

      defines the LOD level of the texture to read (in case of Mip Maps)

    • Optional buffer: Nullable<ArrayBufferView>

      defines a user defined buffer to fill with data (can be null)

    • Optional flushRenderer: boolean

      true to flush the renderer from the pending commands before reading the pixels

    • Optional noDataConversion: boolean

      false to convert the data to Uint8Array (if texture type is UNSIGNED_BYTE) or to Float32Array (if texture type is anything but UNSIGNED_BYTE). If true, the type of the generated buffer (if buffer==null) will depend on the type of the texture

    • Optional x: number

      defines the region x coordinates to start reading from (default to 0)

    • Optional y: number

      defines the region y coordinates to start reading from (default to 0)

    • Optional width: number

      defines the region width to read from (default to the texture size at level)

    • Optional height: number

      defines the region width to read from (default to the texture size at level)

    Returns Nullable<Promise<ArrayBufferView>>

  • Release and destroy the underlying lower level texture aka internalTexture.

    Returns void

  • Scales the texture if is canRescale()

    Parameters

    • ratio: number

      the resize factor we want to use to rescale

    Returns void

  • Serialize the texture to a JSON representation we can easily use in the respective Parse function.

    Returns

    The JSON representation of the texture

    Returns any

  • Return a string representation of the texture.

    Returns

    the texture as a string

    Returns string

  • Update the sampling mode of the texture. Default is Trilinear mode.

    Value Type Description
    1 NEAREST_SAMPLINGMODE or NEAREST_NEAREST_MIPLINEAR Nearest is: mag = nearest, min = nearest, mip = linear
    2 BILINEAR_SAMPLINGMODE or LINEAR_LINEAR_MIPNEAREST Bilinear is: mag = linear, min = linear, mip = nearest
    3 TRILINEAR_SAMPLINGMODE or LINEAR_LINEAR_MIPLINEAR Trilinear is: mag = linear, min = linear, mip = linear
    4 NEAREST_NEAREST_MIPNEAREST
    5 NEAREST_LINEAR_MIPNEAREST
    6 NEAREST_LINEAR_MIPLINEAR
    7 NEAREST_LINEAR
    8 NEAREST_NEAREST
    9 LINEAR_NEAREST_MIPNEAREST
    10 LINEAR_NEAREST_MIPLINEAR
    11 LINEAR_LINEAR
    12 LINEAR_NEAREST

    mag: magnification filter (close to the viewer) min: minification filter (far from the viewer) mip: filter used between mip map levels

    Parameters

    • samplingMode: number

      Define the new sampling mode of the texture

    Returns void

  • Update the url (and optional buffer) of this texture if url was null during construction.

    Parameters

    • url: string

      the url of the texture

    • Optional buffer: Nullable<string | HTMLImageElement | Blob | ArrayBuffer | ArrayBufferView | ImageBitmap>

      the buffer of the texture (defaults to null)

    • Optional onLoad: (() => void)

      callback called when the texture is loaded (defaults to null)

        • (): void
        • Returns void

    • Optional forcedExtension: string

      defines the extension to use to pick the right loader

    Returns void

  • Creates a texture from its base 64 representation.

    Returns

    the created texture

    Parameters

    • data: string

      Define the base64 payload without the data: prefix

    • name: string

      Define the name of the texture in the scene useful fo caching purpose for instance

    • scene: Scene

      Define the scene the texture should belong to

    • Optional noMipmapOrOptions: boolean | ITextureCreationOptions

      defines if the texture will require mip maps or not or set of all options to create the texture

    • Optional invertY: boolean

      define if the texture needs to be inverted on the y axis during loading

    • Optional samplingMode: number

      define the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)

    • Optional onLoad: Nullable<(() => void)>

      define a callback triggered when the texture has been loaded

    • Optional onError: Nullable<(() => void)>

      define a callback triggered when an error occurred during the loading session

    • Optional format: number

      define the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    Returns Texture

  • Creates a texture from its data: representation. (data: will be added in case only the payload has been passed in)

    Returns

    the created texture

    Parameters

    • name: string

      Define the name of the texture in the scene useful fo caching purpose for instance

    • buffer: any

      define the buffer to load the texture from in case the texture is loaded from a buffer representation

    • scene: Scene

      Define the scene the texture should belong to

    • Optional deleteBuffer: boolean

      define if the buffer we are loading the texture from should be deleted after load

    • Optional noMipmapOrOptions: boolean | ITextureCreationOptions

      defines if the texture will require mip maps or not or set of all options to create the texture

    • Optional invertY: boolean

      define if the texture needs to be inverted on the y axis during loading

    • Optional samplingMode: number

      define the sampling mode we want for the texture while fetching from it (Texture.NEAREST_SAMPLINGMODE...)

    • Optional onLoad: Nullable<(() => void)>

      define a callback triggered when the texture has been loaded

    • Optional onError: Nullable<((message?: string, exception?: any) => void)>

      define a callback triggered when an error occurred during the loading session

    • Optional format: number

      define the format of the texture we are trying to load (Engine.TEXTUREFORMAT_RGBA...)

    • Optional creationFlags: number

      specific flags to use when creating the texture (Constants.TEXTURE_CREATIONFLAG_STORAGE for storage textures, for eg)

    Returns Texture

  • Parse the JSON representation of a texture in order to recreate the texture in the given scene.

    Returns

    The parsed texture if successful

    Parameters

    • parsedTexture: any

      Define the JSON representation of the texture

    • scene: Scene

      Define the scene the parsed texture should be instantiated in

    • rootUrl: string

      Define the root url of the parsing sequence in the case of relative dependencies

    Returns Nullable<BaseTexture>

  • Helper function to be called back once a list of texture contains only ready textures.

    Parameters

    • textures: BaseTexture[]

      Define the list of textures to wait for

    • callback: (() => void)

      Define the callback triggered once the entire list will be ready

        • (): void
        • Returns void

    Returns void

  • Parameters

    • name: Nullable<string>
    • src: string | string[] | HTMLVideoElement
    • scene: Nullable<Scene>
    • Optional generateMipMaps: boolean
    • Optional invertY: boolean
    • Optional samplingMode: number
    • Optional settings: Partial<VideoTextureSettings>
    • Optional onError: Nullable<((message?: string, exception?: any) => void)>
    • Optional format: number

    Returns VideoTexture

Generated using TypeDoc