Documentation / Node reference / tex nodes

tex/Builder

Makes a picture, or a 3D texture, from code nodes run once for every pixel.

Builder

The code nodes inside run once for each pixel of the output, and the tex/Output inside says its colour and alpha. code/Globals gives what changes from one pixel to the next: UV, the centre of the pixel being written, from 0 to 1 across the picture. With nothing else wired, a new builder shows a UV gradient.

Up to four pictures can be wired into the builder. Read one with a code/TextureInput: code/TextureTexel reads its pixels exactly, at the pixel being written or next to it, and code/TextureSample2D with a code/Sampler reads it between pixels. code/Globals' InputColor is the picture on input 0 at the pixel being written. A simulation step reads its picture this way, inside a tex/Solver.

With nothing wired into input 0 the builder makes something new, at the size its params say. dimension _2D makes a picture of resolution2D pixels. dimension _3D makes a 3D texture of resolution3D voxels, a block of values you can look at slice by slice in the texture panel: code/Globals then gives uvw, the centre of the voxel being written, from 0 to 1 on each axis, and VoxelPosition, the voxel's whole-number position. A 3D texture is at most 256 voxels on each axis: above that the builder makes it 256 and warns. A 3D output has no mipmaps.

With a picture or a 3D texture wired into input 0, the output takes its dimension and its size, and dimension and both resolutions are greyed out. A 3D input larger than 256 on an axis gives a smaller output, with a warning; the input is read as it is, never resized.

A 3D builder can read 2D pictures on its other inputs, a gradient used as a lookup for example, at the uvw's first two values. A 2D builder cannot read a 3D texture: wiring one into a 2D builder and reading it is refused, with a message naming the input.

Parameters

Name Type What it does
dimension UInt8 UNKNOWN · _1D · _2D · _3D What the builder makes when nothing is wired into input 0. _2D: a picture of resolution2D pixels. _3D: a 3D texture of resolution3D voxels. Greyed out while input 0 is wired, since the output then takes input 0's dimension.
resolution2D Vector2UInt The size of the picture in pixels, width then height, when dimension is _2D. Greyed out while input 0 is wired, since the output then takes input 0's size.
resolution3D Vector3UInt The size of the 3D texture in voxels, on x, y and z, when dimension is _3D. At most 256 on each axis: a larger value is made 256 and the builder warns. Greyed out while input 0 is wired, since the output then takes input 0's size.
outputFormat UInt8 RGBA8Unorm · RGBA16Float · RGBA32Float How each pixel is stored. RGBA8Unorm: 8 bits a channel, for colours to show (the values are clamped to 0 to 1). RGBA16Float: 16-bit floats, for values outside 0 to 1, an environment map or a simulation. RGBA32Float: 32-bit floats, for the most precision; another tex/Builder cannot read it, so convert it to 16-bit floats first.
generateMipmaps Bool Also make the smaller copies of the picture a material reads from a distance. 2D only.
mipmapsFilter UInt8 Box · EnvironmentGGX How the smaller copies are made. Box: each averages four pixels of the one before. EnvironmentGGX: blurred for rougher reflections, for a picture used as an environment map.

Examples

Scenes you can open in the editor that teach this node.

See also

This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.