今天發點適合做 3D 模型的東西。
把一張產品圖做成能在網頁裏旋轉、拆解、播放動畫的 3D 模型,手工建模真的耗時耗力。
最近很火的 GitHub 項目 img2threejs 會先把參考圖拆成輪廓、部件、材質和細節,再分階段生成 Three.js 3D 模型,幾分鐘就能把圖片轉 3D。
我直接試了一個電風扇,做出來的效果非常不錯:
01. 項目實測
case 1 電鑽

提示詞:使用 img2threejs,把這張圖片重建成可交互的 Three.js 模型。
夾頭、扭矩環、機身、手柄和電池的層級完整,第一眼能認出同一類電鑽。拆解視圖也很清楚,說明程序化部件劃分比較成功。
主要差距在大輪廓:重建機身偏長、偏方,手柄太直,電池和機身連接處缺少原圖的連續塑料曲面。
case 2 茶壺

提示詞:使用 img2threejs,把這張圖片重建成可交互的 Three.js 模型。
青綠色釉面、斑駁紋理、壺嘴、環形把手和壺蓋共同維持了原圖氣質,亮部沒有明顯塑料感,顏色也最接近參考圖。
但原圖下腹更飽滿、上部略收,重建接近圓角桶形;壺嘴根部和把手連接處用了偏大的球形過渡,拆解後尤其明顯。
case 3 風扇

提示詞:使用 img2threejs,把這張圖片重建成可交互的 Three.js 模型。
護網、輻條、葉輪、電機、俯仰支架和底座形成了完整機械系統。
但參考圖的葉片視覺數量和角度分佈與重建不一致,底座偏扁、偏寬,支架形狀也比原圖規整。
case 4 揹包

提示詞:使用 img2threejs,把這張圖片重建成可交互的 Three.js 模型。
拉鍊、織帶、插扣、側袋、肩帶和底部掛環都做成了獨立結構,頂蓋開啓、肩帶擺動和拆解功能也比較完整。
但參考圖有布料下垂、擠壓、褶皺、局部鼓起和不對稱,重建主體卻是規整的圓角長方體。
case 5 香水瓶

提示詞:使用 img2threejs,把這張圖片重建成可交互的 Three.js 模型。
瓶體比例、短瓶肩、圓柱瓶蓋、黑色頸圈、液麪和吸液管都抓到了。取蓋、按壓噴頭、噴霧粒子和六組結構分解完成度很高。
但玻璃過淡,厚壁折射和瓶底聚光不夠;液體偏不透明、偏紅,原圖則是有深度變化的透明琥珀色。
02. 項目簡介
img2threejs 把一張物體參考圖重建成程序化 Three.js 模型。最終成果主要由 TypeScript 和 JSON 組成,模型幾何、材質、燈光、部件關係都寫在代碼裏,不依賴下載的模型文件。
項目地址:https://github.com/img2threejs/img2threejs
工作流工作時會先檢查圖片能否解碼、主體是否完整、分辨率是否太低、遮擋是否嚴重。然後 Agent 按宏觀、中觀、微觀三個層次拆分物,詳細物體還要建立 detailInventory。
輪廓沒有通過評審,生成器不會提前製作材質;結構尚未通過,後面的表面細節也不能開始。這種限制可以避免 Agent 一次生成幾千行代碼,然後在比例、材質和燈光混在一起的情況下反覆返工。
每個階段都會在瀏覽器中渲染,隨後把參考圖和渲染圖合成一張對照圖。硬性指標失敗時直接退回修改;多個指標互相矛盾時,再把圖片交給視覺模型判斷。
項目還設置了迭代上限、停滯檢測和重複缺陷檢測,防止 Agent 無限消耗 token。

但現在項目中,投影紋理能讓正面很像參考圖,卻無法證明背面結構正確。項目已經加入多角度退化檢查,但推測仍然是推測。對尺寸精度有要求的 CAD、工業設計和逆向工程項目不適合只提供一張圖片。
使用前直接在 Agent 環境中,把倉庫克隆到全局技能目錄:
git clone https://github.com/img2threejs/img2threejs.git `
然後給 Agent 一張圖片,並寫清用途:
提示詞:用 img2threejs 把參考圖重建爲程序化 Three.js 模型。
03. 挖一挖
我們可以把 img2threejs 看作一台 3D 原型機。
輪廓明確、部件關係清楚的物體,很快就能做成可旋轉、可拆解、可播放動作的網頁模型,但布料褶皺、厚玻璃折射和透明液體,依然需要建模師繼續調整。
img2threejs 最適合放在正式建模之前,可以先驗證商品的 3D 展示效果,製作活動頁和發佈會 Demo,教育內容可以用拆解動畫講清內部結構,還能在缺少模型資源時快速補齊交互原型。
原本需要多輪溝通和手工白模才能驗證的想法,現在拿一張產品圖就能先跑出初稿。
生成結果由 TypeScript 和 JSON 組成,比例、材質、動作和部件關係都能繼續修改。開發者可以把模型直接接進網頁,再根據實際用途逐步補充細節。
真正能從 img2threejs 省下成本的人,需要知道哪些環節適合交給 Agent 快速試錯,哪些細節必須留給人的建模經驗。
原文鏈接:GitHub 狂攬 7K Stars,圖片直接變 3D 模型