Jump to content

Problem with Boolean in Houdini

Recommended Posts

Hi guys,

I'm trying to get some clean boolean shatter, but i fail to get the result i want.

Basicaly what i want is :

- i have obj A to shatter which is full Quad.

- i have obj B which is my shatter plane also full Quad.

- i want to shatter obj A with obj B with a quad output and without modification of my input mesh

For the moment the only node i find to achieve some boolean in houdini is the cookie node but it doesn't give me what i expect i fall in the 2 following situation :

- my mesh is triangulated in a non predictable way by houdini

- my mesh is not triangulated but i have holes and degenerated face

i have done a test scene to show you the problem.

So i would like to know if you guys have any idea to solve this:

- is there a better way to use the cookie node

- is there an other way than the cookie node to do clean booleans

- does i need to write all by myself to get the result i want ? (i'm a total houdini noob so hope there is an alternative ...) :)

Here is an image of the result i'm trying to achieve


Thanks for your lights Guys !



Edited by sebkaine
Link to comment
Share on other sites

Good question! I've pretty much always had this problem with the Cookie SOP; it's very hard to use it effectively if you're trying to preserve topology.

The problem is that your Mountain SOP is introducing non-planar quads, which the Cookie SOP is just really bad at handling - hence the Pre-Convex option, which triangulates those quads.

I don't really have a solution here. It's frustrating that the SOP triangulates all the offending quads, rather than merely those that intersect - especially in situations when the last thing you want is to introduce extraneous edges.

Edited by Darric
Link to comment
Share on other sites

Incidentally, the only improvement I can offer you is to implement your own pre-divide that's localized to the intersection region. It's far from perfect, but I've done this in the past with a AttribTransfer with some success.


Edited by Darric
Link to comment
Share on other sites

Hi Neilan,

Thanks for your help man, your tricks looks to be really cooler than what i get at the moment ! So it's still an improvement. :)

I also ask some help at works, and they confirm me that the cookie node wasn't perfect, and that to get some clean topologies "a la RayFire", you need to basically write your own C++ operator. As i won't be able to do that before 1 or 2 centuries i will go with your methods ...

Would it be possible that you post the modified .hip file you create to study excatly how you achieve that ?

Thanks again for your help !



Link to comment
Share on other sites

Thanks again for sharing your knowledge Neilan !

Your tricks is good enough for me ! i was not expecting perfect full quad at the junction ( don't know if it's even possible ???) !

I have tris only where they are needed that's cool ! now i must try to apply some voronoi loop on this to check if topology is clean enough ...



Link to comment
Share on other sites

I spent a little bit of time thinking about this yesterday. Ideally one wants to delete all those newly created edges after the Cookie node. It's a pity Houdini has no means of creating Edge groups/attributes, then it'd be easy.

It might be worth investigating a means to "retopologize" geometry that's been triangulated. It's a pretty tricky problem to get right in the general case though. Hmmm ...

Link to comment
Share on other sites

well i try to put a voronoi loop on a mesh cut by 3 boolean op with your tricks , and unfortunatly it fail or give unpredictable result. My temporary conclusion as a big houdini noob would be that if you want to cut very complex mesh that will keep good topology at rendertime (especially with engine who don't like tris) this cookie node is not very good and trustable ...

But a houdini guru at work give me an excellent idea which i think can give very clean result.

- you use a shutter plane like in a classic boolean op

- but instead of using this plane to cut with the cookie node

- you use it as a volume exlusion tool to scatter lot of point from the 2 sides

- then you use this scatter tool in combination with the cluster Tool of the voronoi fracture sop

- so you will at the end get 2 meshes (2 clusters) and the cut will be very close to where you put your plane

- the more you scatter the more precision you get

- as the voronoi fracture give very clean mesh you then combine Boolean Loop operation + Voronoi Loop Operation

that give you the best of both world , control on your cut and speed and random of voronoi ...

on top of that the voronoi fracture generate clean UV so its really efficient !

Well hope it will give you some idea for your futur Shatter Task !



Link to comment
Share on other sites

well prman for ex, the main 2 reason would be :

1) prman subidivide the mesh in subd => subidvision of tris will give none predicatble topo at this step

2) the final dicing is in micropolygon which are square unlike in most engine that subdivide all in tris (like mental ray) => on prman 12.5 i have some issue with tris with displacement cause prman has difficulties to evaluate the correct normal in edge area, it creates some small black dots

well i haven't done render since 2 years now so maybe a prman TD would be more helpful on the subject !

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...