Page MenuHome

Convert to Mesh Hangs on Instanced Objects with Modifiers
Closed, ArchivedPublic

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: Quadro P5000/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 461.40

Blender Version
Broken: version: 2.92.0, branch: master, commit date: 2021-02-24 16:25, hash: rB02948a2cab44
Worked: N/A

Running [Object > Convert to > Mesh] hangs when running on instanced mesh data with modifiers.

Exact steps for others to reproduce the error

  1. Open provided blender-c2m-bug.blend
  2. Select the "Instance 01" object
  3. Object > Convert To > Mesh

Expected Behavior

Object is converted to mesh, applying all the modifiers.

Actual Behavior

⚠️ Blender hangs instantly.

Additional Notes

ℹ️ If you remove one of the instances from the scene and try to convert the other one, the convert to mesh operation runs successfully.

Attachments

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from User.Mon, Apr 19, 3:09 PM

Here, it will actually finish (after quite some time -- but this is due to the other instance recalculating the whole modifier stack on the "new" mesh data)

The polysoup on the other instance is kind of expected since modifiers remain active on that object, resulting in lots of polys.

Are you sure this never finishes for you?

Oh, I didn't even think of waiting for it to finish though. But, after you mentioned, I waited and got the same result you did.

I do think this is a bug since it shouldn't take this long though, unless this is expected behavior related to how instances work internally?

I think internally since the object is converted to raw mesh data anyway, Blender needs to make the object single user, *before* converting to mesh, this way it does not affect other instances (I tested and this works as expected, which does make sense and is the expected behavior).

P.S. Sorry, I used the term "hang" which was not the proper word choice in this case!

Philipp Oeser (lichtwerk) closed this task as Archived.Mon, Apr 19, 4:50 PM

Dont think this is a bug.

You've turned the original input mesh from 11 verts to ~850 verts, and the whole modifier stack now acts on these [plus there might be complications regarding these particular modifiers].
The whole resulting polysoup is now at 5.3 million verts / 11million edges, so that might take a bit.

I think internally since the object is converted to raw mesh data anyway, Blender needs to make the object single user, *before* converting to mesh, this way it does not affect other instances (I tested and this works as expected, which does make sense and is the expected behavior).

In this case, this makes total sense, but this might not be the case in all situations (it does sound though that this would be preferred in the majority of cases, true).
That being said, that would be a request for modified/improved behavior and not a bug in current behavior. Closing as this bug tracker is only for bugs and errors.
For user requests and feedback, please use other channels: https://wiki.blender.org/wiki/Communication/Contact#User_Feedback_and_Requests
For more information on why this isn't considered a bug, visit: https://wiki.blender.org/wiki/Reference/Not_a_bug

So thx reporting, but will archive for now.

Sure thing, no problem, after you mentioned I imagined this would be expected behavior.

Thanks for looking into this!