6

I would like to create a procedural volume, and use it with the new Volume to Mesh Modifier in Blender 2.91.

All the examples I found use the Mesh to Volume, or the import a VDB, or some smoke simulation. I would like to use the procedural nodes to generate a procedural volume, and convert that volume to a Mesh using new Volume to Mesh Modifier.

Is it possible to do that?

  • What do you mean by "procedural nodes" here? – lemon Nov 09 '20 at 11:43
  • I'm talking about the Shader Editor nodes with Volume output. Now It's possible to define the Density in a procedural way, that value could be used in a Empty Volume to define a new Grid. In a Empty Volume it's possible to load a VDB file, that VDB files have several Grids with diferent names. A Grid is just a 3d grid of values or vectors. This values could be generated with the same Shader Editor nodes without the need to load a VDB files. – Paulo Falcao Nov 09 '20 at 12:21
  • Another option would be to "bake" the Density values into a VDB file. – Paulo Falcao Nov 09 '20 at 12:22
  • I'd be surprised that shader nodes can allow to do that (either baking) because this is shading, not generating geometry. But all this is new, and you maybe right. – lemon Nov 09 '20 at 12:26
  • I don't think it's possible now to "bake" the Density values into a VDB file, But I see no reason why this is not possible ...Maybe I should start creating plugins for Blender or contribute with code :P – Paulo Falcao Nov 09 '20 at 12:40
  • Shaders generate values, with some values as inputs, that's it. A volume it's just a 3d field of values. A volume it's not geometry. But geometry can be created from a volume, using the Volume to Mesh Modifier. – Paulo Falcao Nov 09 '20 at 12:47
  • For surface shaders the equivalent functionality would be to bake to an image so, yes, a 'bake to VDB' would be one way to go here.... however, that functionality does not exist at present. It would probably be worthwhile suggesting such a feature to the developers, if it isn't on some 'todo' list already. – Rich Sedman Nov 09 '20 at 13:52

1 Answers1

6

Yes this is possible by:

  1. use geometry nodes to sample a 3D texture and create a voxel mesh output
  2. convert the mesh to a volume
  3. convert the volume back to a mesh
  4. smooth the result

I suspect this can be done quicker using the volume displacement modifier but I couldn't get good results.

Update 1

Here is a my blend file (running in 3.0.0 alpha) that demonstrates using geometry nodes to build a procedurally generated volume using a 3D Stucci texture.

Sample output:

enter image description here

Update 2

Here is an updated file for 3.1.0 Alpha.

Sample output:

enter image description here

Update 3

Here is an example of the same process to render the Mandelbulb for 3.2.0 Alpha. Credit to Jonas Dichelle for the Mandelbulb logic for Blender shaders (https://www.youtube.com/watch?v=WSQFt1Nruns).

Sample output:

enter image description here

Richard Dorman
  • 161
  • 1
  • 4
  • Hello. I'm trying to achieve the same thing as OP, but your instructions aren't very clear. Can you elaborate on these steps and show them with images as well? – Geri Aug 25 '21 at 16:10
  • 1
    @Geri Attached a sample .blend file in my post. – Richard Dorman Aug 26 '21 at 21:44
  • Thanks. Unfortunately this isn't quite what I was looking for. I wanted to convert a procedural volume material to a mesh. Do you think it's possible to somehow make this work with cycles material nodes for a volumetric material? – Geri Aug 27 '21 at 09:18
  • Thank you! Your .blend is a very helpful reference. However (due to no fault of your own), many of the nodes used are now defined as "legacy nodes" that will not work with Blender 4.0 and beyond. Would you be able to also post a .blend that achieves this effect using the newer supported equivalent nodes? – Mentalist Feb 14 '22 at 02:25
  • 1
    @Mentalist I've updated the blend file to 3.1.0a. The new nodes make the solution a lot cleaner. – Richard Dorman Feb 18 '22 at 21:04
  • I somehow missed your comment at the time you posted it, but revisiting this today it was a pleasant surprise to see that you've updated it. Thank you! This will be fun to play with. – Mentalist Mar 07 '22 at 04:26
  • Hi again - I'm trying a little experiment with your procedural volume to mesh setup. I want to make a Mandelbulb fractal out of it. I have followed a tutorial for a Mandelbulb volume shader material (up to this point) except I've constructed all the math in Geometry Nodes instead of material nodes. I've got the iterative process affecting the cube geometry, but what I need instead is for it to affect 3d procedural texture space. Here's my .blend. If you feel like taking a look, and have any advice, plz share. – Mentalist Mar 07 '22 at 18:54
  • @Mentalist I've added a sample file that uses the same process to render a mesh Mandelbulb in geometry nodes. The result is quite blobby but works nonetheless. – Richard Dorman Mar 12 '22 at 14:55
  • Wow, very impressive! It's exactly what I was envisioning. Thank you so much for sharing this! – Mentalist Mar 14 '22 at 04:29