Comments (5)
Yeah this is because we use 32 bit integers for indices, which will cause issues when meshes are large. I thought about converting these indices to 64 bit integers, but it is hard to push for that when no users really need that.
Maybe you can tell us more about your use case to see what we can do about it.
from manifold.
Thank your for responding to my query.
Generally in the field of work in 3D Printing/Additive Manufacturing, we often deal with merging large complex meshes (e.g. TPMS / lattice structures) and merging these with other geometries. These can have mesh sizes into the Gb in some extreme instances that cannot be solved through mesh decimation. Otherwise, we have to go to implicit signed distance fields which for mechanical engineering applications are unsatisfactory due to their smoothening effect, that do not match the original BRep in CAD.
If we can solve this, I am confident that it will have a very positive impact in the area of 3D printing community.
Thank you for your consideration,
Luke
from manifold.
Thanks! Would you mind sharing an image or maybe zoom video so we can see what kind of mesh you're talking about?
from manifold.
I got the same error when I do some crazy thing in OpenSCAD with manifold enabled.
$fn = 20;
translate([0, 0, 5000])
difference() {
translate([0, 0, -5000])
cylinder(h = 10, d = 512, center = true);
for (y = [0:1.6:400]) {
for (x = [0:0.8:400]) {
rotate([atan(y / 5000) * 180 / 3.1415926, atan(x / 5000) * 180 / 3.1415926, 0])
cylinder(h = 12200, d = 0.8, center = true);
rotate([atan(y / 5000) * 180 / 3.1415926, atan(-x / 5000) * 180 / 3.1415926, 0])
cylinder(h = 12200, d = 0.8, center = true);
rotate([atan(-y / 5000) * 180 / 3.1415926, atan(x / 5000) * 180 / 3.1415926, 0])
cylinder(h = 12200, d = 0.8, center = true);
rotate([atan(-y / 5000) * 180 / 3.1415926, atan(-x / 5000) * 180 / 3.1415926, 0])
cylinder(h = 12200, d = 0.8, center = true);
}
}
}
from manifold.
Oh, I see now - the sparse indices can be much larger than the actual number of verts, since these faces are big enough to totally defeat the BVH, so we're really getting an O(n^2)
pairs list, because it's not really sparse. So we probably don't need to update all our internal indices from 32 to 64 bit, but we do need to update the SparseIndices
specifically to 64 bit. That seems like a more reasonable change.
from manifold.
Related Issues (20)
- Warning comparison of integer expressions of different signedness
- Modularize Manifold HOT 25
- Build without exceptions HOT 3
- Remove Thrust HOT 19
- How to figure out required size of mem in the C-API? HOT 1
- Crash in Project() HOT 4
- gcc14 build failure HOT 7
- Triangulation issue: Zebra HOT 3
- BSD compiler error HOT 1
- Another Zebra Triangulation issue HOT 6
- Port for vcpkg HOT 2
- use size_t whenever possible
- Auto generated python stubs inconsistent with cpp API HOT 12
- Rust bindings HOT 22
- Build error with Emscripten 3.1.61 HOT 1
- Debug MSVC build error HOT 7
- NumTri returns uint32_t, while array uses size_t (like uint64_t or int64_t) HOT 3
- Warning as errors HOT 4
- operator""_z returns unsigned and is in the global scope
- Is there a guide to getting it run with Vite using SvelteKit HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manifold.