Object composition strategy for easy user object management

Hello - This is my first first post as an Addon developer. I’m writing an Addon to support importing high resolution plant models from Laubwerk (I’m an independent open source software developer unaffiliated with Laubwerk). I have a working prototype and now that I’ve got the basics working and have some of the concepts down, I want to check in here on the best way to compose objects.

I create a low-res object as the parent of a high-res object. Low-res is visible in the viewport, high-res is rendered. As far as the user is concerned this is “one thing”. I have disabled “selectable” for the high-res model (for the case where they want to view it in the viewport) and the user interacts with the low-res object to translate, scale, or rotate. This all works well.

The challenge I currently have is deleting the parent leaves the child in the scene, where I would expect to be able to delete “the tree” which is presented to the user as the low-res object in the viewport.

Am I thinking about object composition the right way here, or is my brain still stuck up in SketchUp land and I need to adjust to think in Blender terms?

Is the Parent/Child mechanism the right approach for this kind of composing?

Should I be using a custom collection to contain the two objects instead? (still can’t delete with X in the 3D viewport).

For example, the viewport looks like the upper-left by default. It can be configured to show the high-res in the viewport as in the lower-left, but only the low-res is selectable. Either way, only the high-res is rendered as in the lower right. (apologies, new user limitation of one image :angel: )

If anyone is interested in the project itself, it is available on GitHub here:

2 Likes

That’s weird, isn’t it? :slight_smile:
Coming from Maya I also expect that when I delete the top parent all children should be deleted as well. (currently I use a script for that).

I think you should put your low-res/high-res hierarchy in a collection. That way the user could use the “Delete Hierarchy” in the Outliner context menu to delete the whole tree hierarchy. Also one could instance the collection to make duplicates of the tree, keeping the visibility and rendering setting for the objects.

1 Like

batFinger over on blender.stackexchange (https://blender.stackexchange.com/questions/163440/object-grouping-delete-children-with-parent) suggested I use Collections as you describe as well as Collection Instances to achieve the single-click-select-and-treat-it-as-one-thing behavior I want for my users. I’m experimenting with this now and it’s working out pretty well. I’m putting the “master” collection in a separate scene all under a “Plant Masters” collection (so I can switch scenes to manipulate the master objects) and then including one Collection Instances in the main scene, all collected under a parent “Plants” collection to make it easy to turn them all on or off. I think this is getting closer to the “Blender” way to get what I’m looking for.

1 Like

Now what I’m also finding during this experimentation as that I have grievously underestimated the performance capabilities of Eevee and Cycles to the point where I’m not sure the low res proxies are even necessary for Blender except when generating complete forests with all unique meshes. 15 objects and 2M faces and displaying them in the viewport shows no slowdown at all. Wow.

1 Like