Mockup G — Imported-mesh texture replacement (UV-mapped)

Build
Tree.glb
FACE
COLOR
Color tint applies on top of the imported UV-mapped textures.
MATERIAL 🔗 UV-mapped (3 slots)
Presets disabled — UV-mapped meshes use their imported materials. Right-click → Override imported material to override per-slot.
TEXTURE — 3 slots
bark.png
leaves.png
flower.png
UVs are imported from the source mesh. Replace textures here; for layout edits re-export from your modeling tool.
LI: 4/500 · Dyn: 0/50 · Obj: 47

What's special on imported meshes

  • Acknowledgement chip beside MATERIAL heading — 🔗 UV-mapped (3 slots) — communicates "we know this is an imported mesh, not a parametric prim."
  • Material preset chips greyed with explanatory copy. Clicking "Metal" on a UV-mapped tree shouldn't apply across the whole mesh because it conflicts with the imported per-slot materials.
  • Per-slot TextureThumb rows — one per material slot. Each shows the slot's diffuse texture as a thumbnail with name + [Replace ▸] button.
  • Color picker still applies as tint — works on UV-mapped meshes (multiplies into albedoColor); reassurance hint says so explicitly.
  • One-line disclaim at the bottom — sets correct expectations about what's editable in-world vs what needs external tooling.

Detection rule

  • "UV-mapped imported mesh" trigger condition: mesh.geometry.hasAttribute('uv') AND mesh has >0 slot materials in its MultiMaterial from import (not procedurally added).
  • Parametric prims (Box / Sphere / Cylinder / Torus) never trigger this mode — they get the regular Mockup A LookTab.

Phase placement

  • Estimated ~550 LOC. Fits inside ADR-126 phase 2 or 3 — does not require ADR-131 (the layout-editor stub).

Pending Q answers

  • Q12 — §2.4 scope-clarification + future ADR-131 stub.
  • Q13 — separate [Replace ▸] button vs reuse [↑] upload-icon. This mockup shows separate Replace + Clear; tech track preference still open.