10-07-2015, 02:20 AM
Ok. We all know the problem here. If you want to be really picky about selecting where the map is cut up you "may" get a usable map. Or, even if you are careful, you might get "twisting", where you have no flat pattern, and parts of the pattern overlap. And, of course, the autouv functions "do not do well" at spacing the parts, to prevent overlaps, even when they otherwise fail to twist things into a pretzel.
Oh, right, and, unless someone fixed it, there is still no option, never mind a default result, to make it, "generate a new uvmap", instead of mashing together the prior map for an object, with the new one. The only solution being to make sure you rename the map, as soon as you make it, so that it the next map generated will be unique (it always uses the default name for such new maps, and the code doesn't do, say auv1, auv2, etc.) There may be cases where you "miss" geometry, and having it tack the "new" map over the old one, as new geometry, would be useful, but even that would mean "finding space" in the existing map, not slapping a new one, over top of the one you already have.
These are the things broken currently. And, mostly, they are fixable, and just annoying. Yet... Here is the thing. Because they are broken, the following ideas **are not possible**:
1. Smart Unwrap - This is more or less what needs to be fixed anyway. Blender does this, and it avoids overlaps, and twisting, to produce a nice, neat, clean, map, which fits handily into the space for the final texture.
2. Bake normals to texture - This "requires" that the unwrap work well. Otherwise, well, its kind of hard to bake displacement/normals onto a texture, which is twisted up, or overlapping. Similar option for "shadows" and possibly "specular".
Note.. Someone already put out, at least in one of the threads, a simple plugin to export normal maps. And, apparently, the only difference between these and displacement maps (or Second Life "sculpties") is the image resolution, and whether or not the shape is deformed, or only the texture is "bend" to make it look like it is a different shape. They are all the same thing, otherwise. Though, normal/displacement are often applied to flattish surfaces, to reshape them, not whole objects (where SL sculpties displaced the geometry of a "fixed" number of vertices, without changing the texture appearance, or adding geometry). But, from what it looks like it does for "making" the map.. they might as well all be the same things.
3. Convert to new map. - This was an odd idea I had, which would be useful, but.. not absolutely necessary. But, it would be a neat trick, in any case. It means, basically, you bring up the UV window, then "select" parts of your existing map, which you want to be a separate texture. You can then "remap" them to a new map, erasing them from the existing one, in effect, separating out the result into two uvmaps, and two textures.
Why would you want to do this? Well, maybe you have a "default" texture, you where working with, but, later on, you decide that you need part of the object to me mappable to something else. You don't need to redo the texture this way. You just "break" the existing map, for the texture you already have, into several parts, so you can still use the original texture, without any problems, or you can create new textures, with just the parts needed, to change those details.
The existing method would require remapping the entire bloody thing, into multiple new maps, and, without a mess of fiddling, remaking all the textures, as well.
4. Autouv to existing map (actually, not sure of the name for this)- This is the one that I would really like to see, and it "fits" right in with the baking of normals (and shadows, for that matter, if the option was added).
Now, its possible a smart unwrap "could" in many cases "map" a low rez, and high rez, object to nearly identical uvmaps, so you could do minimal tweaking to get it right. But.. I think there is a better option. The idea is to be able to pick an existing uvmap, and "mark", either the outer edges, or maybe more than that, then use it as a template, for unwrapping another object. This means that you would unwrap the "low res" version of your object, to the textures you need. You then use "those" uvmaps as "templates" to determine where the high res map lines up to the same texture.
Presuming this can be done, it would mean that you could them "bake" the high res object to a normal texture, and the result would line up with the other textures exactly, without needing to tweak any of them, to fit properly. Since they already "match" the place they should be on the low res object, no tweaking would be needed at all.
I have no idea how/if blender handles this, but I suspect its.. probably the same way you would have to in Wings 3D now - load the texture you intend to use onto the high res mesh, then tweak the heck out of the bits of its uvmap, until they sort of line up right, before backing the normal/shadow maps from that high res copy.
In any case. Most of these things either won't work, won't work well, or would be a nightmare to do, with uvmapping broken the way it is. Just.. making uvmaps at all, if you are not paying attention, can be disastrous, due to the, "I'll just use the existing map, and tack on the new bits you just unwrapped to that, OK! ", way it currently doesn't handle maps and objects.
Oh, right, and, unless someone fixed it, there is still no option, never mind a default result, to make it, "generate a new uvmap", instead of mashing together the prior map for an object, with the new one. The only solution being to make sure you rename the map, as soon as you make it, so that it the next map generated will be unique (it always uses the default name for such new maps, and the code doesn't do, say auv1, auv2, etc.) There may be cases where you "miss" geometry, and having it tack the "new" map over the old one, as new geometry, would be useful, but even that would mean "finding space" in the existing map, not slapping a new one, over top of the one you already have.
These are the things broken currently. And, mostly, they are fixable, and just annoying. Yet... Here is the thing. Because they are broken, the following ideas **are not possible**:
1. Smart Unwrap - This is more or less what needs to be fixed anyway. Blender does this, and it avoids overlaps, and twisting, to produce a nice, neat, clean, map, which fits handily into the space for the final texture.
2. Bake normals to texture - This "requires" that the unwrap work well. Otherwise, well, its kind of hard to bake displacement/normals onto a texture, which is twisted up, or overlapping. Similar option for "shadows" and possibly "specular".
Note.. Someone already put out, at least in one of the threads, a simple plugin to export normal maps. And, apparently, the only difference between these and displacement maps (or Second Life "sculpties") is the image resolution, and whether or not the shape is deformed, or only the texture is "bend" to make it look like it is a different shape. They are all the same thing, otherwise. Though, normal/displacement are often applied to flattish surfaces, to reshape them, not whole objects (where SL sculpties displaced the geometry of a "fixed" number of vertices, without changing the texture appearance, or adding geometry). But, from what it looks like it does for "making" the map.. they might as well all be the same things.
3. Convert to new map. - This was an odd idea I had, which would be useful, but.. not absolutely necessary. But, it would be a neat trick, in any case. It means, basically, you bring up the UV window, then "select" parts of your existing map, which you want to be a separate texture. You can then "remap" them to a new map, erasing them from the existing one, in effect, separating out the result into two uvmaps, and two textures.
Why would you want to do this? Well, maybe you have a "default" texture, you where working with, but, later on, you decide that you need part of the object to me mappable to something else. You don't need to redo the texture this way. You just "break" the existing map, for the texture you already have, into several parts, so you can still use the original texture, without any problems, or you can create new textures, with just the parts needed, to change those details.
The existing method would require remapping the entire bloody thing, into multiple new maps, and, without a mess of fiddling, remaking all the textures, as well.
4. Autouv to existing map (actually, not sure of the name for this)- This is the one that I would really like to see, and it "fits" right in with the baking of normals (and shadows, for that matter, if the option was added).
Now, its possible a smart unwrap "could" in many cases "map" a low rez, and high rez, object to nearly identical uvmaps, so you could do minimal tweaking to get it right. But.. I think there is a better option. The idea is to be able to pick an existing uvmap, and "mark", either the outer edges, or maybe more than that, then use it as a template, for unwrapping another object. This means that you would unwrap the "low res" version of your object, to the textures you need. You then use "those" uvmaps as "templates" to determine where the high res map lines up to the same texture.
Presuming this can be done, it would mean that you could them "bake" the high res object to a normal texture, and the result would line up with the other textures exactly, without needing to tweak any of them, to fit properly. Since they already "match" the place they should be on the low res object, no tweaking would be needed at all.
I have no idea how/if blender handles this, but I suspect its.. probably the same way you would have to in Wings 3D now - load the texture you intend to use onto the high res mesh, then tweak the heck out of the bits of its uvmap, until they sort of line up right, before backing the normal/shadow maps from that high res copy.
In any case. Most of these things either won't work, won't work well, or would be a nightmare to do, with uvmapping broken the way it is. Just.. making uvmaps at all, if you are not paying attention, can be disastrous, due to the, "I'll just use the existing map, and tack on the new bits you just unwrapped to that, OK! ", way it currently doesn't handle maps and objects.