Jump to content

Not again


Pamela Galli
 Share

You are about to reply to a thread that has been inactive for 3673 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I made the unforgivable mistake of importing a .dae and joining it to another mesh without changing the name of the meshes so they match. Therefore, the meshes I worked on for several hours I have to re-UV and texture. 

Why did Blender coders make this change?  What is the benefit? 

Link to comment
Share on other sites

We have discussed it before, and it was said there was an actual reason the coders did this. I dont remember what it was, but it would have to be pretty good for it to be worthwhile.  

If the meshes do not have the same name now, one of them is deleted, so there is not much to show in a screen shot.

Link to comment
Share on other sites

Blender provides multiple UV layers per mesh. These layers can be named.
When 2 meshes are joined then this hapens:

In older Blender versions:

UV Layers are merged depending on their relative position in the list of UV-layers.
When mesh A has 2 UV-layers and mesh B has 2 UV Layers, then the first UV layer of mesh a is merged with the first UV layer of mesh B, and consequently the second UV layers are merged in the same way.

This was considered a completely wrong behaviour. It ONLY works when both meshes have the same number of layers, the same logical order of layers and when the layers are used for the same things.

In newer versions of Blender (i believe since 2.70):

Blender uses the names of the UV Layers to find matching pairs. and it keeps non matching UV lauyers separated.
Now the user has the option to prepare the meshes UV layers such that the mesh join will create the correct UV Layer join.

Does that make sense ?

There has been a discussion if there could be some sort of UV Layer join tool that would be able to join and separate UV parts of a mesh. But as far as i recall nobody has worked on this yet.

Link to comment
Share on other sites

Well no I did not understand because I don't know about UV layers. I just separate UVs by material. I dont know the purpose of UV layers.

Mistah, make two meshes. Change the name of the UV Map of one. Then join them.  One of the UV maps will disappear.

Link to comment
Share on other sites

A mesh can have several UV layers for many purposes. Where each UV Layer contains a UV Map. Just take this as a fact of Blender :)

When you join 2 meshes where each mesh has only one UV Layer and when both meshes have named the UV Layer differently, then the joined mesh will have 2 UV Layers. You find the UV Layers in the Mesh data properties section...

When both UV Layers have the same name, then the joined mesh will get one joined UV Layer.

This new behaviour is better compared to the behaviour of older blender versions, where UV Layers where always joined undependent of their names.

Link to comment
Share on other sites

i just got a tip for how you could do it. Actually all you do is separate the object into its original parts, remove obsolete UV Layers, rename the remaining UV Layers to the same name, join:

  • edit the joined object.
  • select all verts which are connected to the first UV Layer
  • separate this mesh as seprate object. (use 'p')
  • take care to rename both UV Layers in Both Objects to the same name
  • join the objects

 

Link to comment
Share on other sites


Pamela Galli wrote:

What happes is that one of the UV maps collapses into a dot in the bottom left corner of the UV space. 

 

I can send you an example file if you like, using the same process I described above.

This collapse happens when you separate the objects ?

Could you publish a demo blendfile that shows the model just before the UV map collapses and then explain what exactly you do, that results in the collapsed UV map ? http://pasteall.org/blend would be a good service to use for publishing ...

Link to comment
Share on other sites

"the UV maps collapses into a dot in the bottom left corner"

That's what you get when no UV mapping has been applied. All the vertices are mapped to coordinates 0,0. Even before the change to name matchng, if you combined two meshes with different numbers of UV maps, in one of them the mesh with fewer maps will never have been mapped, and all it's vertices will consequently be 0,0. With the name matching, I suppose the same thing still happens - wherever a mesh had no map with the name of one from the other mesh, all it's vertices will be 0,0 in the combined map.

There is no need to have different UV maps for different materials. In fact, it is not a good idea for SL import because SL will only ever use one map, even if there are more in the collada file. So you need to have all the materials included in one UV map. Unless you are baking all materials into a single texture for SL, you can select by material to map each separately to the same UV map. That way, the whole UV space will get used for each material (by default) and the material maps will overlap, but that doesn't matter because they are going to be textured separately. To bake, just use a new image in the UV panel after selecting each material, then bake. You don't need a new UV map.

The important thing here is to keep in mind a clear distinction between the UV map and the baked images. They are not the same thing. They are independent. On image can be used at the same time with different UV maps, and one UV map can be used at the same time with different images.

 

Link to comment
Share on other sites

I just tried reproducing it and, voila, cannot.  I even tried with the same two meshes that this happened with yesterday, and could not reproduce it.  I notice I am using 2.69.  So, clearly I am hallucinating that upon joining meshes with different names, one collapses into a corner.  And also hallucinating that when I take it inworld and apply a texture, the mesh turns black (which is how I am tipped off what has happened.)

I hallucinate this about once a month, after importing a mesh and joining it with another. Sorry for taking up people's time with this repeatedly, you are always so helpful.  :-)

 

Link to comment
Share on other sites

These two meshes had been mapped.  I had used them both on other projects and was combining them for the new project. I had imported one into the file. But as I say I cannot reproduce it on purpose now.

I do have all the materials in one UV map (except in advertantly when I join two with different names).  I was trying to understand what the  UV layers Gaia mentioned, are used for. My "layers" are by material, as you said here: "To bake, just use a new image in the UV panel after selecting each material, then bake." 

 

 

Link to comment
Share on other sites

Finding some info:

 

https://developer.blender.org/T37182

 

https://developer.blender.org/T37577

 

I am not hallucinating after all, yay!

 

Here is one comment: 

" bug only happens (as far as I can see) when you create the UVmap of the first cube in Edit mode, leave back to Object mode, and do not switch again first cube in Edit mode. Else, joining works as expected.

So I suspect a sync issue in CDLayers between Object and Edit modes, somehow… Will dig this next week.

PS: Following steps above allow to recreate the bug, if you really create first cube from scratch (using the default-scene one does not work). And to make joining work as expected, you just have to tab one more time in/out Edit mode for the first cube, before doing the joining (after or before duplicating to the second cube, that does not matters)."

 

Like I am going to remember that haha!

Link to comment
Share on other sites

oh, a 2.69 bug ... bah. So you work with old and outdated software :)

But seriously ... this is another nice example for how important it is to tell which software version is used... I should have mentioned that i was testing on 2.71 release candidate, while you should have mentioned earlier that you use blender 2.69 :)

So.. next time we all know better

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 3673 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...