Extract FBX and ONLY the UV mapped part of a texture atlas

I have a common problem. I bought a package that has:

  • An FBX with 20 models inside
  • An atlas with 30 textures
  • What I need is:

  • Extract ONE model
  • Extract ONLY the parts of the texture(s) that the model's UVs map to
  • Here is a specific example:
    The file Plants.FBX contains 20 models, one of which is a Flower mesh. There is also a texture map called WayTooBig that contains the textures used by Flower.

    If I cut up “WayTooBig” and put the flower textures into a smaller, 64x64 texture map, then the UVs in Flower mesh will be all wrong, because they still point into the middle of WayTooBig.

    This must happen to everyone all the time, but I can’t find out how to deal with the issue properly.

    I’m assuming your purchased package has one giant uv map which is used for all the plant models? If these plant models are quite complex with a large variety of colours or a complex colour map it’s probably not worth your time minimizing this texture map unless it’s absolutely ginormous.

    if it’s a low poly package or there’s a small number of colours then you can do the following steps in blender:

    1. go into edit mode for your chosen model and press A (this should select all faces/edges/vertices for the object it doesn’t matter which)
    2. take a picture or a snippet of which colours include your model
    3. go into paint and make a new colour map with only the colours/areas that are highlighted in the map
    4. Assign the new colour map to your model (assuming it’s a material you can drag the picture into the shader and attach colour to basic colour
    5. Finally use the same snippet from earlier as a reference and drag each individual group to your new map (while all faces are still selected in the editor)

    I’m not an expert so there might be a better way but this is how I’d do this if it was absolutely necessary. If you’ve paid money for a product I’d personally suggest contacting the owner and asking for a smaller texture map for the plant.

    if large texture maps do cause performance issues then I have a lot of work ahead of me as most of my maps are 512X512

    Well, I’m not an artist, but extracting a part of an atlas is certainly possible, however it depends on how the atlas is organised. If the individual parts are laid out randomly across the atlas, you have to create a new atlas with only those parts. Automatically creating and packing a new atlas can be quite difficult. Though if the atlas is actually composed of individual “texture tiles”, it would be relatively easy. It all just boils doen to coordinate mapping. It’s difficult to give a clear advice without seeing the actual texture and which areas are actually mapped. Though if it’s a paid asset, you probably can’t share the content.

    Note: If you really only need one model it may be worth it to extract the relevant texture parts into its own texture. However if you plan to use multiple meshes / objects, it’s generally better to keep the atlas. Using an atlas allows you to use the exact same material for all those objects. This is better for performance since the material / material properties do not need to be changed and the object can be batched (depending on the usecase of course).