Comments (3)
I think the issue might be that it relates to the dimensions at all -- I think typically a setting like resolution would refer to a certain amount of detail per unit, regardless of how many units large the document is. So it's more like each axis should get a certain number of subdivisions multiplied by its size.
from libfive.
This is a somewhat confusing side-effect of how we pick the max subdivision level in region.hpp
:
/*
* Returns a version of this region that has the level set
* based on the given minimum feature.
*
* This lets us do subdivision without worrying that the termination
* condition (of a cell side being < min_feature) is dependent on
* floating-point accuracy.
*/
Region<N> withResolution(double min_feature) const {
const auto min_dimension = (upper - lower).minCoeff();
const auto level = ceil(fmaxf(0.0f, logf(min_dimension / min_feature)) /
logf(2));
return Region<N>(lower, upper, perp, level);
}
The number of octree subdivisions is set by the lowest dimension, so I think that going from [10, 10] → [-1, 6] must be reducing it in your example.
Maybe it should be set by the largest dimension instead?
from libfive.
I agree that this should be per unit, and not dependent on the size of the bounding box. It also has a huge impact on exported STL size - settings that produce no artifacts with a smaller bounding box produce significantly larger files (multiple GiBs in my case), whereas a bounding cube produces no artifacts at default settings and order of magnitude smaller files.
from libfive.
Related Issues (20)
- Double free or corruption error when trying to use libfive HOT 3
- Expose normals in libfive_mesh HOT 2
- Does Mesh::render consume the libfive_tree? HOT 3
- Unioning nothing at the top level causes things to mesh very slow HOT 6
- koffi and ffi-napi both segfault when meshing non-trivial models HOT 6
- Publish new release and set soversion for building shared libraries
- I've packaged this for OpenSuse
- Crash in DCTree<3u>::intersection
- QSocketNotifier error message
- Need precompiled Windows binaries of any kind HOT 4
- missing 'g++' package in Ubuntu instructions HOT 1
- Symbol visibility
- C5H12 is either moved or deleted
- cmake fails because python's distutil is obsolete as of 3.12 - possible workaround included
- Make fails on heightmap.cpp.o with "integer value -1 outside valid range" HOT 1
- stack overflow of interval evaluation HOT 1
- Interval evaluation bug HOT 1
- Compiling error: Could not find a package configuration file provided by "Qt5OpenGL" - Help?
- Illegal Instruction when compiling libfive with MXE and using in Windows HOT 2
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 libfive.