How to procedurally pair points with PolyBridge

   2549   3   0
User Avatar
Member
1 posts
Joined: Aug. 2019
Offline
Hey everyone,

I encounter often, when using the Polybridge node in a procedural network, that the pairing changes when the input geometry does. A lot of times, this leads to poor results and in more complex networks it sometimes messes up the mesh entirely.
One way of fixing this is to expose the pairing shift, but this would mean that I (or worse, another artists or designer using the network/HDA) has to adjust this value everytime something else is adjusted that causes the pairing to change.

In most of these situations, I am able to provide explicitly which points in the first primitive should map to which points in the second primitive with point numbers or custom attributes using wrangles/the Sort SOP or even changing the vertex order using the Add SOP. The problem is that I cannot find out how to provide this information to the Polybridge SOP. Is there a way to do this?

Or, does anyone know the internal algortithm responsible for the pairings? What data does it use?

A very simple example: I have two circle-shaped primitives with an equal amount of points and I use the Polybridge to connect them. When their size changes, the pairing changes with it from straight to diagonal edges (see attachments). I added an integer attribute (red) indicating the preferred pairing (as in: pair points with the same value). This example is rather simple and might be done with a few lines of VEX, but I keep encountering this situation in more complex scenarios where the PolyBridge is by far the most useful tool.

Preferred (straight and according to my attribute):
Image Not Found


When the size changes, it now needs to shift:


Thanks in advance!

Attachments:
Pairing_Diagonal.png (483.9 KB)

User Avatar
Member
2 posts
Joined: Nov. 2021
Offline
You can check the following procedure-
Select the edges or faces on one side of the gap you want to bridge.

In the Polygon tab, click Poly Bridge.

Select the edges or faces on the other side of the gap.

The node will often start with the wrong mybkexperience direction at one or both ends.
Edited by john7 - Dec. 23, 2021 09:39:54
User Avatar
Member
3 posts
Joined: Nov. 2016
Offline
To procedurally fix the pairing you have to look into "Explicit Pairing", which can be found in the PolyBridge node > Bridge tab > Explicit pairs (at the bottom).

There you can match points e.g. point 0 must always pair with point 48 (or you can add channel referencing logic in there)
User Avatar
Member
280 posts
Joined: Aug. 2018
Offline
Sorry to resurrect this old thread - but I have exactly the same problem with PolyBridge. I'm bridging between two surfaces - derived from the same circle. They have the same number of edge points which are radially in line with each other. The points that are opposite from each other, and need bridging, are considerably closer that neighbouring points on the same circle.

In other words - it couldn't be a simpler bridge.

Yet, as the number of points changes in the circles (together) sometimes the bridge is correct, sometimes the pairing shifts -1, sometimes +1.

All points are clean and fused, yet explicit parenting gives me a 'ambiguous pairing(s) of point xxx are ignored' error.

Any insights? Or is this thing just broken?
Edited by Mike_A - Dec. 5, 2024 15:46:41
  • Quick Links