Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PolyStrips: Adjusting handles too much can mangle geometry #1447

Open
jlampel opened this issue Feb 20, 2025 · 0 comments
Open

PolyStrips: Adjusting handles too much can mangle geometry #1447

jlampel opened this issue Feb 20, 2025 · 0 comments
Labels
Milestone

Comments

@jlampel
Copy link
Member

jlampel commented Feb 20, 2025

I've noticed that in RF3 and also in RF4, the handles jump after adjusting them. Now that I can see the shape of the curve, it looks to be because the transform of the geometry and the transform of the curve do not quite line up.

This results in the ability to mangle strips by adjusting them too much.

Image

(Since the current behavior is similar to v3, this issue is not a priority for v4.0)

It makes sense, because the created geometry follows the original stroke, and then the handles do their best to fit that stroke after the fact, so the two will never match up exactly. A smooth curve with only two control points will pretty much never match an arbitrary stroke.

Image

To improve this, what if the curve that the handles use was generated the same way the geometry is placed? IE there is a point at every edge and face center. Then it would always match up 1:1.

Image

The challenge then would be how the handles work. How could we control all those points in an artist-friendly way?

First, there would always be control points with handles on the first and last quads, and on any intersections just like in RF3. Then, we could sample the curve at each point and draw a control point with no handles wherever there is a significant difference in the tangent angle as compared to the handles on the ends. Then, the transform of each point along the curve is interpolated between the visible control points.

It would look something like this:

Image

That way, not only would we have much more control over the strip, adjusting it should be completely stable and reversible.

@jlampel jlampel added low priority tool: polystrips v4 Applies to RF version 4x labels Feb 20, 2025
@jlampel jlampel added this to the v4.1 milestone Feb 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant