照片轉 3D 模型為何無法切片
Your photo-to-3D model won't slice. Here's why.
照片轉 3D 模型難以切片,常見原因包括 GLB 和 STL 缺少尺寸資訊、非流形幾何修復失敗、浮雕缺少背面或厚度,以及模型細節遠細於噴嘴可列印的範圍。PhotoSTL 先以列印配方設定目標尺寸、底座厚度和最小壁厚,再生成模型。匯出的 STL 或 3MF 已按最終尺寸處理,下載前亦會檢查模型能否列印。
Image-to-3D is a one-click operation now. The part nobody warns you about is what happens when you drag that result into a slicer. Four things break, in the same order, almost every time.
1. GLB has no units. Your slicer assumes millimetres.
STL is a 1987 format. It stores coordinates and nothing else — no unit, no scale, no axis convention. Cura, PrusaSlicer and Bambu Studio all assume one unit is one millimetre.
Image-to-3D models output normalised meshes: the bounding box usually sits somewhere between -1 and 1, with no relationship to physical size. So a bust that fills the viewport lands 2 mm tall in the slicer. You did not get a broken model. You got a model with no ruler.
There are two fixes. Scale it in Blender to a target height and re-export — or bake millimetres at export time. The second one is not just "multiply by a constant", and that is the point of section 4.
2. Non-manifold geometry: the repair is not always real
Meshes from depth or multi-view reconstruction almost always carry self-intersections, flipped normals and zero-thickness walls. Every slicer ships an auto-repair, but repair quality is inversely proportional to mesh complexity: on a two-million-triangle mesh the repair frequently "succeeds" and still slices into a hollow shell.
The check takes five seconds: look at the first few layers in layer view. If layer one is a solid outline, you are fine. If it is fragments, or a thin ring, the repair did not take. Do not print it.
3. A relief has no back
A photograph is 2.5D. A model inferred from a single front-facing photo is a surface with relief — no back, no base, no thickness. Printed as-is you get a 0.5 mm shell that lifts off the bed before the first layer finishes.
Either add a base and a backing plate before export, or model a box and inset the relief into it.
4. Detail density is ten times finer than your nozzle
A 0.4 mm nozzle reliably reproduces features around 0.4–0.5 mm. Map a 2000 px wide photo onto a 60 mm bust and one pixel is 0.03 mm — more than ten times finer than the nozzle. That detail does not become detail. It becomes noise and whiskers.
Which means target size has to be decided before generation, not after. A 60 mm keychain and a 200 mm display piece do not want the same mesh scaled differently; they want two different density strategies.
What we changed
PhotoSTL starts from the print instead of the mesh. You pick a print recipe first — currently pet bust and logo relief — and the recipe fixes target size in millimetres, base thickness and minimum wall thickness before generation. Everything downstream is constrained by that.
Then:
- Millimetre baking. The exported STL or 3MF arrives at final size. Drop it in the slicer; do not scale it.
- A printability check before download. Watertightness, regions thinner than the minimum wall, overhang angles that will need support. It tells you where it fails rather than handing you a model that merely looks fine.
- The raw GLB stays yours. Want to retopo, decimate or rig it in Blender? Take the original mesh. No black box.
What it is not
- Not a game-asset pipeline. No rigging, no UV unwrapping, no PBR textures. This is for objects that leave a printer, not objects that enter an engine.
- One photo in, one draft out. Multi-view input helps, but the returns saturate quickly after the first good front-facing shot. Tools advertising "upload 20 photos for a perfect model" are usually covering for the ceiling of single-image reconstruction.
- Supports are still your job. The check tells you where they are needed. It does not choose between tree and linear for you.
Try it
Thirty free credits, roughly three drafts, no card: https://photostl.com/
If it still fails on your printer, bring the slicer screenshot and the source photo. "Didn't work" is unactionable; I have found that roughly half of these are scale, thirty percent are thin walls, and only the remainder is the model itself.
來源:DEV Community · dev.to