Why isn't this G1 even though it should be G3?

Hey Rhino surface modellers,

Could anyone explain to me why this breaks from G1 toward the middle, but according to the control points, it should be G3?

This is the shape I’m trying to make, except I tried using some deg 7 curves to try building manual G3 continuity rather than the G1 version on the left… but I can’t for the life of me figure out why this isn’t working since the cv’s up to 3 rows in are all aligned with the middle surface’s CV direction.

(and no, it’s not the mesh parameters, I’ve already tried messing with that)

GlobalEdgeContinuity gives this:

And it’s not plugin related since R7’s edge continuity also shows this:

File:
Cool object not working.3dm (338.8 KB)

1 Like

Hello- there no reason for there to be any particular continuity in that direction, your high degree is in the long direction. If you have G3, it would be at the top and bottom.

-Pascal

Hi Pascal, surely it would have some continuity since both outer srfs, in this case the right srf,


is deg. 7 in U and V directions?

That said, I was trying to make an example with a simpler set of surfaces but now my example has stumped me. Why isn’t the shared edge here showing up as tangent?

But the zebra map and cv layout shows tangency


Video to show what the shape looks like:

Shouldn’t this shape keep G1 continuity all along the edge? Not just at the ends

Probably if the points are all placed just the right way, but…not necessarily no, as is evident from your example. And that’s not about how any particular surface tool works, that’s the basic NURBS math.

Essentially, the wall you’re running up against here is due to some serious shortcomings with Rhino’s MatchSrf. They are numerous and have been well documented, and show no signs of being addressed. In this case, if you try to use MatchSrf to fix your continuity, it scrambles your verts to garbage. So when you try to do this:

It does this:

Popping this into V5 with VSR, you get this:

BTW - cool object indeed! I dig it.

2 Likes

Hi Vince - sure but being high degree is not in itself enough to have any particular continuity if you have not done anything to estabish continuity . That is, the control points still need to be in the right places. That appears to be so in the vertical direction - a BlendSrf perhpas - but I do not see where anything has been done ‘across’ to establish continiuty.

I would InsertKnot > Automatic on all three surfaces a few - the same number of times - in the across direction to give it more control aand then MatchSrf for curvature to the skinny strip (which is linear) :

I guess the main point is, there was nothing in the original file that indicted you’d done anything to make the side-by-side surfaces continous with one another.

-Pascal

Thanks for your response @pascal

Well I thought I did, since I figured that manually matching the first 3 columns of CVs along the linear middle srf’s CV polygon extension, would end up matching it as G3.

I didn’t use MatchSrf to create the outside srfs since the command wasn’t cooperating. Instead I used Sky’s method of EdgeSrf using ‘clean’ input crvs that already matched with the continuity I was looking for, and then SetXYZ and control polygon drag mode to align the cvs with the

@sgreenawalt would you be able to post the file with your VSR-matched surfaces? Since I was trying to manipulate CVs into what I thought VSR or Alias might create, and from your screenshot, I can’t tell the difference between my cv layout and VSR’s.

Why isn’t this G1 even though it should be G3?

Maybe I’m drunk but this topic title sounds weird…

Why is this G1 even though it should be G3?

Would make more sense, no?

It actually makes sense but is not obvious. The directions of the surface normals on either side of the edge are different which means it is G0, but the curvature is the same. Simple example - two circular arcs of the same radius with ends touching but with a kink where they touch.

So is it G1 or not?

It is G0, not G1 or G3. The lack of tangency continuity means it is not G1, only G0. However the curvature is the same on either side. I will revise my previous comment to make that clear.

1 Like

You figured correctly, but in order to get it to match across the edges you not only need to get the point alignment correct but also the point spacing.

In the enclosed file I made linear extensions of the degree one strip (the red and green surfaces).
The extensions are made to match the control point spacing on the curved end and then you can move the control points on the flat part of each 7X7 surface to match the control point spacing of the extension. When you adjust the spacing to line up with the first extension you will get G1 continuity.
Cool objectx.3dm (431.8 KB)

2 Likes

That would work for curves - the curvature would then be zero at the ends. But on the surfaces the curvature at the edges is not zero even though the control points are all lined up. The linear dierction of the skinny guy is along the isocurves, not horizontal except at top and bottom . Use the Curvature command to track the curvature circles at the edges - close but not the same and the farthest off where the surfaces are most out of tangent and curvature.

image

-Pascal

1 Like

Oh wow, that solution escaped me!

Thank you very much, that was very informative for how important CV spacing is.

Super clean! chefs kiss