Pixel-art texture on 3D model looks “blocky/blurred” in Defold even with Nearest + no mipmaps (tiny NPOT texture 30×70)

Hi! I have a 3D model (glTF from Blender). In Blender I use a very small pixel-art texture (e.g. 30×70) and it looks perfectly crisp with Nearest/Closest filtering because the UVs are mapped so that each face basically corresponds to a texel.

But in Defold the same model/texture looks “blurred”, but in a pixelated / blocky way (not smooth blur). Disabling mipmaps + setting filter to nearest improved it a bit, but it still looks wrong compared to Blender.

What I want: keep the texture as small as possible (30×70) and get the same crisp per-face texel look as in Blender.

What I tried:

  • Disabled mipmaps

  • Set texture filtering to Nearest in project/texture settings

Could Defold be rescaling my NPOT texture (30×70) to a power-of-two during build/import? That would break the “1 texel per face” mapping.

If needed I can attach a minimal repro project (model + texture + material).

Thanks!

2 Likes

UPD (temporary workaround): I fixed it for now by switching the texture to 32×128 (POT) and repacking the UVs into that texture via a script (so all islands fit exactly into the new 32×128 grid). With this change the result in Defold becomes crisp as expected with nearest + no mipmaps. I’ll keep investigating the root cause for tiny NPOT sizes (30×70), but this POT texture + scripted UV packing works for production right now.

4 Likes