[tutorial] How to remap UV coordinates saving texture in 3ds max?

Abstract


Sometimes you can get a good textured model but with poor UV space usage. Whole large parts of texture can be unused or UV elements may be distributed with a lot of free space between them. In some cases texture size could be reduced twice almost or fully without loosing quality if only UV space was used effectively.

In this paper a case study will be reviewed and given a method of UV space of a textured mesh usage optimization. I have made a 3D model for this tutorial with 1024x1024 texture and poor UV space usage. Here I will give detailed instructions how to optimize UVs and reduce texture size to 512x512 without loosing quality.

Initial conditions


I use 3ds Max 2016. I guess the proposed method will be actual for a number of newer and elder versions.

Here we have the model of onion:


01-onion-3ds-max.png

It consists of 233 triangles and here is its UV template:

02-initial-uvs.png

As you can see, the usage of UV space is poor. I tried to reproduce the most common flaws: a lot of free space between elements. The leaves have a bit excess square since they’re not very detailed. Huge parts of texture are not used at all. Generally all parts of texture could be fit into 512x512 texture, i.e. reduce memory usage for texture in four times.

The process


На заметку
Please do not forget to save backup of the initial model before doing something. Once you haven’t made a backup a lonely utah teapot begins to cry somewhere far away.


Make the new UVs in another channel of UV coordinates


First you should make the new UVs for your model. Since we’ll need the initial UVs as well, we’ll want to make the new UVs in another channel. To do so apply Unwrap UVW modifier to your model, then find Channel section in its panel and choose Map Channel? for example. #2.

03-Channel.png

It will ask you if you want to copy UVs from current channel (#1) to the chosen channel (#2) (Move) or you want to see the existing coordinates in the chosen channel (Abandon). Let’s make new UVs basing on existing #1 channel UVs, so choose Move.

04-New-Channel.png

Now you have UVs switched to channel #2 and can edit them by opening UV Editor.

05-open-uv-editor.png

Rearrange your UVs more effectively. You can disable texture in editor to get more clear view

06-disable-texture-in-editor.png

Here is how I rearranged the elements:

07-New-UVs.png

Generally the UV Space usage became much more solid. Almost no free space, leaves do not use excess texture square. Main parts of the bulb have the same relative square as they had before (considering that the texture size will be reduced twice).

Adjust render and bake


Generally we’ll need only albedo, so here’s the easiest way to get the desired settings:

Press “8” key on the keyboard to invoke “Environment” dialog and set the Ambient color to white and the Tint color to black:

08-environment.png

Now we’re ready to bake. Select the mesh and press “0” key on the keyboard to invoke “Render to Texture” dialog.


Here set padding (more — better, I set 15), choose channel with the new UVs (#2 as we created it before)

09-RTT1.png

Now scroll it down and add an output. We need Complete Map.

10-RTT2.png

Choose size of the texture. Initial texture size was 1024, but I’ve chosen 512 since we have optimized UVs. Choose a file to save the baked texture at. Finally press Render.

11-RTT3.png


It’s OK that we do not specify Target Map, press Continue.

12-RTT4.png

And here we go! This is the rendered new map (it saves to file with padding):

13-rebaked map.png

Cleanup UV Channels


Now we need to copy UVs from channel #2 tp channel #1 and remove the 2nd channel. To do so assign Unwrap UVW modifier again and switch UV channel to #2. Since we already have data there we click Abandon.

14-Unwrap-change-channel.png


After that switch it back to #1. And here we want to Move data from channel #2 to channel #1 so press Move.


15-Unwrap-change-channel.png

The model in viewport will change UVs, that’s OK.

16-WrongUVs.png

Now we need to remove the channel #2. To do so assign UVW Mapping Clear modifier and choose the second channel to remove.


17-clear-channel.png


Finally we can collapse the modifier stack and assign the new texture to the model!


18-final-result.png

The texture is now 512x512 (four times smaller) but as the UVs are now more effective, the model keeps its quality and saves the video memory!

Hope this tutorial was helpful for you.

You can leave a comment with "Facebook":
Не забывайте оставлять комментарии при помощи "ВКонтакте":
Яндекс.Метрика