1
$\begingroup$

To unwrap a genus-0 mesh such as a sphere, I can make a full sphere from an unwrapped half sphere applied with mirror modifier. the amount of uvs equal the amount of vertices. But the two verts selected in image below have two different uvs with the same value.(by checking in the exported .obj)

Or I can make a seam then 'Unwrap'. This way the number of uvs is larger than the amount of vertices. Each uv coord is unique, no repeated values.

I wonder how to unwrap a genus-0 mesh so each vert has one and only unique uv? Unique means there're no repeated uv coord values, it's not unique if the ith vt and jth vt have the same coord values.

$\endgroup$
  • $\begingroup$ How did you know that the v 1 2 3 represent a uv coord? I check the obj definition which indicate that v stand-for vertices coord and vt stand for uv values. $\endgroup$ – HikariTW Nov 17 '19 at 5:57
  • $\begingroup$ And I think it is totally possible to unwrap using only one uv per vertices (depend on how the data is interpreted). You can try project from view, which always give you a merged uv coord. And after export to obj file, the vt amount should meet the v numbers. $\endgroup$ – HikariTW Nov 17 '19 at 6:04
  • $\begingroup$ Also keep an eye on f. eg. A cube face:f 8/5/6 4/13/6 2/14/6 6/7/6. the element indicate which vt values to use in a face and vertices. So it doesn't to store duplicated data. $\endgroup$ – HikariTW Nov 17 '19 at 6:08
  • $\begingroup$ @Hikariztw Woops, I got the wrong screenshot. Let me update it $\endgroup$ – June Wang Nov 17 '19 at 6:15
  • $\begingroup$ @Hikariztw Project from view will give me one uv per vert, but the half the vertices will share the same uv coord values with the other half. i.e. the uvs for (-1.5, 1,5, 3.0) and (1.5, 1,5, 3.0) are both (0.88, 0.30). What I'm looking for is that each vertex has a unique uv coord $\endgroup$ – June Wang Nov 17 '19 at 6:30
2
$\begingroup$

≫ I want the uv to represent vertices too, so each vert has a unique uv.

If the word "represent" is to identify which vertex is it, then it is doable.

A cube is almost the same thing to a UV sphere(g-0). You can project from view to make all uv shared by all edges and faces connect to it.

enter image description here

So we get 6 uv values only? No.

Actually, we still have 24 uv values inside Blender data. Those connected and shared vertices uv move together in Blender by default. You can even move the individual uv by adjust the selection option.

enter image description here

An uv map is depend on the topology of face. So there should be the same amount of uv tuples to represent a texture coordinate. In a cube, 4 for a face, and 6 face: 4×6=24 uv tuples. You can share the uv values, but you can't ignore that the uv query times should still be 24 to mapping the texture space.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Technically 100% right. I just thought he does not like seams and expressed his desire to get rid of them in a complex way. But if its the uniqueness alone is whats important, than this works perfectly ;) $\endgroup$ – Gerald Degeneve Nov 17 '19 at 11:07
  • $\begingroup$ Yes, project from view indeed seems to be a solution. You actually get 8 uvs when export it into .obj, I do not know where 24 come from tho.Thanks $\endgroup$ – June Wang Nov 17 '19 at 12:38
  • $\begingroup$ @JuneWang From how blender treat those data in python. When export to obj, those connect and shared vertices were combined automatically to single data record. $\endgroup$ – HikariTW Nov 17 '19 at 13:43
3
$\begingroup$

No.

Unwrap. Meaning peeling the surface off of a solid and laying it out flat on the ground.

If your requirement is that there are no duplicated texture coordinates at all, it would mean that you are trying to peel an orange without cutting its skin. Even if you manage to "beam off" the skin in one piece you end up with a hollow shell that you cannot lay out flat on the ground without the front and back sharing the same area.

And the moment you cut it you get seams and therefore more uvs than vertices. if you merge them again later you once more end up in the situation described above.

This is true for all solids, not just genus-0 ones like a sphere.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Solids have no holes/knots are also genus-0. Okay, looks like this overlapping situation is inevitable. Thanks. $\endgroup$ – June Wang Nov 17 '19 at 9:25
  • $\begingroup$ It's possible to have each vertex with a unique UV, but not every interpolated surface point. $\endgroup$ – Robin Betts Nov 17 '19 at 10:58
  • $\begingroup$ @RobinBetts What's the difference? $\endgroup$ – June Wang Nov 17 '19 at 12:30
  • $\begingroup$ @June e.g. trivially, you could project from view the front half of a sphere, move its UVs out of the way, and then project the back half. No two verts would have the same UV, but the faces stretched between them would overlap. $\endgroup$ – Robin Betts Nov 17 '19 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.