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 |
| uvNode |
The uv node. Default is |
| levelNode |
The level node. Default is |
| biasNode |
The bias node. Default is |
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.
.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
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 |
- 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.