📄 threejs/Core/Nodes/TextureNode

File: TextureNode.md | Updated: 11/15/2025


title: TextureNode category: Core layout: docs

TextureNode

This type of uniform node represents a 2D texture.

Constructor

new TextureNode( value : Texture, uvNode : Node.<(vec2|vec3)>, levelNode : Node.<int>, biasNode : Node.<float> )

Constructs a new texture node.

value | The texture. Default is EmptyTexture.
---|---
uvNode | The uv node. Default is null.
levelNode | The level node. Default is null.
biasNode | The bias node. Default is null.

Properties

.biasNode : Node.<float>

Represents the bias to be applied during level-of-detail computation.

Default is null.

.compareNode : Node.<float>

Represents a reference value a texture sample is compared to.

Default is null.

.depthNode : Node.<int>

When using texture arrays, the depth node defines the layer to select.

Default is null.

.gradNode : Array.<Node.<vec2>>

When defined, a texture is sampled using explicit gradients.

Default is null.

.isTextureNode : boolean (readonly)

This flag can be used for type testing.

Default is true.

.levelNode : Node.<int>

Represents the mip level that should be selected.

Default is null.

.offsetNode : Node.<(ivec2|ivec3)>

Represents the optional texel offset applied to the unnormalized texture coordinate before sampling the texture.

Default is null.

.referenceNode : Node

The reference node.

Default is null.

.sampler : boolean

Whether texture values should be sampled or fetched.

Default is true.

.updateMatrix : boolean

Whether the uv transformation matrix should be automatically updated or not. Use setUpdateMatrix() if you want to change the value of the property.

Default is false.

.updateType : string

By default the update() method is not executed. Depending on whether a uv transformation matrix and/or flipY is applied, update() is executed per object.

Default is 'none'.

Overrides: UniformNode#updateType

.uvNode : Node.<(vec2|vec3)>

Represents the texture coordinates.

Default is null.

.value : Texture

The texture value.

Overrides: UniformNode#value

Methods

.bias( biasNode : Node.<float> ) : TextureNode

Samples the texture with the given bias.

biasNode | The bias node.
---|---

Returns: A texture node representing the texture sample.

.blur( amountNode : Node.<float> ) : TextureNode

Samples a blurred version of the texture by defining an internal bias.

amountNode | How blurred the texture should be.
---|---

Returns: A texture node representing the texture sample.

.clone() : TextureNode

Clones the texture node.

Returns: The cloned texture node.

.compare( compareNode : Node.<float> ) : TextureNode

Samples the texture by executing a compare operation.

compareNode | The node that defines the compare value.
---|---

Returns: A texture node representing the texture sample.

.depth( depthNode : Node.<int> ) : TextureNode

Samples the texture by defining a depth node.

depthNode | The depth node.
---|---

Returns: A texture node representing the texture sample.

.generate( builder : NodeBuilder, output : string ) : string

Generates the code snippet of the texture node.

builder | The current node builder.
---|---
output | The current output.

Overrides: UniformNode#generate

Returns: The generated code snippet.

.generateOffset( builder : NodeBuilder, offsetNode : Node ) : string

Generates the offset code snippet.

builder | The current node builder.
---|---
offsetNode | The offset node to generate code for.

Returns: The generated code snippet.

.generateSnippet( builder : NodeBuilder, textureProperty : string, uvSnippet : string, levelSnippet : string, biasSnippet : string, depthSnippet : string, compareSnippet : string, gradSnippet : Array.<string>, offsetSnippet : string ) : string

Generates the snippet for the texture sampling.

builder | The current node builder.
---|---
textureProperty | The texture property.
uvSnippet | The uv snippet.
levelSnippet | The level snippet.
biasSnippet | The bias snippet.
depthSnippet | The depth snippet.
compareSnippet | The compare snippet.
gradSnippet | The grad snippet.
offsetSnippet | The offset snippet.

Returns: The generated code snippet.

.generateUV( builder : NodeBuilder, uvNode : Node ) : string

Generates the uv code snippet.

builder | The current node builder.
---|---
uvNode | The uv node to generate code for.

Returns: The generated code snippet.

.getBase() : TextureNode

Returns the base texture of this node.

Returns: The base texture node.

.getDefaultUV() : AttributeNode.<vec2>

Returns a default uvs based on the current texture's channel.

Returns: The default uvs.

.getInputType( builder : NodeBuilder ) : string

Overwrites the default implementation to return a fixed value 'texture'.

builder | The current node builder.
---|---

Overrides: UniformNode#getInputType

Returns: The input type.

.getNodeType( builder : NodeBuilder ) : string

Overwritten since the node type is inferred from the texture type.

builder | The current node builder.
---|---

Overrides: UniformNode#getNodeType

Returns: The node type.

.getSampler() : boolean

Returns the sampler value.

Returns: The sampler value.

.getTransformedUV( uvNode : Node ) : Node

Transforms the given uv node with the texture transformation matrix.

uvNode | The uv node to transform.
---|---

Returns: The transformed uv node.

.getUniformHash( builder : NodeBuilder ) : string

Overwritten since the uniform hash is defined by the texture's UUID.

builder | The current node builder.
---|---

Overrides: UniformNode#getUniformHash

Returns: The uniform hash.

.grad( gradNodeX : Node.<vec2>, gradNodeY : Node.<vec2> ) : TextureNode

Samples the texture using an explicit gradient.

gradNodeX | The gradX node.
---|---
gradNodeY | The gradY node.

Returns: A texture node representing the texture sample.

.level( levelNode : Node.<int> ) : TextureNode

Samples a specific mip of the texture.

levelNode | The mip level to sample.
---|---

Returns: A texture node representing the texture sample.

.load( uvNode : Node.<uvec2> ) : TextureNode

TSL function for creating a texture node that fetches/loads texels without interpolation.

uvNode | The uv node.
---|---

Returns: A texture node representing the texture load.

.offset( offsetNode : Node.<ivec2> ) : TextureNode

Samples the texture by defining an offset node.

offsetNode | The offset node.
---|---

Returns: A texture node representing the texture sample.

.sample( uvNode : Node ) : TextureNode

Samples the texture with the given uv node.

uvNode | The uv node.
---|---

Returns: A texture node representing the texture sample.

.setSampler( value : boolean ) : TextureNode

Sets the sampler value.

value | The sampler value to set.
---|---

Returns: A reference to this texture node.

.setUpdateMatrix( value : boolean ) : TextureNode

Defines whether the uv transformation matrix should automatically be updated or not.

value | The update toggle.
---|---

Returns: A reference to this node.

.setup( builder : NodeBuilder )

Setups texture node by preparing the internal nodes for code generation.

builder | The current node builder.
---|---

Overrides: UniformNode#setup

.setupUV( builder : NodeBuilder, uvNode : Node ) : Node

Setups the uv node. Depending on the backend as well as texture's image and type, it might be necessary to modify the uv node for correct sampling.

builder | The current node builder.
---|---
uvNode | The uv node to setup.

Returns: The updated uv node.

.size( levelNode : Node.<int> ) : TextureSizeNode

Returns the texture size of the requested level.

levelNode | The level to compute the size for.
---|---

Returns: The texture size.

.update()

The update is used to implement the update of the uv transformation matrix.

Overrides: UniformNode#update

.updateReference( state : any ) : Texture

Overwritten to always return the texture reference of the node.

state | This method can be invocated in different contexts so state can refer to any object type.
---|---

Overrides: UniformNode#updateReference

Returns: The texture reference.

.uv( uvNode : Node ) : TextureNode

uvNode | The uv node.
---|---

Deprecated: since r172. Use TextureNode#sample instead.

Returns: A texture node representing the texture sample.

Source

src/nodes/accessors/TextureNode.js