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

Improve fuzzy skin with modifier #6759

Merged
merged 14 commits into from
Sep 22, 2024
Merged

Conversation

Noisyfox
Copy link
Collaborator

@Noisyfox Noisyfox commented Sep 14, 2024

Description

Now using fuzzy skin on modifiers no longer generate extra perimeters between regions.
Currently I only completed the code for classic wall mode. Arachne still work-in-progress.

Note: the algorithm can be slow with complicated models when using multiple modifiers (clipping and reconstructing polygons with lots of points can be computational intense), though it shouldn't slow down when using only one modifier compare to the original algorithm.

Fix #2647
Fix #5560

Screenshots/Recordings/Graphs

43d0b3f7816652ca49d68c9dd0336687
be0401d0b0ead3876077e29c97e668ed

@Noisyfox
Copy link
Collaborator Author

Noisyfox commented Sep 14, 2024

Currently there will be a seam when multiple modifiers with different fuzzy settings intersect:

image
image

Not sure how to fix this though.

@Noisyfox
Copy link
Collaborator Author

Noisyfox commented Sep 15, 2024

image
Somehow the modifier affects solid layers next to top/bottom layers. Weird...

Update: this issue is not caused by this PR though. This can be reproduced by adding a modifier with any option that does not affect the perimeters (such as the ironing option) on version 2.2.0beta as well.

Update 2: This issue should now be fixed with PR #6794

@Noisyfox Noisyfox marked this pull request as ready for review September 15, 2024 04:53
Copy link
Owner

@SoftFever SoftFever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Thanks

@SoftFever SoftFever merged commit 9d3d242 into SoftFever:main Sep 22, 2024
15 checks passed
@vgdh
Copy link
Contributor

vgdh commented Sep 27, 2024

Wow. This is really great!

@northcoastam
Copy link

Great addition, thank you.

@dewi-ny-je
Copy link
Contributor

It would be nice if the same was done for speed modifiers: if I set a modifier to change perimeter speed for a part of an object, the modifier adds a surface (with all that comes with it, so changes of travel, lines are broken, ...) on the interface.

See this: https://3dprinting.stackexchange.com/questions/23331/how-to-change-print-speed-along-a-perimeter

image

Maybe check what caused the issue you solved just for fuzzy skin and solve it at the root?

@Noisyfox
Copy link
Collaborator Author

Noisyfox commented Oct 4, 2024

It would be nice if the same was done for speed modifiers: if I set a modifier to change perimeter speed for a part of an object, the modifier adds a surface (with all that comes with it, so changes of travel, lines are broken, ...) on the interface.

See this: https://3dprinting.stackexchange.com/questions/23331/how-to-change-print-speed-along-a-perimeter

image

Maybe check what caused the issue you solved just for fuzzy skin and solve it at the root?

That won't be easy, but I'll look at this when possible.

@irowboat
Copy link

While I'm not manually assigning modifiers, color painting creates them and I have no control over it; and if someone were to use beam interlocking, things get crazy as seen here: #5185 (comment)

Care to try that test case against your build?

@andrewboktor
Copy link
Contributor

andrewboktor commented Feb 17, 2025

Currently there will be a seam when multiple modifiers with different fuzzy settings intersect:

image image

Not sure how to fix this though.

This seam actually shows up even with a single modifier. @Noisyfox I'd like to possibly fix this. Do you understand why this seam occurs?
It seems to occur always on the "right" side of the plate, regardless of model orientation of modifier position.
image
Looking at the right side of the model, it's hard to see but it's there. I actually first spotted it on an actual print then made this super simple repro.

image
Affects Arachne only (I hope that's a huge clue to help solve it). Here's the exact same model with Classic wall generator
image

@andrewboktor
Copy link
Contributor

I have narrowed down this seam to be caused by p.clipped being false for no good reason on a single point, causing the creation of a new segment and the seam is basically at the point in between the two segments.

@andrewboktor
Copy link
Contributor

Confirmed my theory with some modifications to the debug svg
image
So now we either need to rejoin these segments or prevent that "faulty" .clipped=false value!

@Noisyfox
Copy link
Collaborator Author

Currently there will be a seam when multiple modifiers with different fuzzy settings intersect:
image image
Not sure how to fix this though.

This seam actually shows up even with a single modifier. @Noisyfox I'd like to possibly fix this. Do you understand why this seam occurs? It seems to occur always on the "right" side of the plate, regardless of model orientation of modifier position. image Looking at the right side of the model, it's hard to see but it's there. I actually first spotted it on an actual print then made this super simple repro.

image Affects Arachne only (I hope that's a huge clue to help solve it). Here's the exact same model with Classic wall generator image

Could you open a new issue and also attach this test project? Thanks!

@andrewboktor
Copy link
Contributor

Ok so the .clipped=false value was a red herring.
The actual cause of this is the start/end of the segments. It seems that the values returned from split_line do start and end at some arbitrary location. It is to the right for Arachne and to the front for classic. And that's where the seam shows up.
Below screenshot shows the front from Classic and the seam is there.
Not sure about how to fix yet.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

FUZZY SKIN Fuzzy skin when blocked with modifier shows up as fuzzy line in model where edge of modifier is
7 participants