3D configurator. Hide/disable visibility for the portion of the object. ClippingPlanes? CSG?

Hello guys.

I am working on the 3D configurator where I need the following feature.

You can see here a screenshot where I assembled a bridge to the tower. Now, there are many options and dynamic systems in the app. You can assemble the playground in many ways, and there can be many connections.

I need to somehow remove/hide/clip the pathings between these components. Meaning that in the example on screenshot I would need to remove the portion in the red square (fence, tower columns). So basically, you can attach 4 objects around this tower, One object per tower side. In that case all 4 sides of fence would be hidden. There are cases where only a portion of the fence should be hidden (like 2 or 3 planks)

Now, I could go inside 3D software and somehow arrange my objects to enable control of hiding these meshes within the code. BUT, there are hundreds of possible objects, different arrangements and many ways to connect things. It seems like a huge pain to deal with that both within the 3D software and inside the code.

I am thinking about clipPlanes on material level, but that means that I could end up having many clipping planes in the scene (not sure if we have a limit on this). A lot of objects might share a material, but shouldn’t be clipped at the same time.

Basically the idea is that any connectable object might carry some type of clipping plane that will disable visibility of portions of the object on which they are being attached.

Are there some suggestions on what to do. Any better approaches than clipping planes? CSG?

Thank you.

PS: Really excited about v7.0. Amazing devs and community <3

We can go up to 8 clipplanes if that helps

Could you do something stupid like turn on backface culling and flip the normals on any facets that you don’t want to draw? Maybe you could create an invisible bounding box at the ends of the adjoining section and when you add it to the tower, test for any facets that lie entirely inside the bounding box and flip their normals?

Honestly I don’t think you’re going to be able to achieve the results you want with clipping, occlusion, CSG or backface culling.

With a project like this, I’d be tempted to break components into smaller sub-assemblies that can be loaded and toggled on/off independently. This is probably more in line with how these modular playgrounds would be specified and constructed in reality as well (i.e. they don’t purchase a complete assembly then remove/discard parts of it as that’s wasteful and costly). This approach also lends itself better to cost estimation/calculation i.e. just tally up the cost of all visible objects then add delivery and installation charges etc.

I agree. When I have done this in the past, I have build configurability into the models. If a tower can be connected to a bridge then make each of the tower sides able to be hidden. You are going to need properties on the configuration that can be used to drive a BOM or quote anyway.

I thought it was an interesting academic exercise in any case.

I agree with @inteja

The best way to achieve what you want to do is to separate the top of your tower in 4 parts, each of them can be visible or not whether there is a bridge or not…