1
$\begingroup$

I am a computational chemist, looking to visualize an electron density in blender. The density is basically a 3D-array with a value assigned to each point. I managed to load the density to blender, with the values as attributes allowing me to use a "smaller than" comparison node for the selection of points in geonodes. So far to good.

These points I can convert to a volume and the volume to the mesh, resulting in an isosurface (everything in geonodes). The isosurface however change depending on the chosen parameters, because to volume to mesh node uses again an isovalue for the determination of the isosurface.

My question now refers to the parameters of the both the points to volume as well as the volume to mesh node. so the density, radius, voxel size and somewhat the threshold.

I would ideally need a node that converts the point cloud to an isosurface with the isovalue comparing the value from the attribute. Is there an easy way without me having to reimplement this?

The problem is basically that blender is reevaluating the density from the volume and the isosurfaces always come out a bit "lumpy". And if I visually "fix" this, I worry about the scientific accuracy of my picture.

Thanks!

Edit: So @Robin Betts, this is exactly what I needed and works like a charm. I couldn't be happier with the result. the result The isosurfaces are beautifully smooth and scientifically correct. Thanks a lot!

$\endgroup$
2
  • $\begingroup$ Would it be worth looking at converting your value-array straight into OpenVDB? See here, for example.. maybe you could share a data-set? $\endgroup$
    – Robin Betts
    Commented Aug 31, 2023 at 16:40
  • $\begingroup$ I think I might know the problem. I'd like to ask to please include some pictures of the mesh and the nodes. I think this is caused by the compare node; just using an add or subtract node would solve the problem. $\endgroup$
    – shmuel
    Commented Sep 1, 2023 at 2:11

1 Answer 1

3
$\begingroup$

So the comments in here helped a bunch. The answer by Robin Betts was perfectly applicable. I exported the volume as .vdb file using OpenVDB and could import it in blender. The result was a correct isosurface.

I applied this to my addon https://github.com/hweiske/blender-importASE, which now allows for the import of .cube files. Sorry for not answering earlier, I accepted the "question was closed" as closed and only left the edit in there.

$\endgroup$
1
  • 2
    $\begingroup$ Glad it worked for you! And great it's been incorporated in an add-on. You'll be able to to accept (tick) your self-answer after a while, and that will mark it as solved, at a glance, for other visitors. If you edit to add 'ASE' or a suitable search-term to the body or title of your post, folks will be able to find it more easily, if that's what you'd like. $\endgroup$
    – Robin Betts
    Commented Oct 11, 2023 at 11:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .