|On this page|
Polybevel inserts fillet polygons between edges and in corners, with great control over the shape of the fillet. This node can handle very complex inputs, and is smart about ignoring non-contributing edges.
This is not a boolean bevel. In a boolean-type bevel, the tool first cuts outs the parts of the surface adjacent to the selected corners, then fills in the empty space with new surfaces.
Instead, this is a pure poly modeling bevel. It works with the existing topology to create fillet polygons that match up with existing edges. It is designed mainly to construct the fillet within the space between the corner edge and the next row of polygons.
In this image, the yellow lines show the edges we want to bevel. The pink area shows how far we can take the bevel before the fillet starts to overlap existing polygons. This node will not cut back more than this first row of polygons.
(This node can actually extend the fillet surfaces past the first row of polygons, but this creates overlapping polygons that you must then clean up.)
After applying the bevel, the node highlights the edges the bevel can slide along (see sliding edges below).
If you create the PolyBevel node in the network editor, the default Group is blank, meaning bevel all edges/points. If you create the PolyBevel in the viewer, it sets Group to
Change the fillet size
Change the number of divisions in the fillet
Add or remove edges/points to bevel
It can be hard to tell which edges are beveled when the Distance is
If you clear the Group parameter, it actually means “bevel all edges/points”. If you want to start with no bevels and add them, set Group to
In the viewer, you can click the button in the operation toolbar to remove all bevels (this sets Group to
Add or remove an entire edge loop to bevel
Select the edges/points without interactively cooking
To switch the node between beveling points and edges without having to open the parameter editor, click the Reselect button and change the selection type, then select points or edges.
Flip the direction of a non-symmetrical ramp or curve profile
When Shape is “Round” and Profile is “Ramp” or “Curve”, you can turn off Symmetrize so the ramp/curve profile stretches from one side to the other, instead of mirroring at the middle.
With this setup, sometimes the non-symmetrical profile will be going the “wrong” direction along a set of edges, and you want to flip it.
To maintain the existing topology, the fillet surfaces can “slide” along ring edges (edges within the 1 polygon ring touching the beveled edges).
“Ring edges” are highlighted in blue.
Edges the fillet can currently slide on are solid blue.
Edges the fillet is not sliding on are dotted blue.
(In very regular surfaces, fillet points may coincidentally appear to slide along odtted edges. In this case the node has chosen that direction independently, it just happens to coincide with a dotted edge.)
You can click a dotted edge to turn it solid (tell the node to slide along it). This adds the edge to the Always slide on list parameter.
You can also click a solid edge to turn it dotted.
The node chooses which ring edges to slide on when Slide on Ring Edges is “Auto”. You can change this to “Always” to slide along all ring edges. Or if you want total manual control, change it to “Never”, then manually turn dotted edges solid as needed.
Tips and notes
This node can also “bevel” polylines, inserting extra edges to change the shape of the curve at selected corners.
If you selected surface points, the node only creates corner meshes at those points. It does not bevel edges.
The Corner faces and Edge faces parameters let you put different types of polygons created by this tool into groups. You can enter the same group name in both parameters to pull all polygons into the same group.
Rounded corner meshes can overlap freely if you make the distance large enough. There are no “collision” controls to prevent overlapping corners.
First (Polygons to bevel)
The input geometry. You can select edges on this geometry to bevel, or just bevel all edges.
Second (Cross section curve)
When Profile is set to “Curve”, use a curve from this input as a custom cross-section for the fillets.
The edges to bevel. Unshared edges, edges shared by three or more polygons, or edges shared by two polygons with inconsistent orientation are excluded.
Specifies the component type specified in the Group parameter. The default is “Guess from Group”.
Ignore Flat Edges (coplanar incident polygons)
Don’t try to bevel edges in flat areas (edges where the angle between the faces is less than Flatness angle).
Maximum Normal Angle
When Ignore Flat Edges is on, treat adjacent surfaces with a smaller angle than this (in degrees) to be “flat”.
The size of the bevel, in Houdini units, from the cut-back to the original corner.
You can scale the distance by an attribute. Change the pop-up menu from “No scaling” to “Scale by Attribute”, then set the name of the point attribute in Point offset scale. The default is
To scale the distance by a point attribute, change the pop-up menu from “No Scaling” to “Scale by Attribute”, and enter the name of a point attribute to scale by. The default is
Slide on Ring Edges
Controls what edges the fillets can slide along (see sliding edges above) by default.
The node chooses which edges to slide on. You can click to switch non-sliding (dotted) edges to sliding (solid) edges.
Always slide along all ring edges.
Don’t slide along any ring edges. If the selected edges don’t give enough freedom, this may not allow a fillet surface at all. You can start from this and manually click to switch non-sliding (dotted) edges to sliding (solid) edges.
Beveling uneven edges requires a certain amount of asymmetry to keep fillet edges parallel. This controls how big differences in distance you can tolerate to maintain parallel edges, from
0 (no tolerance) to
1 (unlimited tolerance). A value of
0.5 means you will tolerate one fillet being up to twice as wide as another. If the node cannot maintain parallel edges different asymmetrical fillet sizes, it will start moving edges instead, changing the shape of the surface.
In the image below, the part of the fillet on the wedge “front” is longer than the fillets on the sides, to maintain parallel edges.
Always slide on
A list of ring edges the fillet can always slide on, even when Slide on ring edges is “Never”. Clicking a dotted edge adds it to this list.
When two adjacent points in the offset front collide, stop the points there (don’t move the points past each other, creating overlap).
Restrict Sliding to Ring Edges
Stop sliding a point on a ring edge when it reaches the end of the edge. When this is off, the fillet will continue past the end of the edge, creating overlapping polygons.
Stop Offsetting Loops
If you set this to a value other than “Never”, it will stop insetting a loop or all loops when one of the conditions below (When a point reaches end of its slide, When the offset front pinches, When the offset front collides with itself) occurs.
When this is “Individually”, only the loop where the collision occurred will stop growing. Other loops can continue to slide. For example, in the image above, the inset loop on top would stop, but the loop on the sides could continue down the remaining space along the edges.
When this is “Simultaneously”, as soon as one loop stops, all loops stop. This preserves balance between the fillet sides.
When Stop offsetting loops is “Individually” or “Simultaneously”, the following parameters specify the conditions when a loop will stop.
When a Point Reaches End of its Slide
Stop the loop when a point reaches the end of the edge it’s sliding on. This is the same condition as Restrict sliding to ring edges, but where that options stops an individual point from running of an edge, this option stops the loop.
When the Offset Front Pinches
Stop the loop when an acute angle in the offset front closes down to less than a certain number of degrees.
The maximum allow angle in acute corners within the offset front, if When the offset front pinches is on.
When the Offset Front Collides With Itself
Stop the loop when part of the offset front touches itself.
Controls how the node builds the fillet surfaces between the bevelled edges.
Cut the surfaces back but don’t generate fillet surfaces between them.
Create a fillet the follows the lines of the adjacent surfaces. This can be useful to sharpen viewport shading along the beveled edges.
(If Divisions is even, the fillet will be chamfered, since the node will have no middle division to use for the corner.)
Like “Solid”, but creates corner meshes. This is useful for sharpening edges on subdivided surfaces.
Create a flat fillet across the adjacent surfaces.
Create a rounded fillet between the adjacent surfaces. Make sure to increase the number of divisions to see the rounding.
Number of rows in the fillet surfaces.
Controls roundness and outward/inward bulging of the fillet surfaces.
1 is a circular outward (convex) bulge.
0 is flat (no bulge),
-1 is a circular inward (concave) bulge.
When Shape is “Round”, whether to apply a custom cross-section shape to the fillet.
Do not use a custom cross-section.
Create a custom cross-section using a Ramp parameter.
Use a curve connected to this node’s second input as a custom cross-section.
The node will automatically flatten the curve to its closest plane. It then fits the start and end of the curve to the start and end of the profile, scaling the rest of the curve to match. The Symmetrize, Scale, and Convexity controls affect the curve profile just like they do round and ramp profiles.
Note that non-symmetrized curve profiles are extremely hard for the node to merge at three-way corners. The node will do its best, but often there is simply no room to merge the profiles together without self-intersection/overlap.
Scales the distance of the inward and outward movements corresponding to the profile ramp.
Flips the ramp values vertically, inverting the profile shape (so values above 0.5 move inward, and values below 0.5 move outward).
The node interprets the ramp as defining the profile from one edge to the center. The same ramp is then flipped horizontally to define the profile from the center to the other edge. When this is off, the ramp defines the profile from one edge to the other.
Controls the shape of the fillet surface when Shape is “Ramp”. A value of
0.5 corresponds to where a flat (chamfered) fillet would be.
A list of edges to flip the default profile direction on. You can click an arrow handle on an edge with a non-symmetrized profile to flip the profile on that edge/loop. Doing so adds the edge to this parameter.
Point Fillet Group
Create a primitive group in the output containing the faces in corner meshes.
Edge Fillet Group
Create a primitive group in the output containing the faces in the edge fillets.
Create an edge group in the output containing the edges at the boundaries of the fillets.