Watermark a GLB

Applies a text mark over a GLB's color textures, in a corner or tiled. Only baseColor and emissive are modified; normal and ORM maps stay intact.

What this tool does

How it works

  1. 01

    Upload your GLB

    It is processed locally with gltf-transform in your browser and the color textures found are listed. The file never leaves your machine.

  2. 02

    Configure the mark

    Type the text, pick opacity, size and mode (corner or tile). The text is white with a thin black outline, readable on both light and dark textures.

  3. 03

    Review and download

    Compare each texture before and after, then download the watermarked GLB ready to share.

Frequently asked questions

Why are only color textures marked?

Because in a PBR material not every texture is an image the eye sees. Normal, metallic-roughness and occlusion maps do not represent colour: they encode vectors and scalar values the GPU uses to work out how the surface is lit. Drawing text onto a normal map does not add a visible mark, it deforms the apparent geometry and wrecks the reflections; doing it on metallic-roughness turns those areas into a different material altogether. A watermark only makes sense on baseColor and emissive, the two maps that are actually seen, which is why the ilove3d 3D watermarker restricts itself to those. It sounds like a minor detail right up until somebody marks every map on a model and cannot work out why the result looks badly lit in every viewer. If you do want a mark on something other than a colour map, that belongs in your texture editor, where you can control what it does to the lighting.

Does the watermark really protect the model?

It is deterrence and attribution rather than cryptographic protection, and that is worth being clear about before relying on it. The mark is baked into the textures of the GLB, so any screenshot, any render and any preview shows it: whoever sees the model sees whose it is. Somebody with the knowledge and the motivation can open the file, extract the textures and edit them, and there is no way to prevent that. What the ilove3d 3D watermarker does do is make that work considerably more tedious with tile mode, which repeats the mark across the whole texture surface rather than placing it in one croppable corner. The geometry is not modified at all, so the model remains useful for everything it was useful for before. For a model you are publishing to a gallery or selling on a marketplace, that extra friction is usually deterrent enough in practice.

Which textures get skipped?

Those compressed with KTX2 or Basis, because the browser cannot re-encode them without transcoding first, and those exceeding 8192 pixels per side, which go past the practical limit of a canvas and would fail the process. In both cases the ilove3d 3D watermarker leaves them untouched and reports it, rather than breaking the file or marking half of it without saying so. Geometry compression is a separate matter: GLB files compressed with meshopt are supported, because the decoder is registered, while Draco-compressed ones cannot be processed. If your file carries Draco, the way forward is re-exporting it without that compression from the original program and watermarking the result instead. The report lists every texture processed and every one skipped along with the reason, so you know exactly what ended up marked and what did not.

Does it change the file's size or quality?

There can be a slight variation in size and a minimal amount of re-compression, and it depends on the original format of each texture. PNGs are re-encoded losslessly, so their content stays identical. JPEGs and WebPs are re-encoded at high quality — 0.92 and 0.9 respectively — which introduces one more generation of lossy compression that is not distinguishable in practice, but which exists and is worth stating. Everything else stays as it was: the geometry is untouched, materials keep their parameters and the GLB structure is preserved. The ilove3d 3D watermarker shows the input and output sizes before you download, so you see the exact difference on your own file rather than estimating it. If size is critical for your destination, watermark first and compress afterwards, in that order, so the same image is not put through lossy compression twice.