← 返回博客
AR 实验 · 发布日期 2026-09-29

从 JPEG 到 AR 产品模型实验:使用 GLB

JPEG 可以作为 3D 产品模型实验的起始图片。TO3D API 可以创建图片转 3D 任务并返回 GLB URL;AR 流程的其余部分仍取决于你的查看器、比例约定、设备支持,以及目标平台所需的任何转换。本指南明确列出这些步骤。

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 资产放在一起,以便将后续的外观或比例问题追溯到正确步骤。