11
$\begingroup$

Now that we've got Volume to Mesh modifier - which is so cool - we can make meshes from the simulations, like Open VDB sequences, etc. But it seems that it doesn't work with procedurally generated volumetric data in any way. I mean those cases when we define the density with Noise Texture or Musgrave Texture or any other. Am I doing something wrong or it is just not possible for now to convert this data into the mesh? Is there any way to tell Blender that this is what I want to be considered as density? I was even thinking about possibility to bake this data into some kind of cache like Blender Point Cloud or Open VDB, but it doesn't seem possible.

$\endgroup$
5
  • 4
    $\begingroup$ I'll upvote because I'm curious about it too, and have found it hard to find good documentation. $\endgroup$ Jun 18, 2021 at 19:48
  • 1
    $\begingroup$ The baking thing is probably your best shot. $\endgroup$
    – TheLabCat
    Jun 18, 2021 at 21:07
  • 1
    $\begingroup$ Would love to know a way as well. For the purpose of getting volumes into Mist pass. $\endgroup$
    – Geri
    Aug 25, 2021 at 15:56
  • 1
    $\begingroup$ Probably dupli of blender.stackexchange.com/q/201378/2214 $\endgroup$
    – vklidu
    Apr 17 at 13:16
  • $\begingroup$ @vklidu yes, seems so. What should I do? $\endgroup$ Apr 18 at 10:24

2 Answers 2

3
$\begingroup$

Because your description is aiming to texture and not shader as stated in title ...

Procedural Texture to Mesh

Since Roel's is not reacting to the comment ... a few notes from me. His workflow is fine for me. Here is an example with Voronoi texture ...

  • add Cube for later use
  • add Volume object with Mesh to Volume modifier and set Object > Cube

enter image description here

  • add Volume Displace modifier and add some Texture you like (here type Voronoi)

enter image description here

  • switch to Geometry Nodes layout, add a New one and search for Volume to Mesh

enter image description here

enter image description here

... and because I don't know a way to convert Volume object into real Mesh object ... here is a way ...

  • Instead of using GN add a new Mesh object. Doesn't matter what, you need just a object "container" to store data here.
  • add Volume to Mesh modifier. Result is the same, but here you can Apply modifier to make geometry real.

enter image description here

enter image description here

You can here also stack other modifiers to enhance a result (that are not available for Volume object), like Decimator or Smooth

Shader to Mesh

If you would need to use a more complex node tree (not just a texture, but a shader) ... there is an add-on of Joshua Blömer called Shader to OpenVDB that could be probably used to generate volumetric (VDB) file to be imported back as source of Volume object and transferred into Mesh ... Win only and probably not up to date for 3.x version. I found only on Artstation link a way to mail him. You can try your luck to attract him.

Anyway, all these techniques are very topology dense (heavy calculation, hard to work with) ... it defence on your needs of course.

$\endgroup$
2
  • $\begingroup$ Thank you! Now I see what you mean and I see where was my fault. I didn't know about Volume Displace modifier which can use Textures, so by default I was talking about Procedural Textures from the Shader Editor. But as far as it is not clearly written in the question itself, I should consider your answer correct. Also the answer from the thread you've mentioned in the comment to my question solves my problem. The key is in using Geometry Nodes instead of the Shader Editor with some little tricks. Thank you very much! $\endgroup$ Apr 18 at 17:39
  • 1
    $\begingroup$ Great it is clear now :) Good luck with your project. $\endgroup$
    – vklidu
    Apr 18 at 17:43
2
$\begingroup$

You can use geometry nodes to generate a mesh out of your volume. You can download my example here: https://we.tl/t-HBvHuXwrpE

enter image description here

$\endgroup$
4
  • 1
    $\begingroup$ Thanks, but the answer seems to be not related to the question. The question was about converting the Noises generated in the Shader Editor into the Mesh, not about converting Volume objects into the Mesh. $\endgroup$ Jan 12 at 10:51
  • 1
    $\begingroup$ @AndreySokolov ... this answer is correct in a way to "convert procedural texture into a mesh". If you use more complex volumetric procedural shader you can try this free add-on Shader to OpenVDB (Win only) and than use GN Volume to Mesh. $\endgroup$
    – vklidu
    Apr 17 at 12:48
  • $\begingroup$ No, it is not, Volume Objects are not Procedural Textures. Volume Objects can be converted into mesh, Procedural Textures can not be. Thanks for the link to the add-on, unfortunately I could not make it work on Windows even after manually fixing installation issues. The author advises to reinstall Windows in this case, but for me this is not an option, besides I highly doubt it can fix the problem, because according to error log, it can not import dlls from the add-on files, not from Windows files. $\endgroup$ Apr 18 at 10:56
  • 1
    $\begingroup$ I tried it and it works, what can I say more :) I can share screen proving it ... But there is still possible misunderstanding of expected result. Do you have some mockup or example of desired result? BTW Have you tried it or you just do not believe :) If you tried it, where did it failed for you? About addon ... Try to contact author on GitHub. Script is not updated, I don't have such skills and I'm on a Mac. $\endgroup$
    – vklidu
    Apr 18 at 13:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.