Matt Keeter
Matt Keeter
I started working on this in [this branch](https://github.com/mkeeter/ao/tree/smooth-rendering-again), figured some [really clever math](http://www.mattkeeter.com/blog/2017-11-22-eigen/) to automatically pull normals from details of the QEF, and then ran into the issue that the...
Sampling the surface normals from the distance field is already implemented – [`DerivArrayEvaluator::deriv`](https://github.com/libfive/libfive/blob/master/libfive/include/libfive/eval/eval_deriv_array.hpp#L51) will tell you the partial derivatives w.r.t x/y/z at any point, which is the same as the...
I've changed the docs to say that `workers = 0` is forbidden, since that was easier than changing lots of rendering code to have a special fallback. With that change,...
Yup, meshing is a **hard** problem. All of the algorithms implemented in `libfive` should be manifold and watertight, but have varying other properties. The DC implementation is definitely the most...
The DC implementation in `libfive` is actually manifold dual contouring 😃 It's not a full implementation, because I'm not merging cells that contain multiple vertices – that's theoretically possible, but...
From what I've done in the past, logarithmic dragging (your first idea) works pretty well. I'm limited by the Guile reader in terms of what syntax I can overload (this...
I think we'd still need the `#`, for internal reasons: script evaluation can be expensive, so when you drag a free variable, it doesn't re-evaluate the entire script, just starts...
Thanks, this seems like a good idea! The `deploy.sh` is necessary to pack up everything in an actual working macOS app; otherwise, it's looking for libraries that may or not...
Hi – I'm relatively overloaded right now, so no promises when I'll look at this! What's the purpose of changing the CMake version detection? On `master`, the new command (`git...
Like @smilberger said, dual contouring uses quads internally, so this isn't too weird – just lots of plumbing. Sprinkling `printf` statements into `dc_mesher.cpp` would definitely be a good way to...