Preventing duplicate textures when importing models from Blender (glTF)

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Jeppe Zapp

This is mostly a workflow question.

I have a bunch of textures in my project folder that are shared across different .blend files. When I export these files to .glb, all textures are bundled with the model. When I export using .gltf plus textures and .bin files, Blender will make copies of my textures and store them all in one folder.

In both of the above cases, I end up with duplicate texture files, and with the project I have going on, this could escalate well beyond several gigabytes of duplicate content.

Is there some way to export to a format from Blender without including the textures, but referencing the already existing files in my project folder?

EDIT: I can see there is an option in the glTF export dialog in Blender to use material placeholders instead of exporting, but that just leaves me with empty material slots and no way to automatically reassign them.

I wonder how Godot handles this. If you look at Godots .import-Folder, you see it builds a hash for every texture it imports, and links the original hash to the imported texture’s hash. If it actually hashes the content of the files, it would be very easy to extend that to transparent de-duplication of files with the same hash on importing, and your problem would just vanish. If you don’t get an answer here, you could post on the Godot Github issues and suggest deduplication on import. (if Godot doesn’t actually already do it - it might wait with deduplication until you export your project).

archeron | 2021-03-26 08:00

That’s what I was thinking too, that the size of the final exported project might be unaffected, my concern in this case is the size of my repo :smiley:

Jeppe Zapp | 2021-03-26 08:42