Very often when i finiSh working on UVs and textures for object, im being asked to edit uvs and textures. So what would save me a lot of time, would be if there was an option to move the island together with texture assigned to it. Is there an option to do this ? How you guys deal with fixes like this?
-
$\begingroup$ hello, strange, how could you move the image part along with the UVs? $\endgroup$– moonbootsJun 9, 2021 at 9:21
-
$\begingroup$ I'm not sure how this could work. UV texturing usually uses a fixed image texture and the UV islands placed upon according to what they are supposed to show. If you move the UV islands like in your screenshot and the part of the image below follows, then you could overlap image parts used by other UV islands. To avoid that, other islands and image parts should be moved as well, which would end up in moving all islands and the complete image together, i.e. no change at all. If you have to move image parts, the best is using an image editor. Or I simply don't understand what you need. $\endgroup$– Gordon BrinkmannJun 9, 2021 at 9:37
-
$\begingroup$ On my second sentence: of course it's not necessarily a fixed image texture, you can as well have a UV layout, export it and create the texture according to where the islands are. But often you have textures with special images you want to place on the mesh, so the UVs have to be moved to those parts of the image, not vice versa. Even if you paint a texture matching the UV layout, it's usually a fixed image aferwards. $\endgroup$– Gordon BrinkmannJun 9, 2021 at 9:43
-
$\begingroup$ This is definitely possible, but tricky. 1. A custom operator that moves UV points, and while moving them, runs a function modifying the image using Python. 2. The function would be tricky to write without opencv library, which is not bundled with Python, so you would have to install it. stackoverflow.com/q/30901019/1149282 $\endgroup$– Markus von BroadyJun 9, 2021 at 10:57
2 Answers
Simple method
Let's say You have Susanne:
If you want to move her eyes, you can load the texture in a 2D program, e.g. Photoshop, select and then move the the eyes like so:
Write down the offsets:
X: 795.05 - 903 = -107.95
Y: 395.45 - 301 = 94.45
Divide these offsets by width/height to normalize them, and flip the Y coordinate (because in Blender Y rises up, but in Photoshop it rises down):
X: -107.95 / 1024 = -0.105419921875
Y: 94.45 / -1024 = -0.092236328125
Load the new texture and move the islands by those numbers:
-
$\begingroup$ Thank you Markus von Broady for your hack to change position of islands :). I really appreciate your explanation with pictures. However, it still seems very time-consuming. I will be trying method with baking from this link: blender.stackexchange.com/questions/15510/… If it would work it would be the quickest method. If it works I will post it here. $\endgroup$– HanyaJun 13, 2021 at 10:44
I found an easy way to bake a new texture :D that solves my problem!
THAT WORKS!
Which is a perfect solution for me. This is link to tutorial on how to bake a new texture after you changed up the UV's. Tutorial: Possible to bake texture to new UV map? This is solution by gandalf3♦ oryginaly a reply for diferent but similar question.