2
$\begingroup$

I have 4 models that has separate materials and each models already have UV coordinates.

I want to combine these models to using single material for better performance in games.

Current what I do is just import all models in single Blender file and change to use single material and remap the UV coordinates of each 4 models to take each takes 1/4 of texture space.

This actually works, however there are some lots of precision lost, also it took so much time to make texture each time.

Here's my workflow for this:

  1. Import all models in single Blender file
  2. Remove all materials and create new one and apply to all models
  3. Update UV coordinate of each model to take 1/4 spaces of texture space.
  4. To do that, first I scale down to .5(50%). If texture is 1K size, it should be 512x512.
  5. Move -256px of X and Y. But here's the problem, this is always incorrect position(I don't know why). Mostly I just move the whole uv coordinates to find better position.
  6. Repeat 4~5 until 4 models done.
  7. Save combined model and make new texture from 2d graphics program, such as photoshop.

Is there a shorten way to do this, or is there a better way to do this? It will be really appreciate it give me some advice.

$\endgroup$

2 Answers 2

0
$\begingroup$

I know there is an addon for that: TextureAtlas.

$\endgroup$
0
$\begingroup$

There are a number of techniques you can use to improve the process.

  1. You can scale the UV maps about a cursor instead of doing your manual scaling->translation. You can set the position of the cursor manually via the sidebar.

  2. You can look into texture baking, which allows you to use 2 different UV maps, and write one to the other-- regardless of positioning.

  3. If texture baking, you can use automated packing tools to improve your texture resolution. Blender has built in packing in the ctrl-p operation. There are addons that promise better use of texture space.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .