UV Layout
Draws a 3D model’s UV layout as a texture-sized image to paint against, with its polygon edges, islands, overlaps, and mirrored halves.
A model’s UVs decide where every texel of its texture lands on the surface. UV Layout shows them flat: paint against it, check a model’s unwrap before you texture it, or export it as a template. Its partner UV Grid shows the same UVs on the model itself, in 3D Render.
The quickest start is the Add UV Layout button on 3D Render, which builds a UV Layout for the model it shows and wires a UV Grid onto both (see Add UV Layout).
The model
Section titled “The model”Choose a model in File: a glTF 2.0 (.gltf, .glb), OBJ (.obj), or FBX (.fbx) file, the same formats 3D Render reads. You can also drop a model file on the File field. The node draws the model’s first UV set, the one 3D Render maps the texture with, so a line on the layout lands exactly on that edge of the model in the render. Turn on Watch File to redraw when the model changes on disk.
The layout uses the same convention as 3D Render and every ArcBrush image: UV (0, 0) is the top-left corner. Neither node has a flip setting, because a flip could only make the lines disagree with where the texture lands.
- Materials lists the model’s materials, one row each, as on 3D Render. Click a row’s eye to hide that material in the layout, and again to show it. The same eyes show the same triangles on both nodes. An eye drawn half open means only some of the meshes using that material are shown; one click shows them all.
- Outside 0 to 1 decides what happens to triangles whose UVs leave the 0 to 1 square. Wrap (the default) repeats them into the square, where the repeating texture puts them on the model. Clip cuts them off at the square’s edge.
Outputs
Section titled “Outputs”- Image is the layout itself, drawn over the Background input when one is wired, else over the Background Color (transparent by default).
- Islands is a single-channel image of exactly what the shown geometry covers in UV space: white inside the islands, black outside, with anti-aliased edges.
Output decides what the node publishes. One Image (the default) is one layout of everything shown; One per Material is a batch with one layout per shown material, and Islands follows with one mask each (see One per Material).
Select the node and the Preview’s tool row starts with Image and Islands view buttons, so you can look at either output without rewiring.
Width and Height set the output size (2048 by 2048 by default, up to 16384). A wired Background sets the size instead, and the two rows hide, along with Background Color, since the layout is drawn on the background.
Lines, fill, and checks
Section titled “Lines, fill, and checks”- Lines: Show picks the edges. All Edges (the default) draws every polygon edge. Island Outlines draws only each island’s border, which is where the seams are. None draws no lines and hides the line rows. Width is the line width in pixels (1.5 by default, anti-aliased) and Color is white by default.
- In the Fill section, Mode colors the islands. None (the default) leaves them unfilled, Flat fills them with one Fill Color (a clear blue by default); Per Island gives every island its own hue, the same each time the model is drawn; Per Material gives every material its own hue the same way, so you can see which islands belong to which material. Fill Opacity (0.35 by default) sets how strongly the fill covers what is under it.
- Show Overlaps tints geometry stacked on other geometry: red where it stacks by accident, amber where a mirrored half lies on its original, the usual way to share one half of a texture between two sides.
- Show Mirrored tints violet each island whose UVs are mirrored, so the texture reads backward on it. An island counts as mirrored when its UVs wind the other way from the model’s front faces.
The tints sit under the lines, so the edges stay readable.
Polygons and triangles
Section titled “Polygons and triangles”All Edges draws polygon outlines: a quad shows its four edges and an n-gon its outline, never the diagonals the model is split into for rendering. OBJ and FBX files keep their polygons, so their layouts read as the model was built. A glTF file stores triangles only, so every triangle edge shows, and the status line says so: “glTF stores triangles only, so every triangle edge shows.” Island Outlines looks the same for every format.
Status lines
Section titled “Status lines”The lines under File describe the model:
- The triangle and island counts, such as “12,480 triangles, 36 islands”, or “No UVs in this model”.
- How many materials are shown, such as “2 of 5 materials shown”, when the file has more than one.
- The share of triangles outside 0 to 1, such as “8% of triangles lie outside 0 to 1”, with “and are cut off” under Clip.
- With Show Overlaps on, how many islands overlap by accident and how many mirrored islands are stacked on their originals, or “No islands overlap”.
- For a UDIM model, where every island sits inside one whole tile and more than one tile is used, the tiles it spans: “UVs span 4 UDIM tiles (1001 to 1004); UDIM tiles are drawn on top of each other”. ArcBrush textures one 0 to 1 square, so the tiles land on the same square of the layout and of the render.
- Notes from the model loader, the same ones 3D Render shows.
Painting against the layout
Section titled “Painting against the layout”The layout is texture-sized, so it lines up pixel for pixel with a texture painted at the same size. Two ways to use it:
- Draw the layout over your texture. Wire your texture (a Paint node, an Image In, or the end of a texture chain) into UV Layout’s Background. The layout takes the texture’s size and draws its lines over it, so you see at once whether a painted feature sits on the island it was meant for. Keep 3D Render’s Texture wired from the texture itself, not from the layout.
- Start from the layout. Export the layout as a template and paint over it in another app, or wire it as the top layer of a Layer stack while you work and hide that layer before you export.
Mind the seams
Section titled “Mind the seams”Texture filtering and mipmaps read a little past each island’s edge, so paint needs to run past it too. The Islands output is the exact coverage of the islands: wire it into Mask Refine and set Erode / Dilate to a negative value to grow it by that many pixels. The grown mask shows how far past each island to paint, or masks a fill that bleeds the texture’s edge colors outward.
A texture that looks upside down
Section titled “A texture that looks upside down”If the painted features sit mirrored top to bottom against the lines, the texture was authored for an app that counts UVs from the bottom-left. Flip that image with a Mirror node set to Vertical before it reaches 3D Render; the lines then sit on the features and the render matches.
Do not wire a transparent layout into 3D Render’s Texture
Section titled “Do not wire a transparent layout into 3D Render’s Texture”3D Render reads a single image’s alpha as the surface’s opacity. The layout is transparent everywhere but its lines and fill by default, so wired straight into 3D Render’s Texture it would cut the model away and leave only a wireframe. To see the layout on the model, give it something opaque underneath first: an opaque Background Color, a UV Grid, or your texture on its Background input. Add UV Layout never makes that wire.
One per Material
Section titled “One per Material”Set Output to One per Material to paint each material of a model on its own texture. The node then publishes a batch with one layout for each shown material, named after it, and Islands follows with one mask per material under the same names. A material hidden with its eye gets no layout, and a model with one material gives a batch of one, so what the node publishes follows the Materials list, not the file.
The layouts are named as 3D Render’s Materials table and Model Textures name the materials, so a batch painted over them, wired into 3D Render’s Texture under Assign by Material, puts each painting on its own material. As with one layout, give the layouts an opaque background before they reach 3D Render (see above).
Background under One per Material:
- One image backs every layout.
- A batch pairs with the shown materials by name first: an image named after a material, in any letter case, backs that material’s layout. The images left over then pair with the materials left over in the Materials list’s order, when there are as many of each. The Base Color batch that Split Texture takes from a Model Textures library, or a batch of images you named after the materials, pairs by name; a batch with other names pairs in order.
- A line under the status lines lists every pairing, such as “Wood: Wood, Metal: crate_metal (in order)”, so a wrong pair shows at once.
- When a material is left with no image, the node stops with an error naming it, such as “3 materials are shown but the background has 2 images, and Glass has no image to match by name.”
Sharing one model path
Section titled “Sharing one model path”UV Layout, 3D Render, and Model Textures each keep their own File row. Add UV Layout fills the new layout’s File from 3D Render for you, and you can also drop a model file on the File field. On a UV Layout or 3D Render you added by hand, click the arrow beside the File field and pick the model from In this document, the models this project already uses; the path is copied exactly as the other node stores it (see Choosing a file the project already uses). If the model later moves, one Locate… in File > Missing Files… relinks every node that reads it (Missing Files).
When both should follow one place, use a token in both rows. {project_dir}/models/chair.glb resolves against the folder the saved .arcb file is in, on any machine, and a variable you define ({MODELS}/chair.glb) moves both nodes when you change it once.
Parameters
Section titled “Parameters”Pins
Model
A glTF 2.0 (.gltf, .glb), OBJ (.obj) or FBX (.fbx) model. Its first UV set is drawn, the one 3D Render maps the texture with
Reload when the model file changes on disk (polls once per second)
What to draw when the file splits its geometry across several materials.
- All Geometry: the whole model.
- Selected Materials: only the materials whose eye is open in the Materials table, the same ones 3D Render shows for the same eyes.
Set by the Materials table's eyes.
The material groups Selected Materials draws, as the loader names them. Edit through the Materials table's eyes
Mapping
Where triangles with UVs outside the 0 to 1 square are drawn.
- Wrap: repeated into the square, where the repeating texture puts them on the model.
- Clip: cut off at the square's edge.
Output
Output width. A wired background sets the size instead
Output height. A wired background sets the size instead
The color under the layout, transparent by default. A wired background is drawn on instead
What the node publishes.
- One Image: one layout of everything shown.
- One per Material: a batch with one layout per shown material, each named after its material, so a painted batch fills the matching materials in 3D Render. A batch on Background pairs with the materials by name, then in order.
Lines
Which edges are drawn.
- All Edges: every polygon edge. A glTF model stores triangles only, so it shows every triangle edge.
- Island Outlines: only each island's border, which is where the seams are.
- None: no lines.
Line width in pixels, anti-aliased
Line color
Fill
How the islands are filled.
- None: no fill.
- Flat: one color.
- Per Island: a different hue for each island, the same every time the model is drawn.
- Per Material: a different hue for each material, the same every time the model is drawn.
The fill color
How strongly the fill covers what is under it
Checks
Tints geometry stacked on other geometry: red where it stacks by accident, amber where a mirrored half lies on its original
Tints violet each island whose UVs are mirrored, so the texture reads backward on it
Usage Tips
Section titled “Usage Tips”- Turn on Show Overlaps and Show Mirrored before you start painting, so a stacked or mirrored island is no surprise.
- Use Island Outlines when you only need the seams; All Edges on a dense model can bury the picture under lines.
- Per Island fill tells neighboring islands apart at a glance, even where their outlines touch.
- When 3D Render’s UV Tiling or UV Aspect is not 1, the render repeats or stretches the texture across the UVs; the layout always shows one repeat.