Texture Attributes (Paint Overlays)
Overview
Texture attributes let you paint values directly onto a mesh at texture-pixel resolution — far finer than per-vertex or per-triangle attributes. Each mesh can carry any number of paint overlay layers, and each layer stores one value per texel of the mesh texture. Typical uses:
- Facies / lithology mapping — paint discrete class IDs over the outcrop texture, coloured from the project facies list.
- Continuous properties — paint values such as weathering grade, fracture intensity or quality flags as a smooth field.
- AI classification results — bake image-segmentation labels from photographs onto the mesh as a recolourable attribute layer (see below).
Layers are composited over the mesh texture at render time — the underlying photo texture is never modified — and are saved with the project.
Layer types
| Type | Values | Painted with | Colours |
|---|---|---|---|
| Discrete | Integer class IDs | The active facies | Facies list colours (recolour live) |
| Continuous | Floating point | The brush Value | The layer's colour map (gradient) |
The value 0 means "unpainted" in both layer types: those texels show the plain mesh texture. For that reason 0 cannot be used as a painted value — use the eraser to return a region to unpainted.
Creating a layer
Either:
- Project tree — expand the mesh, right-click its Paint Overlay Layers node and choose New Discrete Layer or New Continuous Layer. The layer is sized automatically to the mesh's texture set, made active (the paint target) and visible (the rendered layer).
- Ribbon — make the mesh active (double-click it in the tree), then press Paint Texture on the Triangulated Mesh tab. If the mesh has no layer yet, one is created using the New Layer Type setting (see brush settings below) and painting is armed immediately.
A freshly created layer is empty, so the mesh looks unchanged until the first stroke.
A mesh can hold several layers. In the tree, click a layer to make it the visible layer (the one rendered), and use Set as Active to make it the paint target. The two can differ — you can paint into one layer while displaying another.
Painting
- Select the mesh and press Paint Texture on the Triangulated Mesh ribbon tab.
- For a discrete layer, select the facies you want to paint in the facies list — the brush always paints the active facies ID.
- For a continuous layer, set the brush Value in the properties panel.
- Click and drag on the mesh in the 3D view. Fast drags are filled in automatically so strokes come out as continuous bands.
Every stroke is undoable (Ctrl+Z) and redoable (Ctrl+Y), including the most recent stroke.
Brush settings
Select the mesh's Paint Overlay Layers node in the project tree to show its properties. Changes take effect on the next stroke — no need to re-arm the tool.
- Radius (m) — brush radius in world units.
- Hardness — fraction of the radius painted at full strength before the soft falloff begins. Discrete layers take a hard edge at the half-strength contour, so hardness still shapes the footprint.
- Opacity — stroke opacity for continuous layers (values blend toward the brush value). Ignored by discrete layers, which write whole IDs.
- Value (float layers) — the value painted into continuous layers. 0 is reserved for "unpainted".
- Eraser — when enabled, the brush clears paint back to the underlying texture (both layer types).
- New Layer Type — the type used when Paint Texture has to create a layer: 0 = continuous (float), 1 = discrete (int), 2 = discrete (uint).
Display and blending
Also on the Paint Overlays group properties:
- Blend with Texture — off (default): painted texels show the attribute colour, unpainted texels show the texture. On: painted texels are blended with the texture.
- Blend Opacity — blend strength (0.0–1.0).
- Blend Mode — 0 = Replace, 1 = Multiply, 2 = Add, 3 = Overlay, 4 = Screen.
The 3D view legend follows the visible layer: discrete layers show the facies swatches, continuous layers show a gradient scale with the layer's data range. Selecting a layer in the tree also gives access to its colour map and histogram.
Baking AI classifications onto meshes
Image segmentation results from photographs (Segment Anything and the other tools on the 2D Image tab) can be projected through the calibrated camera and baked onto every mesh visible in the photograph, using Bake Labels to Mesh Texture in the photograph view.
When baking you can choose between two targets (the choice is remembered for the session):
- Attribute layer (recommended) — class IDs are written into a discrete layer named "AI Classification" on each mesh. Labels are matched to facies by name, so a label called
Sandstoneneeds a facies calledSandstonein the project facies list; labels without a matching facies are skipped and listed in the summary. The result keeps its class identity: it gets a proper legend, recolours instantly when you edit a facies colour, can be erased or repainted with the brush, and survives save/reload. The photo texture itself is untouched. - Burn into texture (legacy) — label colours are blended permanently into the mesh texture pixels. Class identity is lost, so prefer the attribute layer unless you specifically want an edited texture.
Repeating a bake (for example after segmenting more photographs) updates the same "AI Classification" layer, so results from multiple photographs accumulate on the mesh.
Saving and rendering
- Layers are saved automatically with the project (File → Save) into a compact compressed sidecar file next to the mesh data (
<mesh>.povl). Projects saved before this feature simply load without overlays; older VRGS versions ignore the sidecar and still open the project. - Overlays render — and paint — in both the OpenGL and Vulkan renderers.
Tips
- Texture attributes live at the resolution of the mesh texture — a 4096² texture gives 4096² paintable texels per texture image. For per-vertex or per-triangle properties (dip, curvature, computed attributes) use mesh attributes instead.
- Create your facies (with names and colours) before painting discrete layers or baking classifications — both key off the facies list.
- Use several layers to keep interpretations separate, e.g. one for lithology and one for weathering, and switch the visible layer to compare them.