Hello, I'm relatively new to Houdini (coming from Blender)
I'm trying to figure out a good high -> low poly modeling workflow for static meshes inside of Houdini utilizing the polybevel node where I can (hopefully) take my base mesh and plug it into a polybevel node to create my high-poly.
The main problem right now is that the offset of the polybevel uniformly offsets everything that it touches. So when I have meshes that cover a large area and meshes that are incredibly tiny, I end up with the small meshes clipping though themselves and the large ones not having a big enough bevel on the corners.
I noticed that the polybevel has a “scale by attribute” function where I believe it acts as a multiplier. So I was wondering if there was any way to create or use an attribute that's tied to my object's scale/size in a way that the offset can be reduced for smaller meshes but remain the same or be increased for larger meshes that have more surface area.
Thankyou!
Can you scale the offset of a bevel by an object's size?
2304 5 1-
- aaeriam
- Member
- 3 posts
- Joined: April 2020
- Offline
-
- tamte
- Member
- 9408 posts
- Joined: July 2007
- Offline
-
- aaeriam
- Member
- 3 posts
- Joined: April 2020
- Offline
Update - I've started using the Measure SOP and I created a volume and area attribute and tried using both to scale the polybevel offset; however, neither of them gave me the results I'm looking for. In the measure SOP I set it to “points” and I used the “per piece” and “per element” settings to see if one was a better option.
Both attributes change how the bevel is applied but using volume inverts the bevels and doesn't apply them to some edges and area over-bevels some small areas but doesn't bevel the large sharp edges at all or enough.
I uploaded a screenshot and a .hipnc file of it if anyone is interested in taking a look. Maybe adding those will help explain my problem a little bit better.
Just for re-iteration and clarity for the screenshot - I want to run all of this geo through a single polybevel node. Where there's a lot of surface area, I want large bevels but I don't want the smaller areas to break or completely clip through themselves.
Both attributes change how the bevel is applied but using volume inverts the bevels and doesn't apply them to some edges and area over-bevels some small areas but doesn't bevel the large sharp edges at all or enough.
I uploaded a screenshot and a .hipnc file of it if anyone is interested in taking a look. Maybe adding those will help explain my problem a little bit better.
Just for re-iteration and clarity for the screenshot - I want to run all of this geo through a single polybevel node. Where there's a lot of surface area, I want large bevels but I don't want the smaller areas to break or completely clip through themselves.
Edited by aaeriam - April 30, 2020 14:45:37
-
- tamte
- Member
- 9408 posts
- Joined: July 2007
- Offline
here is an example
you didn't create any piece attribute, simply any int or strig attribute, measure will then consider all elements of chosen type with the same attribute value to belong to the same piece
so all elements with the same piece attribute value will get the total area or volume of all those elements
further of course you can process the area or volume values as you please, for now just a simple math to compute the bevelmask attribute
NOTE: using area may be safer if you are not sure you will have watertight pieces with correct geometric normals, for any other geos volume will not be correct and can turn negative, not the case of your building so far, but can happen
you didn't create any piece attribute, simply any int or strig attribute, measure will then consider all elements of chosen type with the same attribute value to belong to the same piece
so all elements with the same piece attribute value will get the total area or volume of all those elements
further of course you can process the area or volume values as you please, for now just a simple math to compute the bevelmask attribute
NOTE: using area may be safer if you are not sure you will have watertight pieces with correct geometric normals, for any other geos volume will not be correct and can turn negative, not the case of your building so far, but can happen
Edited by tamte - April 30, 2020 19:54:08
Tomas Slancik
CG Supervisor
Framestore, NY
CG Supervisor
Framestore, NY
-
- aaeriam
- Member
- 3 posts
- Joined: April 2020
- Offline
Thank you for the response and the example! I'm still working on understanding the logic behind it all but I see how it works in the graph.
So the piece attribute (class) is what connects the elements (in this case, points) together. And then for the points that have the same (class) value, they are considered part of the same piece so that when you take either the sqrt or the cbrt of those values (based on if you're using area or volume), it will generate the bevel mask? I just want to make sure I'm understanding it correctly.
This is definitely heading in the direction I'm looking for. I think if I just figure out how to adjust the bevelmask values a little bit then I can get what I'm looking for. Thank you again for taking the time to put this together
So the piece attribute (class) is what connects the elements (in this case, points) together. And then for the points that have the same (class) value, they are considered part of the same piece so that when you take either the sqrt or the cbrt of those values (based on if you're using area or volume), it will generate the bevel mask? I just want to make sure I'm understanding it correctly.
This is definitely heading in the direction I'm looking for. I think if I just figure out how to adjust the bevelmask values a little bit then I can get what I'm looking for. Thank you again for taking the time to put this together
-
- tamte
- Member
- 9408 posts
- Joined: July 2007
- Offline
aaeriamexactly, so the area of each point/face will be accumulated area of the whole piece, so all points belonging to piece with total area of 5 will have the same value of 5
So the piece attribute (class) is what connects the elements (in this case, points) together. And then for the points that have the same (class) value, they are considered part of the same piece
aaeriamthat's just any math you want to insert there
when you take either the sqrt or the cbrt of those values (based on if you're using area or volume), it will generate the bevel mask?
you can directly use area attribute in the bevel
I just decided to create attribute named bevelmask, and create more meaningful values by using sqrt() or cbrt() by simply bringing the scale differences to linear from quadratic or cubic
you can on top of this fit the value range and tweak profile of how these values change from smalles to largest piece by using Attribute Remap SOP for example (or just more VEX in the same wrangle bevelmask is created)
if you decide you want to keep them cubic or square, and remap just those it's up to you
Edited by tamte - April 30, 2020 23:51:59
Tomas Slancik
CG Supervisor
Framestore, NY
CG Supervisor
Framestore, NY
-
- Quick Links

