UV-Entfaltung API
Die UV-Entfaltung API generiert automatisch eine hochwertige UV-Entfaltung für ein bestehendes 3D-Modell. Verwenden Sie es als Voraussetzungsschritt vor dem Texturieren – oder immer dann, wenn Sie ein sauberes, nicht überlappendes UV-Layout für nachgelagerte Tools (Blender, Substance Painter, Unreal) benötigen.
Das Ergebnis ist ein "UV-Weißmodell" – gleiche Form wie das Eingabemodell, aber mit brandneuen UV-Koordinaten und keiner echten Textur (ein 2×2 graues Platzhaltermaterial ist enthalten, um den glTF-Materialslot gültig zu halten; Standardtools behandeln dies als untexturiert).
Einschränkungen. Auto UV unterstützt derzeit Netze mit bis zu 40.000 Flächen – größere Modelle werden mit einem 400 abgelehnt; führen Sie zuerst eine Neuvernetzung durch, um die Polygonanzahl zu reduzieren. Quad- und N-Gon-Netze werden während der UV-Generierung trianguliert, sodass das Ergebnis immer ein Dreiecksnetz ist.
Erstellen einer UV-Entfaltungsaufgabe
Dieser Endpunkt erstellt eine neue UV-Entfaltungsaufgabe.
Parameter
Genau einer von input_task_id oder model_url ist erforderlich. Wenn beide angegeben sind, hat input_task_id Priorität.
- Name
- input_task_id
- Type
- string
- Erforderlich
- Description
Die ID einer abgeschlossenen Meshy API-Aufgabe, deren GLB-Ausgabe Sie UV-entfalten möchten (zum Beispiel ein Bild zu 3D, Text zu 3D oder Neuvernetzungsergebnis). Die Quellaufgabe muss den Status
SUCCEEDEDhaben und eine GLB-Datei erzeugt haben.Wenn das Quellnetz die Obergrenze von 40.000 Flächen überschreitet, wird die Anfrage mit einem
400abgelehnt und Sie sollten zuerst eine Neuvernetzung durchführen, um die Polygonanzahl zu reduzieren.
- Name
- model_url
- Type
- string
- Erforderlich
- Description
Stellen Sie ein 3D-Modell direkt über eine öffentlich zugängliche URL oder Data URI bereit. Nur
.glbwird unterstützt — die API liest glTF-Binärdaten und analysiert keine anderen Formate. Um ein Modell in einem anderen Format (.fbx,.obj,.stl,.gltf) UV-zu-entfalten, konvertieren Sie es zuerst in.glbüber die Convert API und übergeben Sie dann die resultierende Aufgaben-ID alsinput_task_idoder deren GLB-Ausgabe-URL hier.Für Data URIs verwenden Sie den MIME-Typ
application/octet-stream.Die gleiche Obergrenze von 40.000 Flächen gilt wie für
input_task_id: übergroße Netze werden mit einem400abgelehnt — führen Sie zuerst eine Neuvernetzung durch.
Rückgaben
Die result-Eigenschaft der Antwort enthält die id der neu erstellten UV-Entfaltungsaufgabe.
Fehlermodi
- Name
400 - Bad Request- Description
Die Anfrage war nicht akzeptabel. Häufige Ursachen:
- Fehlender Parameter: Entweder
input_task_idodermodel_urlmuss angegeben werden. - Ungültige Eingabeaufgabe: Die
input_task_idmuss sich auf eine erfolgreiche Aufgabe mit einem GLB-Ergebnis beziehen. - Flächenanzahl überschritten: Das Quellnetz hat mehr Flächen als die UV-Entfaltungsgrenze. Führen Sie zuerst eine Neuvernetzung durch.
- Ungültiges Modellformat: Die
model_urlverweist auf eine Datei mit einer nicht unterstützten Erweiterung. - Nicht erreichbare URL: Die
model_urlkonnte nicht heruntergeladen werden.
- Fehlender Parameter: Entweder
- Name
401 - Unauthorized- Description
Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.
- Name
402 - Payment Required- Description
Unzureichende Credits, um diese Aufgabe auszuführen. UV-Entfaltung kostet 5 Credits pro Aufruf.
- Name
404 - Not Found- Description
Die Funktion ist für Ihr Konto nicht aktiviert. UV-Entfaltung wird während des Rollouts durch ein Statsig-Flag gesteuert — kontaktieren Sie den Meshy-Support, wenn Sie Zugriff benötigen.
- Name
429 - Too Many Requests- Description
Sie haben Ihre Ratenbegrenzung überschritten.
Anfrage
# 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"
}'
Antwort
{
"result": "019361c6-9b34-7b23-bef2-d0107c4d92e2"
}
Abrufen einer UV-Entfaltung-Aufgabe
Dieser Endpunkt ruft den aktuellen Status einer UV-Entfaltung-Aufgabe anhand der ID ab.
Rückgaben
Gibt ein UV-Entfaltung-Aufgabenobjekt zurück.
Anfrage
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Siehe das Beispiel-Aufgabenobjekt unten.
Löschen einer UV-Entfaltung-Aufgabe
Löschen Sie dauerhaft eine UV-Entfaltung-Aufgabe. Die Aufgabe und ihre Ausgaben werden unzugänglich.
Anfrage
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2 \
-X DELETE \
-H "Authorization: Bearer ${YOUR_API_KEY}"
UV-Entfaltungsaufgaben auflisten
Gibt eine paginierte Liste der UV-Entfaltungsaufgaben des Anrufers zurück, beginnend mit den neuesten. Standard-Paginierung über page_num und page_size.
Request
curl "https://api.meshy.ai/openapi/v1/uv-unwrap?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Streamen einer UV-Entfaltung-Aufgabe
Abonnieren Sie den Fortschritt der Aufgabe als Server-Sent Events. Jedes message-Ereignis enthält ein UV-Entfaltung-Aufgabenobjekt; der Stream schließt, sobald die Aufgabe SUCCEEDED, FAILED oder CANCELED erreicht.
Verwenden Sie dies anstelle des Pollings von GET /openapi/v1/uv-unwrap/:id für eine geringere Latenzzeit bei der Fertigstellung.
Anfrage
curl https://api.meshy.ai/openapi/v1/uv-unwrap/019361c6-9b34-7b23-bef2-d0107c4d92e2/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-N
Das UV-Entfaltung-Aufgabenobjekt
- Name
- id
- Type
- string
- Description
Eindeutiger Bezeichner für die Aufgabe.
- Name
- type
- Type
- string
- Description
Immer
uv-unwrap.
- Name
- model_urls
- Type
- object
- Description
Vorab signierte Download-URLs für das generierte UV-Weißmodell. UV-Entfaltung gibt immer einen einzelnen
glb-Eintrag zurück — die Ausgabe bewahrt die Eingabegeometrie, tauscht frische UV-Koordinaten ein und verwendet ein standardmäßiges graues Material anstelle einer Textur.
- Name
- thumbnail_url
- Type
- string
- Description
Vorab signierte URL zu einer PNG-Vorschau des UV-Weißmodells.
- Name
- progress
- Type
- integer
- Description
Aufgabenfortschritt, von
0bis100.
- Name
- status
- Type
- string
- Description
Einer von
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Anzahl der Aufgaben, die vor dieser in der Warteschlange stehen. Vorhanden, während der Status
PENDINGist.
- Name
- created_at
- Type
- timestamp
- Description
Zeitstempel der Aufgabenerstellung, in Millisekunden.
- Name
- started_at
- Type
- timestamp
- Description
Zeitstempel, wann die Verarbeitung begann, in Millisekunden.
0bis zum Start.
- Name
- finished_at
- Type
- timestamp
- Description
Zeitstempel der Fertigstellung, in Millisekunden.
0bis zur Fertigstellung.
- Name
- expires_at
- Type
- timestamp
- Description
Zeitstempel, nach dem die signierten Download-URLs ablaufen, in Millisekunden.
- Name
- task_error
- Type
- object
- Description
Fehlerdetails für fehlgeschlagene Aufgaben. Siehe Fehler für die vollständige
task_error-Objektreferenz.
- Name
- consumed_credits
- Type
- integer
- Description
Credits, die von dieser Aufgabe verbraucht wurden. Gibt
0fürFAILED-Aufgaben zurück (Credits werden bei einem Fehler zurückerstattet). UV-Entfaltung berechnet 5 Credits bei Erfolg.
Beispiel UV-Entfaltung-Aufgabenobjekt
{
"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
}