IT
OmnvertImage • Document • Network
Apr 11, 2026advanced16 minmesh · triangulation · height-map · stl · svgPNG / SVG → STL converterMore guides for this tool

Understanding Mesh Generation from 2D Assets

A technical overview of how a 2D PNG/SVG becomes a 3D triangle mesh: sampling, contours, triangulation, normals, watertightness, and STL output constraints.

Step-by-step

  1. Choose a representation: silhouette vs. height field

    Logos often work as “silhouette extrusion” (binary shapes). Grayscale artwork behaves like a height map (brightness → Z height), which can introduce noise if the image is not clean.

  2. Normalize alpha and remove micro-islands

    A clean binary silhouette produces predictable walls. Remove dust pixels, close small gaps, and avoid textured backgrounds — they turn into holes or self-intersections downstream.

  3. Control sampling density

    Sampling determines triangle density. If you feed extremely high-resolution rasters, you can create micro-triangles that don’t print. Use the polygon optimization guide to keep meshes efficient: Optimize polygon count.

  4. Generate an STL and inspect topology

    Use the PNG / SVG → STL converter to generate an STL, then check for tiny islands, holes, and excessively dense triangle regions.

  5. Validate watertightness and scale

    For reliable slicing, the model should be a closed volume. If you see holes/non-manifold warnings, use Fix non-manifold STL. Then confirm dimensions (mm) using Scaling & thickness.

1) Sampling the 2D input

For PNG, the engine reads pixels (often in sRGB) and may normalize alpha/background. For SVG, it parses viewBox/paths and rasterizes or samples contours at a chosen density. The sampling stage decides how much detail will exist downstream.

2) From contours/height to triangles

  • Silhouette extrusion: find the boundary of solid pixels, triangulate the 2D region, then extrude with side walls.
  • Height field: treat brightness as height, generate a surface mesh over a grid, then add a base to make it watertight.

3) Normals, watertightness, and STL constraints

STL is triangle-only. For reliable prints, the mesh should be watertight (closed volume) and avoid self-intersections. Even if a slicer can auto-repair, clean topology reduces surprises.

Triangulation and contour extraction (why edges matter)

Most image → STL pipelines boil down to extracting boundaries and then triangulating a 2D region. If your edges are noisy, the contour becomes a zig-zag polyline and triangulation produces a lot of skinny triangles.

Mental modeltext
PNG/SVG → boundary/height sampling
  → 2D contours (polylines) or height grid
  → triangulation (surface + walls + base)
  → watertight STL (closed volume)
Want smaller STLs?

Start by cleaning the 2D input, then use Optimize polygon count. Internal vertex optimization helps, but it can’t fix a noisy contour.

Related