Written by the founder of BreezeConvert — a creative director working across set design, game 3D, Unreal/VFX and AI content pipelines. More about the author.
Anyone pulling 3D assets from more than one source runs into the same wall. You download something from Sketchfab, generate a mesh with one of the newer AI 3D tools, export a massing model from SketchUp — and each one hands you a different format. Then your engine, renderer, or slicer wants something else entirely.
Most format guides list specifications. This one is organised around the question you actually have, which is: what will I lose if I convert to this? Because the formats differ far less in geometry than they do in everything wrapped around it.
The one idea that explains most problems
A 3D file can contain several distinct layers of information, and formats differ mainly in how many of those layers they carry.
At minimum there is geometry — vertices and faces, the shape itself. Above that sits UV mapping, the coordinates telling the renderer how a flat image wraps onto that shape. Then materials, describing surface behaviour: colour, roughness, metalness. Then textures, the actual image files. And finally scene data: hierarchy, transforms, animation, cameras, lights.
Almost every "my model came through grey and untextured" problem is a format that dropped one of the upper layers. It isn't a bug — you exported to something that was never designed to carry it.
The formats, in practical terms
GLB / glTF is the modern answer and usually the right default. glTF was designed specifically for transferring finished 3D assets, and it carries geometry, UVs, PBR materials, textures, hierarchy, and animation. The critical detail is the difference between the two flavours: .gltf is a JSON file that references external texture and binary files sitting next to it, while .glb packs everything into one self-contained binary file.
This is the single most common cause of broken 3D handoffs. Someone sends a lone .gltf, its companion .bin and texture files stay behind, and the model arrives as untextured grey. If you are sending, uploading, or converting a single file, use .glb. Nearly every modern engine and viewer reads it, including Unreal, Unity, Blender, and web viewers.
OBJ is the universal old standard, and it still has a place. It carries geometry and UVs reliably and is readable by essentially everything, which makes it a dependable fallback when a tool refuses your GLB. Its weakness is materials: OBJ keeps them in a separate .mtl file that points to texture images by filename. Move the OBJ without its .mtl and textures, and appearance is gone. OBJ also has no animation and no scene hierarchy — everything arrives as static meshes.
STL is geometry and nothing else. No UVs, no materials, no colour, no textures. This sounds like a limitation but it's precisely what 3D printing wants — a watertight description of solid shape. Use STL when the destination is a slicer or a fabrication process, and never expect appearance to survive it. If someone asks for STL and your model is textured, understand that you're sending the silhouette only.
DAE (COLLADA) is an older interchange format that carries geometry, UVs, materials, hierarchy, and animation. Its practical importance today is specific: it's what SketchUp exports for free. If SketchUp is in your pipeline, DAE is usually your bridge out of it.
PLY shows up mainly from 3D scanning and photogrammetry. It handles per-vertex colour well, which suits scanned point-cloud-derived meshes, but it isn't a general delivery format for textured art assets.
The SketchUp problem, specifically
SketchUp's native .skp format is proprietary and closed. Very little software outside SketchUp reads it directly, and no browser-based tool can parse it reliably — this is a genuine technical constraint, not an oversight.
The workflow that works is a two-step: in SketchUp, go to File → Export → 3D Model and choose COLLADA (.dae) or OBJ. Both are available in the free version. Then convert that export to whatever your destination needs — typically GLB for an engine or web viewer, or STL for printing.
One SketchUp-specific caution: SketchUp geometry is often built with reversed or inconsistent face normals, which look fine in SketchUp's own viewport but render as invisible or black surfaces elsewhere. Before exporting, it's worth right-clicking and reversing faces that appear blue-grey rather than white on the outward side. Fixing this before export saves considerably more time than fixing it after.
Assets from Sketchfab and AI 3D generators
Downloads and generated assets bring their own recurring issues.
The most frequent is the .gltf-without-its-friends problem described above — the fix is to obtain or convert to .glb so everything travels together.
The second is texture format mismatch. AI generators and asset libraries often output maps as WEBP, AVIF, or oversized PNGs, and older engine versions or material pipelines may reject or choke on them. Converting texture maps to standard PNG or JPG is often all that's needed. Two rules matter here: keep colour/albedo maps as JPG only if you can accept compression artefacts, but keep normal, roughness, and metalness maps as PNG, because lossy compression on data maps produces visible surface artefacts that are hard to diagnose later. You can convert texture maps with the image converter.
The third is scale and orientation. Different tools assume different up-axes (Y-up versus Z-up) and different base units. A model that imports lying on its side or at 100× scale is almost always an axis or unit convention mismatch rather than a corrupted file — check your importer's axis settings before assuming the asset is broken.
A decision shortcut
If the destination is a game engine, web viewer, or AR, use GLB. If it's a 3D printer or slicer, use STL. If a tool rejects your GLB, fall back to OBJ. If you're leaving SketchUp, export DAE and convert onward. If you're archiving a scan, PLY is reasonable.
And when in doubt about whether appearance needs to survive: if the answer is yes, you need GLB, and no amount of converting to STL and back will bring the textures with it. Conversion can move information between containers, but it cannot recreate information a format was never able to hold.
Converting without uploading your assets
Unreleased set designs, client models, and commissioned assets are not things most people want sitting on an unknown server. BreezeConvert's 3D converter reads OBJ, STL, PLY, GLTF, GLB, and DAE and exports GLB, OBJ, or STL entirely inside your browser — the model is parsed by your own machine and never transmitted.
The 3D converter is an evolving tool. Complex scenes with unusual material setups may not translate perfectly, and reports of specific files that fail are the fastest way to get them fixed — the contact page reaches us directly.
Related guides: SketchUp into Unreal or Unity · DWG vs DXF · PDF drawing to DXF.