Convert PNG to GLB
This takes a picture and gives you back a 3D object carrying it — a flat plane with the image on both sides. It is what you want when something in a 3D scene needs to be a picture: a sign, a poster, a label, a photograph on a wall.
Drag a 3D file here, or.
This page is set up for PNG files. Other formats we can read work here too.
The file is read on your own computer. It is never uploaded.
Your file is read by your own browser and never sent to a server. There is no upload, no account and no copy of your model anywhere but on your computer.
It is a picture on a plane, not a heightmap
Two triangles, with the image stretched across them. Nothing reads the brightness of a pixel and lifts the surface by it, and nothing traces the outline of the shape in the picture. Those are real things and they are different tools; doing one of them quietly here would surprise everybody who wanted a picture.
What you get is an object a 3D scene can hold: it can be moved, rotated, lit and clicked on, which a JPEG sitting next to the scene cannot.
How big it comes out
A picture has no size of its own — it has pixels, and pixels are not millimetres. So one has to be chosen, and the longer side is set to 200 mm, roughly a sheet of paper. The shorter side follows the shape of the image, so nothing arrives stretched.
Change the second unit box to metres and the same plane is written 200 metres along its longer side, which is the right choice for a billboard and the wrong one for a postcard. The measurements beside the 3D view always say what is about to be written.
Transparency comes through
A PNG with an alpha channel keeps it, so a logo with a transparent background stays a logo rather than becoming a white rectangle with a logo on it.
That is most of the reason to use PNG here rather than a photograph format. If you are converting a photograph, the transparency is not doing anything and the file is simply larger than it needs to be.
Pixel dimensions decide the quality, not the size of the plane
The plane is 200 mm along its longer side whatever picture you give it, so the thing that decides how sharp the result looks is how many pixels the image has. A 4000 pixel wide photograph on a 200 mm plane is about 500 pixels per inch, which is sharper than anything needs to be. A 200 pixel logo on the same plane is 25 pixels per inch, which looks soft the moment anyone moves closer.
That matters most in AR and in a viewer somebody can zoom. On a thumbnail nothing shows. As a rough rule, aim for at least 1000 pixels along the longer side for anything a person will look at closely, and do not bother going past about 2000 — the file size grows and the difference stops being visible.
The image is packed into the GLB at its original resolution and is not resized, so an eight megapixel photograph produces a large file. Shrink it in an image editor first if the model is going on a web page.
What survives, and what does not
Kept in the GLB file
- Every pixel of the image, as the texture on the plane
- The shape of the picture, so nothing is stretched
- Transparency, where the PNG has an alpha channel
Lost on the way
- Nothing: there is nothing in a picture that a textured plane cannot hold
How to convert PNG to GLB
Drop the .png file in
It is decoded in your browser and wrapped onto a plane straight away, so you see the result immediately.
Check the proportions
The longer side is set to 200 mm and the shorter one follows the shape of the image, so nothing is stretched. A tall picture gives a tall plane.
Change the output unit if you want a different size
Metres instead of millimetres gives you a 200 metre plane, which is right for a billboard in a large scene and wrong for a postcard.
Download the .glb
One binary file with the image packed inside it as a texture, double-sided so it is visible from behind.
PNG and GLB compared
| Property | PNG.png | GLB.glb |
|---|---|---|
| File contents | Binary, losslessly compressed with DEFLATE, in labelled chunks. | One binary file: a small header, the same JSON as glTF, then all the buffers and images. |
| Geometry | None. It is a grid of pixels. | Triangles, with skinning weights and animation channels alongside them. |
| Units | Optional pixels-per-metre in a pHYs chunk, usually absent. | Metres, fixed by the specification. |
| Colour and texture | Up to 16 bits per channel, with full alpha transparency. | Full physically based materials, with the texture images packed inside the file. |
| Separate objects | One image. | A scene graph of named nodes, each with its own position and rotation. |
| Published by | The PNG Development Group, 1996, to replace GIF. Now ISO 15948. | The Khronos Group, 2015, as the single-file packaging of glTF. |
| Written by | Every image editor, every screenshot tool, every browser. | Blender, Sketchfab, Substance Painter, and every tool that ships models to the web. |
Questions
- Can it make a 3D shape out of the image?
- No. This makes a flat plane carrying the picture. Raising a surface by the brightness of each pixel is a heightmap, and cutting out the shape in the picture is an extrusion; both are different tools and neither is what this one does.
- Which way does the plane face?
- Both. The plane is written double-sided, because a one-sided plane is invisible from behind and somebody who cannot find their picture in a scene has no way of knowing that is why.
- Can I use a JPEG?
- This page is set up for PNG. Drop a JPEG in and it will not be read — convert it to PNG first in any image editor, which takes a moment and loses nothing that matters at this size.
- Is my image uploaded anywhere?
- No. It is decoded and turned into a model inside your browser. Nothing leaves your computer.
- How many pixels should my image have?
- At least 1000 along the longer side for anything someone will look at closely, and there is little point going past about 2000. The image is packed in at its original resolution, so a huge photograph makes a huge GLB.