UV Surgeon — používateľský manuál
Úprava UV islandov s živým náhľadom textúry. Ostrovy si nesú textúry medzi Main, Dockom a Targetom. Každá mapa má vlastnú Target textúru. Export zapíše bakeované mapy plus UV do meshu (OBJ, GLB, alebo chirurgický FBX UV patch).
1. Čo UV Surgeon je
UV Surgeon je 2D editor UV islandov pre hry a 3D prácu. Importuješ model, ktorý už má UV, posúvaš / rotuješ / škáluješ ostrovy, držíš textúry v súlade a exportuješ aktualizované mapy a UV. Nie je to 3D modelár ani automatický unwrap.
- Main canvas — UV layout na mriežke 0–1 (alebo UDIM) s náhľadom textúry.
- Dock — ostrovy odložíš pod canvasy. Mapy, ktoré nesú, sa uložia s nimi.
- Target canvas — druhý UV priestor. Každá mapa UV kanála má vlastnú Target textúru a ostrovy prichádzajú aj s pixelmi.
- Export — bake textúr (PNG / TGA / JPEG) a zápis UV do meshu.
Tile Surgeon robí okraje dlaždíc a koridory. Stitch Surgeon bali sprity do atlasu. UV Surgeon edituje UV islandy na 3D meshoch. Sprite Surgeon (keď vyjde) ťahá sprity z existujúcich sheetov.
2. Disclaimer a limity
UV Surgeon upravuje UV a textúry, ktoré dodáš ty. Neudeľuje práva k cudziemu umeniu ani modelom. Pred exportom si zálohuj zdrojové meshe a projekty.
- Obsah ostáva tvoj. Exporty a projekty
.uvssú tvoje. Za legalitu importov zodpovedáš ty. Oficiálne podmienky: Help → License Agreement. Tento manuál EULA nemení. - Nie je to unwrap. Model už musí mať UV islandy. Aplikácia ich presúva; v 3D nerezá nové seamy.
- Import. OBJ, binárne FBX 7.1+ a GLB/GLTF. ASCII FBX, staršie binárne FBX, sparse GLB a Draco GLB nie sú podporované.
- Export meshu. OBJ (iba UV kanál 0), GLB (až štyri UV sady, triangulácia) a FBX UV update do kópie zdroja, keď bol projekt importovaný z binárneho FBX. Instancované FBX meshe sa preskočia. Extra UV sloty vytvorené len v appke sa do FBX ako nové vrstvy nezapíšu.
- OBJ z GLB. Ide, s limitmi: triangulácia, len UV0, bez materiálov/textúr v OBJ. Pre GLB zdroj radšej exportuj GLB.
- 3D náhľad. Ak OpenGL nie je dostupné, 2D editácia ostáva. View → Retry 3D Preview.
3. Rýchly štart (5 minút)
- Help → Open Sample Project — bundled kaktus (FBX + PBR mapy ako textúrové kanály). Alebo File → Import Model (Ctrl+M) pre vlastný OBJ/FBX/GLB.
- File → Add Texture Channel (Ctrl+T) — ak si importoval vlastný mesh, pridaj diffuse mapu na náhľad a bake.
- Klikni ostrov (Shift na viac, ťahanie na prázdnom mieste = box). Ťahaj na posun.
- Drž R a ťahaj na rotáciu, S na scale. V toolbare Rotate / Scale pivot: Local (vlastný stred) alebo Global (celá selekcia).
- Voliteľne: Ctrl+G zoskupí ostrovy. D ich odloží do Docku aj s textúrami. Zapni Target Canvas, načítaj alebo vytvor Target textúru pre mapu a T ostrovy pošle tam — UV aj pixely spolu. Pack je v pravom sidebare.
- File → Save As — projekt
.uvs. Potom File → Export / Bake (Ctrl+E).
Pri prvom spustení Welcome ponúkne Open Sample Project (predvolené) alebo Start Empty. Potom kedykoľvek Help → Open Sample Project. Sample sa skopíruje do zapisovateľného priečinka, takže môžeš ukladať a exportovať bez siahania na inštaláciu.
4. Prehľad UI
5. Import
File → Import Model otvorí OBJ, FBX alebo GLB. Po výbere súboru môžeš zlúčiť materiály do jednej sady (keď celý model zdieľa jeden UV priestor).
- FBX — skupiny podľa FBX materiálov, nie podľa mien objektov. N-gony ostávajú. Až štyri UV kanály zo súboru.
- OBJ — skupiny podľa
usemtl. V meshi je jedna UV mapa; v appke môžeš pridať UV1–UV3 na editáciu. - GLB — pri importe triangulácia. Viac TEXCOORD sád, keď v súbore sú.
6. Canvas, výber a groups
- Koliesko zoomuje. Medzerník + ťahanie alebo stredné tlačidlo posúva. Ctrl+0 reset zoomu, Ctrl+F fit.
- Klik na ostrov; Shift+klik pridáva; ťahanie na prázdnom canvas = box. Ctrl+A všetko, Ctrl+D zrušiť výber.
- Šípky posúvajú; Shift zväčší krok.
Groups
Vyber dva alebo viac ostrovov a stlač Ctrl+G (alebo + New Group v ľavom sidebare). Pomenované skupiny sú pod Groups. Klik na skupinu v zozname znova vyberie jej členov. Zoskupené ostrovy sa pri posune / rotácii / scale hýbu spolu a Pack ich berie ako jednu pevnú jednotku, takže relatívny layout ostane.
- Ctrl+Shift+G (alebo Dissolve) grouping zruší, ostrovy neodstráni.
- Lock v sidebare ochráni skupinu pred omylom.
- Groups sú per canvas: main a Target majú vlastný zoznam.
7. Posun, rotácia, scale
Ťahaním presúvaš výber. Drž R (alebo Alt+ťahanie) na rotáciu; S na scale. Esc zruší prebiehajúce gesto.
Combo v toolbare Rotate / Scale pivot platí pre rotáciu aj scale:
- Local — own center — každý ostrov okolo vlastného stredu. Pri scale ostávajú centroidy na mieste.
- Global — selection — celá selekcia okolo spoločného stredu. Viac ostrovov sa pri scale roztiahne ako jedna bunka.
Move with texture (toolbar, alebo U) posúva náhľad spolu s ostrovom a rozhoduje, či sa pri odoslaní do Docku alebo na Target nesú aj pixely. Vypnuté = len UV: tvar sa hýbe, pixely ostávajú.
Číselný scale v sidebare pre jeden ostrov ostáva okolo vlastného stredu.
8. Textúrové kanály
Každá materiálová sada môže mať viac kanálov (diffuse, normal, …). Klik na kanál v sidebare ho ukáže na canvase. UV kanál v toolbare prepína, ktorú sadu máp edituješ — a s ňou aj Target textúry toho kanála. Freeze kanál vynechá z transformácie textúry aj z odoslania na Target.
Druhý UV kanál pri OBJ projekte zobrazí upozornenie: OBJ export stále píše len UV0; na viac UV sád použi GLB, alebo FBX export, ak bol zdroj FBX.
UDIM: ak sa nájde viac dlaždíc (1001, 1002, …), vyberieš ktoré načítať. Väčšina herných assetov používa jednu dlaždicu 0–1.
9. Dock
Dock je polica pod canvasmi. Zobrazíš alebo skryješ ju tlačidlom Dock v mode bare. Ostrovy tam odložíš, kým preusporiadaš dlaždicu, a potom ich vrátiš. Ostrov si berie textúru so sebou.
- Vyber ostrovy na Main alebo Target a stlač D, alebo Send to Dock v pravom sidebare.
- Každá mapa, ktorú ostrov nesie, sa uloží s ním. Toolbar Show dock textures zapína náhľady. Keď je Move with texture vypnuté, odloží sa len UV tvar.
- Stored maps vpravo v Docku tie mapy vypíše. Klik jednu ukáže na odložených ostrovoch. Pravý klik a Use … for aktuálnu Main mapu použije, keď sa má uložený výrez stať mapou, ktorú edituješ. Current map vráti náhľad na mapu vybranú na Main.
- Place on Canvas položí výber späť na Main, aj s textúrou. Ak ostrov prišiel z iného materiálu, môžeš sa prepnúť na ten materiál alebo nechať aktuálny.
- Place on Target (from Dock) pošle výber z Docku na Target. T spraví to isté, kým je aktívny výber v Docku.
- Škálovaný alebo otočený ostrov vyvolá Active Transforms Detected: transformácie sa použijú na položenie, alebo sa položí netransformovaný tvar. Ak sa uložená textúra a cieľ líšia veľkosťou, Resolution Mismatch sa pýta, či zachovať pôvodnú texel density, alebo zladiť rozlíšenie cieľa (pozri Target).
- Pack na Main docknuté ostrovy preskakuje. Sú mimo dlaždice, kým ich nepoložíš.
10. Target canvas a pack
Target je druhý UV priestor vedľa Main. Zapneš ho tlačidlom Target Canvas v mode bare (bodka na tlačidle znamená, že tento UV kanál už má Target textúru). Ostrovy sa tam presúvajú aj s pixelmi. Skrytie Targetu, keď je na ňom niečo vybrané, sa najprv opýta — skrytie ten výber zruší.
Jedna Target textúra na mapu
Každá mapa UV kanála spája jednu Main textúru s vlastnou Target textúrou. Mapa 1 môže byť diffuse, mapa 2 normal. Mapa, na ktorú sa pozeráš, je pozadie Target canvasu a každý ostrov tam ukazuje výrez tejto mapy. Prepnutie UV kanála v toolbare prepne aj tieto páry.
Otvor Texture assignment nad Target canvasom.
- Load… / Replace…, alebo dvojklik na bunku Target. Obrázok vieš na riadok aj pustiť z prieskumníka.
- New blank… vytvorí prázdnu Target textúru. Veľkosť, ktorú zvolíš, je Target veľkosť tohto UV kanála.
- Remove zmaže Target textúru tej mapy. Ostrovy, ktoré už na Targete sú, ostanú. Ak to bola posledná Target textúra, ďalšie ostrovy tam nepošleš, kým jednu nenačítaš alebo nevytvoríš.
- Ťahanie v stĺpci vymení dve Main textúry, alebo dve Target textúry. Druhý stĺpec ostane na mieste.
- Mapa bez vlastnej Target textúry sa zobrazí a neskôr aj bakeuje ako čierna v Target veľkosti.
Hlavička píše názov a veľkosť Main → názov a veľkosť Target a volí, čo znamená rozdiel veľkostí:
- Match UV — ostrov si nechá svoju UV veľkosť.
- Hold density — ostrov si pri bake nechá texel veľkosť.
Táto voľba platí len keď má Target textúra inú veľkosť ako Main textúra. To isté je v pravom kliku na riadok, pod When sizes differ.
Odoslanie ostrovov
Skôr než ostrov môže pristáť na Targete, musí existovať aspoň jedna Target textúra — tá nastaví Target veľkosť. T bez nej sa opýta, či textúru načítať, alebo vytvoriť prázdnu.
- Vyber ostrovy na Main alebo v Docku a stlač T, alebo Send to Target Canvas. Z Targetu ich D odloží do Docku aj s pixelmi, ktoré tam majú.
- Z Main sa každá mapa vyreže z živej textúry. Z Docku ostrov prinesie mapy, ktoré mal uložené pri odložení. Zmrazené mapy ostanú bez zmeny.
- Active Transforms Detected — ostrov je škálovaný alebo otočený. Transformácie sa použijú na položenie, alebo sa položí netransformovaný tvar.
- Resolution Mismatch — zdroj a Target textúra majú iné rozlíšenie. Keep Original Texel Density drží hustotu pixelov, takže ostrov zaberie viac alebo menej UV priestoru. Match target resolution drží UV stopu a hustota pixelov sa preškáluje. Položenie späť na Main ponúka Match Main Canvas resolution s rovnakým významom.
- Klik na Target canvas z neho spraví aktívne pole. Pack, explode a overlap potom platia tam.
Pack
UV Pack v pravom sidebare rozloží ostrovy v aktívnej dlaždici 0–1. Neunwrapuje; len preusporiada (a voliteľne otočí) to, čo už máš.
- Scope — všetky ostrovy na aktívnom canvase, alebo len selected.
- Algorithm — Shelf (rýchly) alebo Guillotine (tesnejší pack).
- Padding / Margin — medzera v pixeloch medzi ostrovmi a od okraja dlaždice.
- Scale to fit tile — jednotne zmenší pack set, aby sa zmestil, a potom rozloží.
- Allow 90° rotation — skúsi štvrťotáčku ostrova, keď to zhustí pack.
- Zoskupené ostrovy ostávajú spolu (jedna pack jednotka). Docknuté ostrovy na main canvase sa preskočia.
Explode je opačný ťah: prekryté ostrovy rozfukuje do radov nad/pod dlaždicu, aby si ich mohol ručne triediť a znova packnúť.
11. 3D náhľad
View → Model Preview ukáže mesh s aktuálnymi UV, keď OpenGL funguje. Na niektorých notebookoch (hybrid NVIDIA/AMD/Intel) prvý probe zlyhá: 2D ostáva použiteľné. View → Retry 3D Preview probe spustí znova. Zákazník nemusí nič nastavovať v ovládacom paneli GPU.
12. Density a overlap
Farby wireframe density porovnávajú texel density medzi ostrovmi (natiahnuté vs husté). Overlap highlight označí ostrovy, ktoré sa v UV prekrývajú. Sú to pomôcky, nie náhrada za pohľad na bake.
13. Projekty, autosave, undo
- Ctrl+S / Ctrl+Shift+S uloží projekt
.uvs(layout + cesty k textúram + úpravy). - Zatvorenie s neuloženými zmenami sa spýta. Autosave vie obnoviť prácu po páde, keď už bol projekt aspoň raz uložený (drafty sú vedľa projektu v
.uvsurgeon_autosave). - Ctrl+Z / Ctrl+Y undo / redo transformácií.
14. Export / bake
File → Export / Bake (Ctrl+E). Priečinok a prefix. Dlhé bake sa dá zrušiť v progress dialógu.
Main Canvas alebo Target Canvas volí, z ktorých pozícií ostrovov ide bake aj mesh. Na Targete sa každý riadok Texture assignment bakeuje ako vlastný obrázok. Riadok bez Target textúry sa bakeuje na čiernu v Target veľkosti, rovnako ako ho canvas ukazuje.
Export meshu píše každý UV kanál z toho jedného canvasu. Ostrovy, ktoré ostali na druhom canvase alebo v Docku, vypíše Islands Outside Export Canvas. Export Anyway ich zapíše do pásu vpravo od štvorca 0–1 len v exportovanom súbore. Move to Margin spraví ten istý posun v projekte, aby si ho videl pred exportom.
| Výstup | Poznámka |
|---|---|
| Textúry | PNG, TGA alebo JPEG. Samostatné súbory, nie sú v meshi. |
| OBJ | Aktualizuje UV0 (vt). Topológiu plôch pre OBJ/FBX zdroje zachová. Zdroj GLB: triangulácia, UV0, bez materiálov v OBJ (potvrdzovací dialóg). |
| GLB | Triangulácia; až štyri UV sady; textúry v GLB nie sú (exportuj ich zvlášť). |
| FBX | Len ak je zdroj binárne FBX. Zapíše kópiu súboru s UV vrstvami patchnutými na mieste. Polygóny, normály, smoothing, materiály a skiny sa kopírujú, neprestavajú. Voliteľne: nasmerovať materiály na bakeované textúry (predvolene vypnuté). |
Vyberieš pozície z Main alebo Target. Ostrovy na druhom canvase alebo v Docku sa nahlásia skôr, než sa mesh zapíše. Instancované (zdieľané) FBX meshe sa preskočia s warningom. ASCII FBX sa nezapisuje. Originál si nechaj; exporter píše novú kópiu vedľa prefixu.
15. Skratky
F1 otvorí zoznam v appke. Skratky platia, keď má focus canvas alebo dock.
| Akcia | Skratka |
|---|---|
| Import modelu | Ctrl+M |
| Pridať textúru | Ctrl+T |
| Uložiť / Uložiť ako | Ctrl+S / Ctrl+Shift+S |
| Export / bake | Ctrl+E |
| Undo / redo | Ctrl+Z / Ctrl+Y |
| Pan / zoom | Medzerník+ťahanie · koliesko |
| Rotácia / scale | Drž R / S + ťahanie |
| Group / dissolve | Ctrl+G / Ctrl+Shift+G |
| Dock / target | D / T |
| UV-only posun | U |
16. FAQ
Kde je sample?
Help → Open Sample Project načíta bundled kaktus (FBX a atlas mapy ako textúrové kanály). Na ňom vyskúšaj groups, dock, Target pack, global scale a 3D náhľad pred importom vlastného meshu.
Pack pohol zlý canvas?
Najprv klikni na canvas, ktorý chceš (Main alebo Target). Pack ide na aktívne pole. Ostrovy v Docku sa na Main preskočia.
Prečo je Target čierny?
Tá mapa nemá Target textúru. Načítaj ju, vytvor prázdnu, alebo prepni Map na riadok, ktorý ju má. Export robí to isté: riadok bez Target textúry sa bakeuje načierno.
Ostrov zmenil veľkosť, keď som ho poslal
Zdroj a cieľ mali iné rozlíšenie a Keep Original Texel Density drží hustotu pixelov tým, že zmení, koľko UV priestoru ostrov zaberie. Match target resolution (alebo Match Main Canvas resolution) nechá UV stopu na mieste.
Textúra s ostrovom neprišla
Move with texture bolo vypnuté, takže sa pohol len UV tvar. Zmrazené mapy ostanú tiež bez zmeny. Odložený ostrov prináša mapy, ktoré mal uložené — náhľad je pod Stored maps.
Prečo nevidím FBX export?
Checkbox FBX je len keď je zdrojový model binárne .fbx.
Prečo ostrov v FBX neodišiel?
Instancované meshe so zdieľanou Geometry nemôžu mať unikátne UV — preskočia sa. Extra UV kanály vytvorené len v appke sa ako nové FBX vrstvy nepridajú.
3D náhľad je prázdny?
View → Retry 3D Preview. 2D na tom nezávisí.