Skip to main content

UV Editor

The UV Editor is the Level Builder's texture-coordinate workspace. It edits the UVs stored in a project-owned .pmsh mesh and provides PS1-oriented checks before that mesh is compiled to Library/meshes/*.msh.

Open or create a mesh in View > Level Builder, then select Open UV Editor. The UV Editor follows the active Level Builder mesh. If faces are selected, face-oriented operations target those faces; otherwise they target the mesh.

UV Editor showing the six faces of a cube packed inside the UV area

The cube after Auto Unwrap + Pack. The green PS1 UV check confirms that its coordinates are inside 0–1 and its triangles are not collapsed. The mesh remains visible behind the UV window.

Open the image to view it at full size.
  1. Finish the important topology changes in Level Builder.
  2. Select the faces that need a projection, or clear face selection to work on the full mesh.
  3. Use Auto Unwrap + Pack for a practical starting layout.
  4. Display the assigned texture and inspect the result.
  5. Select and transform UV vertices or islands where the automatic layout needs correction.
  6. Resolve the PS1 UV status before saving the mesh.
  7. Save the mesh asset and validate the scene that uses it.

Topology edits can create or remove vertices, so revisit the UV Editor after extruding, insetting, merging, deleting, duplicating, or subdividing faces.

Projection and Packing

CommandResult
Auto Unwrap + PackGenerates box-projected seams and packs the resulting islands
BoxProjects faces according to their dominant axis without packing
Planar X/Y/ZProjects the target faces on the selected world axis
PackRe-packs existing islands using the current padding
NormalizeFits the target UV range into the normalized texture space
Clamp 0-1Clamps target coordinates to the normalized texture bounds

Pack Padding controls the space left between UV islands. A small non-zero padding helps prevent adjacent regions from sampling each other after texture conversion. Packing is deterministic for the same topology, target faces, and padding.

Selection and Navigation

ActionControl
Select one UV vertexLeft click
Add or remove from selectionCtrl + left click
Box selectDrag from empty canvas space
Move selected UVsDrag a selected UV vertex
Select connected islandSelect Island
Select every target UVSelect All
PanMiddle mouse drag
ZoomMouse wheel
Fit the target UVsFrame UVs

Snap moves dragged coordinates on the configured grid. The smallest available grid step is 1/256, which maps cleanly to the coordinate resolution of a 256-pixel texture. Clamp Drag prevents interactive movement from leaving the normalized 0-1 range.

Numeric Transforms

The Selection Transform fields apply offset, scale, and rotation to the selected UV vertices. When nothing is selected, the transform applies to the current target faces. Quick operations are also available for:

  • rotate 90 degrees,
  • flip U,
  • flip V.

These operations isolate UV seams when necessary so editing one face's mapping does not unexpectedly rewrite an unrelated face that previously shared the same position vertex.

Texture Preview

Enable Texture to display the texture assigned through the active mesh's material. The preview is an authoring aid: final palette conversion, texture page placement, CLUT placement, material flags, and GPU dithering still belong to the asset and build pipelines.

If no usable texture is assigned, use the grid and normalized boundary to author the layout, then inspect it again after assigning a material.

PS1 UV Status

The status line reports whether:

  • target UV vertices stay inside 0-1, and
  • any target triangle has collapsed UV area.

An out-of-range coordinate can sample an unintended part of a packed texture page. A collapsed UV triangle cannot map meaningful texture area. Use the status as a local mesh check, then run normal project validation because the UV Editor does not replace VRAM, material, texture-import, geometry, or packet budget validation.

See Level Builder, Texture Import, and PS1 Rendering and Level Authoring.