OpenVDB remesh


(ambi) #244

Yes, you can, but the current OpenVDB remesh is faster and much more convenient to use than always building the nodes if you just need to remesh a random object.

(mrtzg) #245

How could i miss that. Thanks a bunch! That’ll save me lots of time.

(IPv6) #246

What about 2.79 users? // (with Python3.7 - latest betas use same python as 2.8)

(kabu) #247

Well, for Mac Os you could try an hackintosh, or maybe a vagrant machine

(atartanian) #248

@ambi Is there a way to get access to the linux version of the 2.8 animation nodes build? I’m working on a project where that would be super useful, but don’t have a windows machine to work off of atm. I’d be happy to run tests and report back! Very excited about the advanced functionality you mentioned, especially the booleans and offset operations. Thanks!

(ambi) #249

I put b2.80_vdb_animation_nodes-ubuntu on Gumroad.

Install various packages through Apt, like this: sudo apt install python3-numpy libopenvdb5.0 libboost-python1.65.1 libboost-numpy1.65.1

Then you need to install animation_nodes folder from the .zip into addons folder and into modules folder. There’s also burn_bools.blend just to test everything works right (press the play button)

I haven’t quite figured out how to package this properly, but I think you should be able to get it working. The version was built on Ubuntu 18.04.2 LTS.

Here’s the full ldd just in case:

Summary (0x00007ffc319f7000) => /usr/lib/x86_64-linux-gnu/ (0x00007f527f917000) => /usr/lib/x86_64-linux-gnu/ (0x00007f527f70c000) => /usr/local/lib/ (0x00007f527f4cf000) => /usr/lib/x86_64-linux-gnu/ (0x00007f527f048000) => /usr/local/lib/ (0x00007f527ee05000) => /usr/lib/x86_64-linux-gnu/ (0x00007f527ea7c000) => /lib/x86_64-linux-gnu/ (0x00007f527e6de000) => /lib/x86_64-linux-gnu/ (0x00007f527e4c6000) => /lib/x86_64-linux-gnu/ (0x00007f527e0d5000) => /lib/x86_64-linux-gnu/ (0x00007f527deb6000) => /lib/x86_64-linux-gnu/ (0x00007f527dcb2000) => /lib/x86_64-linux-gnu/ (0x00007f527da95000) => /opt/lib/blosc/lib/ (0x00007f527d7c9000) => /usr/local/lib/ (0x00007f527d55d000) => /usr/lib/x86_64-linux-gnu/ (0x00007f527d343000)
	/lib64/ (0x00007f52806aa000) => /lib/x86_64-linux-gnu/ (0x00007f527d133000)

(Metin Seven) #250

Right now I’m still using the regular OpenVDB Remesh version, because I only use it to remesh during modeling. Will you keep updating the regular version as well, or will I have to go for the Animation Nodes version in order to use the latest OpenVDB Remesh updates?


(ambi) #251

The functionality of the base addon should remain operational. Are the features you would like to see added to it? Because I think it’s pretty much feature complete for what it is right now. Update for 2.79 still remaining to make it on par with the 2.80 version.

(Metin Seven) #252

Hi @ambi,

I’m quite happy with the current version. If possible though, I would love to see some useful things that are present in Cinema 4D:

1: Alternative smoothing algorithms next to Gaussian: Mean, Median, Mean Curvature, Laplacian. Some of these filters retain details better while still smoothing irregularities.

2: Signed Distance Field filter types: Dilate / Erode, Close / Open. These are great to add or subtract volume to / from the result.

3: Filter Accuracy settings for Signed Distance Fields: First Bias, Second Bias, Third Bias, WENO 5, HJWENO 5. These can yield slightly better results in OpenVDB voxel translation.


(Metin Seven) #253

And one more thing. If that could be possible I’d do a dance of joy… :slightly_smiling_face:

Projecting vertex colors from the original mesh. :smiley::+1:

(Nomo) #254

This in combination with instant remesh is a godsend for computational design. Thanks!

(Mystical) #255

This add-on is amazing for my hard surface workflow and even for some more organic shapes. For several years my method of making high poly meshes with smooth bevels was taking my low poly into 3D Coat and converting it to a voxel then baking the voxel to my low poly mesh. It generates decent results but there would be at times some small errors around the voxels I’d have to cleanup, it also was pretty finicky at times if the topology around the curved areas was not perfect and would make unwanted hard edges. I also had to import a mesh usually into several pieces (that was meant to be one) because any parts that had no curved sections wouldn’t subdivide correctly since all curved meshed needed the subdivide for no hard edges on a curve. Then once converted I could finally combine the voxel as one if I wanted smooth bevels between two object pieces. I got pretty fast at the process but I don’t think the voxel room in 3D Coat was really designed to take low poly hard surface objects and use them as a high poly bake.

Long story short I decided a few weeks ago to dump my usual 3D Modeling application (Maya) and see what all Blender 2.8 had to offer. With it I kinda have gone on a pilgrimage looking for great add-ons for modeling purposes and just stumbled upon this add-on earlier today and it is exactly what I needed.

I’ve tried just about every trick in the book to make a high poly beveled mesh out of a low poly mesh (old subdivision with edge loops method, bevel modifier, and bevel shader) and hands down the OpenVDB remesh beats them all when it comes to speed, quality, and control. I love being able to have the mesh in the same project as my low poly in an easy click unlike when I used 3D Coat trying to convert the voxel back down into a 3D application was always a challenge since it wouldn’t decimate so cleanly at times.

I created this random object with a bunch of curves and merged two objects together (no boolean) as well to see if this add-on would be able to handle it and it worked out great once I learned the process (red is the baked low poly result):

There is one question I have @ambi is this the correct process to convert a low poly to high poly using the tool?

  1. With low poly model duplicate it (for backup purposes since this workflow is destructive)
  2. With the mesh intended to become high poly mark all hard edges with creases
  3. Using the Subdivision Surface modifier adjust it until any curved surfaces are smoothed (no hard edges appearing in them)
  4. Apply the OpenVDB add-on to the mesh adjusting the parameters

I noticed I can kinda skip step 3 but with some curved edges they will not smooth out when I use the add-on unless I get very aggressive with the smoothing but by then the mesh is beveled way too much. At least in Blender 2.8 the mesh will have some banding effect on any curved surfaces, subdividing it first seems to eliminate the issue though. Its not really an issue since the subdivide process doesn’t take too long but just wondering if subdividing is required or if the normals are smoothed the add-on should be able to eliminate any banding effect.

I don’t know if any more features are planned but already this is an amazing tool.

(Dheim) #256

Your image is a pretty damn good selling point for me. I think I’ll buy this and give it a shot thanks to your picture!

(Metin Seven) #257

You won’t regret it. The add-on has become an important part of my modeling workflow as well.

(ambi) #258

Sounds like you’re doing it right. The addon turns the mesh into voxels and then (optionally) smooths those voxels. If you have any surfaces with low polycount that are curved, and go beyond that voxel size, the individual polygons become visible, and thus you need to subsurf + crease the sharp. You should be able to reduce the banding effect by increasing the gaussian width. I purposefully rewrote it for OpenVDB because I was also having banding issues.

Nice to hear your enjoying the addon.

(Daniel Paul) #259

Dude! That’s so sick, works like a charm.
Did some tests, it’s almost the same performance c4d has with its new VDB toolkit,
for 10 bucks!?!?! The future is bright!!!
The Node system makes it extremely flexible, good choice!

This combined with AN / Everything Nodes and a new rewritten Particle and Fluid system :heart_eyes:

(voidcore) #260

I’m a graphics developer that are quite used to building stuff on Mac. Any chance that you will release your stuff as source so one can build it? If it can build on Linux it usually just as easy or easier to get working in Mac…

(ambi) #261

Sure, it’s up at my Github, but if you get it up running effortlessly, I will be amazed. Took many days for me.

(Nomo) #262

Now, is it possible to use OpenVDB for subtraction of volumes?

(ambi) #263

It’s in the VDB Combine node and “Cut” from the dropdown.