Divine Skins
Divine Skins Wiki

Material Atlas (No Plugin)

This tutorial will explain how to do material atlases manually. No plugins needed.

Intermediate
Info

Before getting started there’s another guide on this topic that achieves the same and faster via a plugin here. Just in case you missed it.

But if:

  • The plugin broke or has issues
  • You are too lazy to update blender to version 5.xxx (my case lol)
  • You are a plugin racist.

Then let's continue.

First things first, what is a material atlas? Well, ideally we want to have the 3D model textures packed into a single image so we can import them into league and sometimes when you download a model, its material view looks like this:

List of materials of an imported 3D model
Image 1. List of materials of an imported 3D model

As you can see there’s a long list of materials and each one is tied to an image containing a portion of your model’s textures. We will narrow it down to just 1.

To do so we need to follow these steps:

  1. UV unwrap your model into a new blank image using a new uv map.
  2. Setup the baking
  3. Bake the textures into our blank image.
  4. Final touch and cleanup

Step 1

Info

This is probably the hardest part of the process so once finished you will be 80% done.

For the sake of this tutorial we will skip the part of “good UVs” and we will let blender do it all automaticaly for us, but bear in mind that it will always be better if you manually create seams for your model and unwrap them properly.

First of all, create a new uv map to hold our new changes, to do so, go to the right side panel view in blender and click in the green triangle as shown here:

New UVMap creation
Image 2. New UVMap creation

You can name the new uv map as you wish, you should now have something like

New UVMap creation outcome
Image 3. New UVMap created
Warning

Notice how we have it highlighted in blue but the camera icon is disabled as opposed to the default UVMap that has it enabled, this is important. This tells blender “Show the UVs of UVMap in the render but any action or modification is saved onto the one in blue.

Next up is going to UV Editing tab

UV Editing view
Image 4. UV Editing view

The left panel is where you edit your UVs, By default, a random image from one of the materials of the model will be selected but what we want is to create a new image from scratch. I usually set the images to be 2K → 2048 x 2048.

Creating a new image for our texture
Image 5. New texture image

Make sure once the image is created that you are actually editing said image and also that you are using your newly created UV map:

New image outcome
Image 6. Image creation outcome

We have now to re-arrange the UVs so they are nice and tidy, right now if you select a part of the model you will see a mess:

UV mess
Image 7. UV mess

Fear not, the process is mostly automatic.

Select the whole 3D model pressing “a” then press “u” and select “Smart UV Project”, copy my settings or play with them as desired if needed.

UV mess fix in progress
Image 8. Fixing the UV mess

You should now have something like

UV smart project output
Image 9. UV smart project output
Warning

This might seem “good” but you need to be careful since automatic UV unwrapping is not perfect and it may be some overlappings.

For example, if we zoom in in the bottom-left corner we can see that hasn’t been unwrapped so nicely

UV smart project possible issues
Image 10. UV smart project possible issues

How do we fix it? Easy. First, select the affected part, to do so, you need to activate the little icon on the top-left corner of the below image. Also make sure to be on “face selection" (the underlined icon)

UV smart project possible issues
Image 11. Activate UV reverse bidirectional selection

Now all UV island will be visible on the left side, you can now go to the problematic area, with the mouse hover a face from there and hit L to select only that island, you will see that it is highlighted also in the 3d model. Let’s unwrap this one alone, after selecting it, hit U but this time choose “Unwrap minimum stretch”.

Unwrap minimum stretch of selected area output

Image 12. Unwrap minimum stretch of selected area output

You could resize it by hand until it fits in the blank spaces of our image, or you could let blender do it for you! For the latter, press “A” again to select everything once more. Then go to UV menu and choose pack islands

Packing islands again
Image 13. Packing islands again
Info

Try to use the same spacing value as in image 8

Packing islands again (2)
Image 14. Packing islands again (2)

Your UVs are now ready. Let’s get the baking done now.

Step 2

The baking tells blender to transfer certain parts of how the 3D model is looking now into another place, usually a texture image.

For this step we’re going to use the shading tab from the tab menu at the top of the blender window.

In the left side, make sure to open our previously created “one_texture” image which should be black yet.

Shading tab
Image 15. Shading tab

Now comes the boring part. go to the right side panel, the material view, and select the first one. Then, in the node panel (the boxes right below our 3D model) press F3 and type “Image texture”

Creating a new image texture
Image 16. Creating a new image texture

Now select our “one_texture” image from the “picture” icon. You should have something like this

Creating a new image texture output
Image 17. Creating a new image texture output

By the way, I like to change the color space to sRGB, the rest leave it as is.

Notice how you have a white highlight around the border of the box? That means it is selected, this is also important for the baking.

Once done, hit ctrl+c to copy the node, and go through each one of the remaining materials in the right side panel list and hit ctrl+v to paste it.

If you did it correctly, you will now have one box like the Image 17 per material, make sure they are all selected.

Step 3

Go to the render tab in the right side panel

Render tab
Image 18. Creating a new image texture output
Warning

Change the render engine from EEVEE to Cycles since EEVEE doesn’t support baking.

Enter the “Bake” submenu there and select these settings:

Bake submenu settings
Image 19. Bake submenu settings

A diffuse map bakes the color of the texture, we disable direct and indirect since we dont want any lighting interfering.

Before hitting “Bake” button, make sure of this
  1. The selected UV map is the one you created new.
  2. There’s a new selected image texture node for each material.
  3. Your 3D model is also selected
Check bake settings
Image 20. Check bake settings

Once ready, hit bake.

If you followed the tutorial correctly, you will have now something like this

Bake result
Image 21. Bake result
Careful

Save the image locally or you will lose it.

Save result
Image 22. Save result

Step 4

Time to clean up and test the result.

Go back to layout view (at the top menu bar), your 3D model should look good by now, let’s mess it up a bit. First, let’s create a new material to hold our new texture.

Create new material
Image 23. Create new material

Give it a name, like “one_texture” and switch to the shading layout then put the nodes like in the following image.

Setting nodes
Image 24. Setting nodes

Go back to the layout tab and delete all materials except the one created by us. You will end up with a mess like this

Material doomsday
Image 25. Materialggedon

Do you recall the UV map menu back in image 2? swap the camera icon so that your new uv map is the one having it active and see the magic.

Success

Now the final touch, remove the old “UVMap” and rename the new one to the same “UVMap” name. I’m not sure but I read somewhere that the UVMap name is important for the skins to work in league.


On this page

Written by the Divine Skins community. Open source on GitHub.