Workflow for 3D assets with shared textures

Godot Version

4.3

Question

Hello! :wave:

I have made a simple 3D model in Blender with a couple of materials. I am planning to make lots of variations of this model, so ideally I would like to export it / import it into Godot such that the textures can be shared by other models.

.glb seems like a poor choice here since the textures end up embedded in the file, which means that every model will contain a duplicate texture.

So, I have tried using .gltf format with separate textures. This imports the textures as separate files in Godot, which seems like a good start. However, I don’t seem to have any control where the textures reside in the project structure; the textures are placed alongside the mesh, and moving them to another directory causes the model to lose the textures. Thus, this would require all meshes to reside in the same folder in order to share textures, which seems like an organisational nightmare.

Is there a way to tell the meshes where to find the textures, such that I can re-organise them freely? Or is there, perhaps, a simpler solution?

Any suggestions would be appreciated!

Thanks,
Dan

In blender you can export with placeholder materials and assign the surfaces to Godot’s materials once imported. Textures stored separately.

Thanks for the response. Do these steps sound correct to you?

  1. Remove the textures from the materials in Blender.
  2. Export as .glb with Materials.
  3. Import the file into Godot.
  4. Double-click the file to open Advanced Import Settings.
  5. In the Materials tab, tick “Use External” and select the desired material.

This seems to work, but it is annoying to have to remove the textures in Blender because then I can no longer preview the model properly.

Export with placeholder materials, not removing textures. Could also set Images to “None” to remove texture but keep other properties like metallic, though you will be creating a Godot material anyways. Then Steps 2-5 work great.

It looks like I was using an outdated version of Blender so I was missing a lot of those export options.

If I set Materials to “Placeholder” then in Godot I see “”, and trying to set this to an external material has no effect. However, setting “Images” to “None” works like a charm - thank you!

If anyone else reads this, I’d also recommend this video which covers a lot of these problems in more detail:

2 Likes