-
Notifications
You must be signed in to change notification settings - Fork 18
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
Extrusion produces wrong indexing -> visual artifacts #356
Comments
hmm, could you test it with a previous version, maybe before #353 ? |
I also reproduce the same-ish issue before that PR |
It looks like it was working in |
It doesn't make any sense right. Also we hard pin the open-cascade build so nothing could have changed there. |
actually, we are wrongly pinning the |
Good catch! |
I managed to track it down into 2 issues:
It looks like these faces are related to the clipping panel, they are introduced in #333
it still has the face normal points to the inside, but I'm not sure if it's an issue or it's the behavior of OpenCascade, since if I extrude in the opposite direction (LengthFwd=-10), I get the face normal points to the outside. |
The clipping indeed relies on the normals, so if they are not correct, it results in visual artifacts.
Interesting! Should we... reverse the normal depending on the sign of |
What's weird though is that it seems to be coming from the 3D refactoring pass? You were not only changing the code structure right? You also fixed the normals for STL files #353, could this impact the extrusion? |
I don't think it's related to the 3D pass, here is the result at 234f9bf, it works correctly Here is the result one commit after, at 85c0dde |
Or just using double-sided material? |
I'll have a look. It seems the visibility toggle does not hide all the meshes created for a specific object (there are multiple ones to achieve the clipping). I'm not sure we can use the double-sided material without breaking clipping. Using double-sided material would only workaround the wrong normals but not fix it, and wrong normals would result in broken clipping. |
but we should not have the meshes at the top and bottom of the extruded shape ?
For the extrusion case, I'm not sure what is the definition of correct normals, it's like when you push for one direction you will get the outside of the circle, but with the opposite direction you will get the inside |
I'm not sure what you mean by that?
Always pointing outside? Arf this is annoying... Clipping is what makes it difficult here because it needs proper normals, without this I would agree using double-sided materials and call it a day. |
As discussed offline, this issue comes from the clipping logic. Clipping involves some logic to fill the gap left by the cut, this only makes sense for solid objects. However extrusion produces a non-solid object by default and that logic gets broken in that case, resulting in visual artifacts. We should disable that logic for non-solid objects. |
Similar to #335 but for extrusion result
The text was updated successfully, but these errors were encountered: