UV Unwrap API
Vygenerujte UV rozbalení pro existující 3D model. Spusťte jej před texturováním modelu nebo když nástroj jako Blender, Substance Painter nebo Unreal potřebuje čisté, nepřekrývající se UV rozvržení.
Výstupem je UV bílý model. Má stejný tvar jako vstup, nové UV souřadnice a žádnou skutečnou texturu. Obsahuje 2×2 šedý zástupný materiál, díky kterému zůstává slot materiálu glTF platný, a standardní nástroje jej považují za netexturovaný.
UV rozbalení podporuje sítě s až 40 000 plochami. Větší model vrátí 400. Pro snížení počtu ploch nejprve spusťte Remesh.
Meshy během generování UV triangularizuje sítě se čtyřúhelníky a n-úhelníky, takže výstupem je vždy trojúhelníková síť.
Vytvoření úlohy UV rozbalení
Vytvoří úlohu UV rozbalení.
Úloha běží na pozadí. Informace o tom, jak dlouho úloha obvykle trvá, najdete v části Doba zpracování.
Request
# Chain from an existing Meshy task
curl https://api.meshy.ai/openapi/v1/uv-unwrap \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}'
# Or from a publicly accessible model URL
curl https://api.meshy.ai/openapi/v1/uv-unwrap \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"model_url": "https://example.com/path/to/model.glb"
}'
Response
{
"result": "019361c6-9b34-7b23-bef2-d0107c4d92e2"
}
Parametry
- Name
- input_task_id
- Type
- string
- Povinné
- Description
Povinné, pokud neodešlete
model_url. ID úlohy Meshy API, jejíž výstup ve formátu GLB chcete rozbalit – například úlohy Obrázek na 3D, Text na 3D nebo Remesh. Úloha musí mít stavSUCCEEDEDa musí vytvořit soubor GLB.Síť může mít nejvýše 40 000 ploch. Síť s větším počtem vrátí
400. Pro snížení počtu ploch nejprve spusťte Remesh.
- Name
- model_url
- Type
- string
- Povinné
- Description
Povinné, pokud neodešlete
input_task_id. Model, který se má rozbalit, jako veřejná URL adresa nebo Data URI. Pokud odešlete oboje, Meshy použijeinput_task_id.Model musí být soubor
.glb. Pro rozbalení jiného formátu jej nejprve převeďte na GLB pomocí Convert API.Soubor může mít nejvýše 400 MB, pokud je zadán jako adresa URL
httpnebohttps, nebo 100 MB jako Data URI. Pro Data URI použijte MIME typeapplication/octet-stream. Soubor GLB větší než 100 MB nesmí používat kompresi Draco.Platí stejný limit 40 000 ploch jako u
input_task_id. Síť s větším počtem vrátí400, proto nejprve spusťte Remesh.
Návratové hodnoty
Pole result v odpovědi obsahuje ID nové úlohy UV rozbalení.
Způsoby selhání
- Name
400 - Bad Request- Description
Požadavek nelze spustit. Chybová zpráva uvádí, jaký problém byl zjištěn. Například:
- Chybějící parametr: Nebyl odeslán ani
input_task_id, animodel_url. - Neplatná vstupní úloha:
input_task_idnení úspěšnou úlohou API s výsledkem ve formátu GLB. - Překročen počet ploch: Síť má více ploch, než UV rozbalení umožňuje. Nejprve spusťte Remesh.
- Neplatný formát modelu: Soubor
model_urlmá nepodporovanou příponu. - Nedostupná adresa URL: Meshy nemůže stáhnout soubor
model_url. - Soubor modelu je příliš velký: Soubor
model_urlje větší než 400 MB, pokud je zadán jako adresa URLhttpnebohttps, nebo větší než 100 MB jako Data URI. - Příliš mnoho ploch: Soubor
model_urlje větší než 100 MB a má více než 10 000 000 ploch. Snižte počet ploch a odešlete soubor znovu. - Nečitelný soubor modelu: Soubor
model_urlje větší než 100 MB a Meshy nemůže přečíst jeho hlavičku. Jde například o soubor GLB komprimovaný pomocí Draco. - Hlavička modelu je příliš složitá: Soubor
model_urlje větší než 100 MB a jeho hlavička obsahuje příliš mnoho sítí, uzlů nebo záznamů ke kontrole. Snižte počet objektů v souboru a odešlete jej znovu.
Opravte požadavek a odešlete jej znovu. Viz Chyby.
- Chybějící parametr: Nebyl odeslán ani
- Name
401 - Unauthorized- Description
API klíč chybí nebo je neplatný. Zkontrolujte hlavičku
Authorization.
- Name
402 - Payment Required- Description
Například:
- Nedostatek kreditů: Účet nemá dostatek kreditů pro tuto úlohu, nebo účet dosáhl limitu kreditů. Úloha UV rozbalení stojí 5 kreditů. Zkontrolujte zůstatek kreditů a zkuste to znovu.
- Bezplatný plán: Vytvoření úlohy vyžaduje placený plán. Upgradujte svůj plán v nastavení předplatného a zkuste to znovu.
- Name
403 - Forbidden- Description
input_task_idje model bas-reliéfu, který tento koncový bod nedokáže rozbalit. Zpráva zníThis model type does not support this operation. Odešlete jiný model.
- Name
404 - Not Found- Description
input_task_idneodpovídá žádné z vašich úloh. Zkontrolujte ID úlohy a odešlete požadavek znovu.
- Name
429 - Too Many Requests- Description
Překročili jste limit rychlosti. Počkejte a zkuste to znovu. Viz Limity rychlosti.
Získání úlohy UV rozbalení
Vrátí aktuální stav úlohy UV rozbalení podle jejího ID.
Request
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Příklad odpovědi naleznete v příkladu objektu úlohy UV rozbalení.
Návratová hodnota
Smazání úlohy UV rozbalení
Trvale smaže úlohu UV rozbalení, včetně jejích výstupů. Smazání nelze vrátit zpět.
Request
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2 \
-X DELETE \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Stav úlohy
Smazání úlohy ve stavu PENDING vrátí kredity, které byly použity při jejím vytvoření.
Úlohu ve stavu IN_PROGRESS nelze smazat. Požadavek vrátí 409 Conflict
a úloha pokračuje v běhu. Meshy nevrací kredity za úlohu, která již byla
spuštěna, takže její smazání by vás stálo jak kredity, tak výsledek. Počkejte,
dokud nedosáhne stavu SUCCEEDED, FAILED nebo CANCELED, a poté ji smažte.
Smazání úlohy v konečném stavu (SUCCEEDED, FAILED nebo CANCELED)
kredity nevrací.
Seznam úloh UV rozbalení
Vrátí stránkovaný seznam vašich úloh UV rozbalení, seřazený od nejnovějších. Pro procházení seznamu použijte page_num a page_size.
Request
curl "https://api.meshy.ai/openapi/v1/uv-unwrap?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Stream UV Unwrap task
Streamuje aktualizace úlohy UV rozbalení jako Server-Sent Events (SSE). Každá událost message nese objekt úlohy UV rozbalení. Stream se uzavře, jakmile úloha dosáhne stavu SUCCEEDED, FAILED nebo CANCELED.
Chcete-li se dříve dozvědět, že úloha skončila, použijte tento koncový bod místo opakovaného dotazování na GET /openapi/v1/uv-unwrap/:id.
Request
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-N
Objekt úkolu UV rozbalení
Objekt úkolu UV rozbalení popisuje jedno UV rozbalení 3D modelu. Obsahuje stav, progress a soubor modelu, pokud byl úkol úspěšný.
Example UV Unwrap Task Object
{
"id": "019361c6-9b34-7b23-bef2-d0107c4d92e2",
"type": "uv-unwrap",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/019361c6-9b34-7b23-bef2-d0107c4d92e2/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.ai/***/tasks/019361c6-9b34-7b23-bef2-d0107c4d92e2/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1716579120000,
"started_at": 1716579122000,
"finished_at": 1716579180000,
"expires_at": 1716665580000,
"task_error": {
"message": ""
},
"consumed_credits": 5
}
- Name
- id
- Type
- string
- Description
ID úkolu. Považujte jej za neprůhledný řetězec a nespoléhejte na jeho formát.
- Name
- type
- Type
- string
- Description
Typ úkolu, vždy
uv-unwrap.
- Name
- model_urls
- Type
- object
- Description
Podepsané URL adresy ke stažení pro UV bílý model. UV rozbalení vždy vrací jediný klíč
glb. Model zachovává vstupní geometrii, má nové UV souřadnice a používá výchozí šedý materiál místo textury.
- Name
- thumbnail_url
- Type
- string
- Description
Podepsaná URL adresa ke stažení náhledového obrázku PNG pro UV bílý model.
- Name
- progress
- Type
- integer
- Description
Jak velká část úkolu je hotová, v procentech od
0do100.
- Name
- status
- Type
- string
- Description
Stav úkolu, jeden z
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDneboCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Počet úkolů před tímto úkolem ve frontě. Přítomno, dokud je úkol ve stavu
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Čas vytvoření úkolu, v milisekundách Unix.
- Name
- started_at
- Type
- timestamp
- Description
Čas spuštění úkolu, v milisekundách Unix. Je
0, dokud úkol nezačne.
- Name
- finished_at
- Type
- timestamp
- Description
Čas dokončení úkolu, v milisekundách Unix. Je
0, dokud úkol neskončí.
- Name
- expires_at
- Type
- timestamp
- Description
Čas vypršení platnosti podepsaných URL adres ke stažení, v milisekundách Unix.
- Name
- task_error
- Type
- object
- Description
Podrobnosti o chybě, pokud úkol selže. Viz Chyby.
- Name
- consumed_credits
- Type
- integer
- Description
Počet kreditů, které úkol spotřeboval. Úspěšný úkol UV rozbalení stojí 5 kreditů. U úkolu se stavem
FAILEDje to0, protože Meshy vrací kredity, pokud úkol selže.