Skip to content

Texture

Texture
Texture

Texture assembles the maps of one asset into a single texture set on one wire. Wire in whichever maps the asset has, and the set can be moved by the geometry nodes, stacked in Texture Layer, scattered, previewed in 3D Render, and written by Export Texture without coming apart.

Use it for maps you built in the graph, and to override one role on an existing set. To bring in a downloaded material folder, use Texture Folder instead.

The role inputs are Base Color, Normal, Roughness, Metallic, AO, Height, Opacity, and Emissive. An unconnected role is absent from the set, never filled with a neutral value.

Base Color, Normal, and Emissive take a full-color image. The single-value roles (Roughness, Metallic, AO, Height, Opacity) accept a grayscale or an RGB image and read the red channel, so a map saved as RGB needs no conversion and no color space setting.

Name travels with the set: Texture Layer names its rows by it, and Export Texture fills the {name} token with it, so set it early. Left empty, an incoming set keeps its own name.

Normal Convention (OpenGL or DirectX) applies only to a Normal connected on this node; an inherited Normal keeps its own.

Opacity From decides where the set’s Opacity, its cutout, comes from: Opacity Input (the map on the Opacity pin), Base Color Alpha, or None (Opaque). A set has exactly one Opacity, and this row sets it. A map’s own alpha is never read as Opacity, so a Base Color with a stray alpha stays opaque unless you pick Base Color Alpha. When an Opacity map is wired but the row names another source, an amber line under the row says the Opacity input is not used.

The node body shows a film strip of every map the set carries, in Preview order, so you can see which roles arrived.

Wire an existing set into the optional Texture input and the node becomes an override. A freshly connected role pin replaces that role outright; every unconnected role, the Normal convention, the name, and the set’s Opacity pass through unchanged. To replace a map, wire the new one into its role pin. A tone or color edit on one map needs no override: pick the map on the node’s Map row (see Changing one map). To run a node that does not take a set, such as Posterize, on one map:

  1. Split Texture the asset.
  2. Edit the one map.
  3. Wire it plus the original set into a second Texture.

Opacity Input and Base Color Alpha recompute the Opacity only when that input was freshly connected on this node; otherwise the incoming set’s Opacity is kept. None (Opaque) always makes the set opaque. This keeps a Texture Layer’s composed Opacity from being quietly replaced on a later override. Wiring an Opacity map in on purpose is how you do replace it, which is how a window is cut into a layered wall (see Texture Layer).

The texture input also takes a library: each set is overridden by the role maps wired in, frame by frame, pairing the library’s frames with a batch on a role pin by position (the counts must match), while a single map on a role pin applies to every set.

Texture reads a Normal the same way Normal Map, Relight, and 3D Render do, so a Normal Map node’s output, an 8-bit normal PNG, and a set’s Normal all agree.

A normal map holds packed directions, not light. When you load one with Image In or Image Folder, set that node’s Input Color Space to Normal Map so it displays and reads correctly. Left on Auto, a float EXR normal looks washed out and every node that reads normals tilts it.

Pins

Base ColorImage
InputOptional
NormalImage
InputOptional
RoughnessPixels
InputOptional
MetallicPixels
InputOptional
AOPixels
InputOptional
HeightPixels
InputOptional
OpacityPixels
InputOptional
EmissiveImage
InputOptional
TextureTexture
InputOptional
TextureTexture
Output

Texture

NameText

Asset name carried by the texture set. Left empty, an incoming set keeps its own name

Normal ConventionChoice
Default: OpenGL (Y+ up) Range: OpenGL (Y+ up) / DirectX (Y+ down)

Green-channel orientation of the connected Normal map.

  • OpenGL (Y+ up): the Normal Map node's output and most OpenGL-style maps.
  • DirectX (Y+ down): the other common convention.

Applies only when Normal is connected; an inherited Normal keeps its own convention.

Opacity FromChoice
Default: Opacity Input Range: Opacity Input / Base Color Alpha / None (Opaque)

Where the set's Opacity (its cutout) comes from.

  • Opacity Input: the connected Opacity map.
  • Base Color Alpha: the connected Base Color map's alpha.
  • None (Opaque): fully opaque.

A choice applies only when that input is connected here; otherwise an incoming set keeps its Opacity.

  • A packed file such as an ORM map does not need to be pulled apart by hand. Texture Folder unpacks it into roles when you pick the Source it was written in.
  • Wire the set into 3D Render’s Texture input to check the material on a mesh while you work.
  • Texture work wants 32-bit (Float) Mode, the default for new projects, so 16-bit sources and signed heights keep their full range.
  • Search the node library for “pbr”, “material”, “texture set”, “channels”, or “roles”.