Community
Bifrost Forum
Welcome to the Bifrost Forum. This is the place for artists using Bifrost to ask and answer questions, browse popular topics, and share knowledge about creating effects procedurally using Bifrost. You can also visit the Bifrost Community on AREA to download an array of ready-to-use graphs, read Bifrost news and updates, and find the latest tutorials.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Volume modeling with Bifrost

8 REPLIES 8
SOLVED
Reply
Message 1 of 9
dsolomon90
3762 Views, 8 Replies

Volume modeling with Bifrost

Using Bifrost, I'm able to input geometry, convert it to a volume, and then convert it back to a mesh - effectively using it as a sort of "volume builder." What I'm having some trouble figuring out, is how to "subtract" or "intersect" from this volume before converting it back to a mesh. Something like a volume boolean. 

 

I would like to input 2 mesh geometries, convert them both to volumes. Then sample where the densities of the 2 volumes intersect, and set the density of those voxels to 0, to carve those parts out of the resulting volume.

 

I couldn't find anything in the example scenes that is doing something similar, and I'm having trouble wrapping my head around how to set it up on my own, so I figured I'd ask here to see if anyone can point me in the right direction.

 

Thanks!

 

Quick little test using the technique with a MASH ReproMesh:

bifrostVolume.gif

8 REPLIES 8
Message 2 of 9
PhilRadford
in reply to: dsolomon90

So you could create a mesh to volume node and then a volume to mesh node but add a volume shader to the chain and map a fractal to the density channel of the volume shader and animate the fractal (or whatever texture suits for extrusion or inversion ) which would give you a bool effect . Would that work for you?

Message 3 of 9
dsolomon90
in reply to: PhilRadford

Hi @PhilRadford ,

Thanks for the reply! That's an interesting method but not quite the artistic control I'm looking for here.

 

What I'm really looking to achieve is something similar to C4D's volume builder:

https://www.youtube.com/watch?v=xR2Uozqcd0M

 

or Houdini's VDB combine:

https://vimeo.com/169438726

 

See attached video, where I used a combination of Maya's boolean and Bifrost to demonstrate what I'm trying to do, except fully in Bifrost.

 

Message 4 of 9

I have attached a scene file and screenshot showing how to perform volume CSG operations in the graph. Basically it creates a channel of voxel positions in the first volume, samples the other volume's voxel_signed_distance at those positions, then iterates over the voxel_signed_distance values and performs a csg operation (min for union, max for intersection and max(v,-v2) for subtraction).

There's one caveat though since we're using adaptive volumes. The volume into which the result is stored may not be refined to full resolution where the resulting surface will be, so if you want the surface to be fully refined where the result will be you may need to adjust the bandwidth parameter on the mesh_to_volume nodes.

Cheers,

Michael

csg_in_graph.png



Michael Nielsen

Principal Engineer
Message 5 of 9
PhilRadford
in reply to: dsolomon90

As there are many ways to do the same thing , try this.

Try this. Animate your geo, combine your geo, keep history or combine and create alembic, re import alembic (up to you) drag that geo into the BG, mesh to level set, volume to mesh, output.

use the Volume to mesh detail to get the size and detail you require. Just 2 nodes.

Message 6 of 9
PhilRadford
in reply to: PhilRadford

If you want holes and cut outs animate a bool, again combine, keep history or alembic it up and do the same process. use smoothing on the volume to mesh and detail size.

Message 7 of 9

I forgot to attach json file. Here it is.

Cheers,

Michael



Michael Nielsen

Principal Engineer
Message 8 of 9

Exactly what I was looking for!

There are a number of things in there I wouldn't have figured out myself, but this makes perfect sense.

Thank you for clarifying what's happening in the graph - I'm slowly starting to understand how to work with different types of data in Bifrost now 🙂

Message 9 of 9

The example that you've given looks very neat and is something I've been trying to play around with. Would you mind sharing either a scene or a screenshot of your graph? Thank you!

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums