-
-
Notifications
You must be signed in to change notification settings - Fork 21.3k
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
Add csg boolean operators using elalish/manifold. #91748
Conversation
947cacb
to
a1461a5
Compare
8a1143a
to
f3e4f0c
Compare
"src/manifold/src/subdivision.cpp", | ||
"src/manifold/src/csg_tree.cpp", | ||
"src/cross_section/src/cross_section.cpp", | ||
"src/third_party/quickhull/QuickHull.cpp", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is good practice for me, since I haven't seen a large project integrate our library this way before. I would like to make it easier if possible, and more modular. I take it you don't want to integrate us as a submodule?
If you're not interested in 2D tools or convex hulls, it should be possible to drop those dependencies, but we could probably structure our library better for doing this. @pca006132 do you know any way to allow e.g. building Manifold without quickhull, so that the Manifold::ConvexHull
methods are just stubs?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some kind of #if
will work, change them to throwing exceptions when user don't want to compile quickhull.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a general rule, Godot Engine vendors its entire dependencies because it makes development much easier for contributors and for CI/CD. I am interested in the other libraries, but it would be best if I can find ways to shrink the binary size.
Although, if your quickhull is good, @lawnjelly has been in that area and could evaluate the quality if it's useful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would love to hear your evaluation - in fact we have a GSoC contributor who just started and is looking into improving our hulling - either using a different dependency or writing a new one. opencax/GSoC#89
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be honest my best experience is with https://github.com/SarahWeiii/CoACD for convex hulling.
Manifold should already be set up to work just fine without exceptions if you don't compile with them - is it giving you any trouble? |
Probably not, I forgot to only throw exceptions for vector out of range when user enable compiling with exceptions. And tbb uses exceptions iirc. The first case is easy to fix, the second case is probably not. |
0b7d9e5
to
80f72e6
Compare
a0173a0
to
142bf4e
Compare
Support a material, add an icon, add simple documentation. Co-Authored-By: 31 <[email protected]>
9230b29
to
68abed4
Compare
Manifold supports tracking materials associated with a run of triangles. This commit changes Godot's Manifold pack and unpack logic to use that functionality rather than storing the material id in each vertex.
This reverts commit 58516f7.
Filed/fixed #93240, and the description has some screenshots of a situation that Manifold handles way better than the existing meshing/CSG, even when there's an abnormality due to Snap being too high. The scene is also quite expensive but very simple because it relies on a generated mesh rather than assets--could be useful to look at performance. (I'm very impressed with the perf, but I was looking at 4.2.2 vs. a dev build and didn't use a stopwatch, so not apples to apples.) |
Superseded by: #94321. |
Fixes: godotengine/godot-proposals#9711
Screen_Recording_2024-05-07_at_4.42.45_PM.mp4