-
Notifications
You must be signed in to change notification settings - Fork 233
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
Implement G2 continuity for some nodes #4847
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
portnov
force-pushed
the
curvature_tangency_modes
branch
2 times, most recently
from
January 4, 2023 08:16
88f1d9d
to
847e536
Compare
Use lazy evaluation to do not calculate the same things several times.
hide "absolute bulge" flag for now. Use it for G1 mode for compatibility.
portnov
force-pushed
the
curvature_tangency_modes
branch
from
August 31, 2024 07:08
6e9e02a
to
44e75d0
Compare
portnov
force-pushed
the
curvature_tangency_modes
branch
from
August 31, 2024 07:10
8e59099
to
5791887
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In scope:
Blend Curve node
C1 - Tangency mode. The curve itself is smooth, but the normal changes direction radically at the point of curve touching. This is because the curve changes the direction where it turns to, at these points.
C1 - BiArc mode. Blending curve is made of two circular arcs, and the curvature comb clearly shows us where these two arcs begin and end - there are two segments of constant curvature. At touching points curve's curvature changes suddenly.
C2 - Smooth Normals mode. C2 means continuous second derivative. Now normal does not change it's direction so suddenly as in "C1 - Tangency" mode. Nor does curvature value change suddenly. The curvature comb rim line is continuous. But you may notice that at touching points the rim line is not smooth, albeit continuous. Also, you can notice that C2 mode creates more "curvy" blending line, which goes farther from touching points, comparing to C1 modes. Informally speaking, C2 mode makes blending line preserve more inertia from the curves being blended.
C3 - Smooth Curvature mode. C3 means continuous third derivative. Now not only curvature comb rim line is continuous, it is smooth. But now blending curve goes even farther from touching points compared to C1 and C2 modes, as it preserves even more inertia.
G2 - Curvature mode. This means continuous curvature. Curvature comb rim line is continuous, but not smooth. In this sense, this mode is similar to "C2 - Smooth Normals" mode. But with G2 mode, the blending curve does not go so far from touching points as in C2 or C3 mode.
Blend Surfaces node
G1 - Tangency mode (this is the mode which is currently used):
G2 -Curvature mode:
Comparison of G1 and G2 modes (this is the same shape which is used on pictures above, just with dotted matcap):
Preflight checklist
Put an x letter in each brackets when you're done this item: