1. 提交 JPEG URL
使用公开 JPEG URL 提交一个图片任务。保留返回的任务 ID,在任务处理期间不要创建另一个任务。
export TO3D_KEY='YOUR_API_KEY'
export TO3D_IMAGE_URL='https://example.com/product.jpg'
TASK_JSON=$(curl --fail-with-body --silent --show-error \
https://api.to3d.app/api/trellis/tasks \
-H "x-api-key: $TO3D_KEY" \
-H 'Content-Type: application/json' \
-d "$(jq -cn --arg image "$TO3D_IMAGE_URL" \
'{task_type:"image-to-3d",input:{image:$image}}')")
TASK_ID=$(jq -er '.id' <<<"$TASK_JSON")
printf 'Task: %s\n' "$TASK_ID"轮询并下载 GLB
不要创建另一个任务,直接轮询。任务成功后,保存返回的模型 URL 并下载 GLB。
while :; do
STATUS_JSON=$(curl --fail-with-body --silent --show-error \
"https://api.to3d.app/api/trellis/tasks/$TASK_ID" \
-H "x-api-key: $TO3D_KEY")
STATUS=$(jq -er '.status' <<<"$STATUS_JSON")
case "$STATUS" in
succeeded) jq -er '.output.model_file' <<<"$STATUS_JSON" > model-url.txt; break ;;
failed|canceled) jq '{id,status,error}' <<<"$STATUS_JSON" >&2; exit 1 ;;
pending|processing) sleep 5 ;;
*) printf 'Unexpected status: %s\n' "$STATUS" >&2; exit 1 ;;
esac
done
curl --fail --location --silent --show-error \
"$(cat model-url.txt)" --output product.glb
[ "$(head -c 4 product.glb)" = 'glTF' ]2. 放入 AR 查看器前先检查
先在支持 GLB 的查看器中打开 `product.glb`。检查产品轮廓、可见材质、UV 和纹理是否可用于你的场景。在自己的流程中设置真实世界比例;单张 JPEG 无法确定尺寸。
- 如果 AR 目标需要其他格式或平台专用锚点,请在目标工具链中完成并测试转换。
3. 在目标设备上验证
在你支持的手机、浏览器或头显上运行查看器。检查下载大小、光照、纹理分辨率、相机位置、遮挡、交互和帧率。
- #56 没有验证 USDZ 输出、物理比例、AR 锚点或任何 AR 设备。因此,本文描述的是可重复的起始流程,不声称 JPEG 会自动变成经过校准的 AR 产品资产。
限定样例证据的范围
四个公开样例 GLB 提供了包含内嵌 PNG 纹理、UV、关节和蒙皮权重的结构示例。产品模型可能不需要绑定;只有对象需要骨架时才使用 Skin Tokens。
- 将原始 JPEG、API 任务 ID、下载的 GLB 以及任何转换后的 AR 资产放在一起,以便将后续的外观或比例问题追溯到正确步骤。