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: 

long cloudy tunnel

4 REPLIES 4
SOLVED
Reply
Message 1 of 5
marcury
370 Views, 4 Replies

long cloudy tunnel

hi , i wonder if can duplicate instance a bifrost piece , i do a piece of the tunnel with balls converted to volume , tunnel is very long , i would like to duplicate this piece many times and only calculate the main piece , can do that with bifrost? if need do all tunnel a volume computer will explode........ i tried duplicate the graph but dont work , should reconnect everything and anyways would need to calculate each piece 

4 REPLIES 4
Message 2 of 5
marcury
in reply to: marcury

maybe should export a VDB of the piece and then could duplicate it easyly?

Message 3 of 5
syracoj
in reply to: marcury

You could try this:

 

Create a compound that does your volumetrics then publish that compound.

Then in a separate bifrostGraph, use scatter_points on an input cylinder (don't forget to lower the scatter amount to a smaller value (like 25) to start). Connect the scatter_points output to a create_instances node. Then bring in a compound_instance node and connect that to the create_instances.instance_geometries port. Connect the create_instances compound to the output node (or a terminal).

 

Add a light to your scene and render

 

NOTE: The compound_instnace node requires you load in the published compound you did in step 1. It also requires you input the "Compound URI" on the node as well. You can find this by viewing the compound you published in a text editor like Sublime or Notepad++. You are looking for a line that says:

 

"name": "User::Compounds::theNameOfYourCompound",

 

It will under all the listed uri dependencies in the text file:

 

...

...

...

{
"uri": "file:///delete_level_set.json"
},
{
"uri": "file:///if_compute_volume.json"
},
{
"uri": "file:///setup_resolution_fields.json"
},
{
"uri": "file:///mesh_to_volume.json"
},
{
"uri": "file:///object_terminal.json"
}
],
"namespaces": [],
"types": [],
"compounds": [
{
"name": "User::Compounds::theNameOfYourCompound", <- THIS BUT DON'T ADD THE QUOTES.
"uriImported": "stream:/stream",
"metadata": [

 

createVolumeCompound.pngpublishVolumeCompound.pngdoTheInstancingOfVolumeCompound.png

Message 4 of 5
syracoj
in reply to: marcury

another thing you could try is take your volume and use write_bifrost_object (or you could even try write_openVDB) and write out your .bob or .vdb file to disk, then you could try using read_bifrost_object (or try read_openVDB) with the loaded bob/vdb you wrote out and use that as the input for create_instances. 

 

I did a quick test and it seems to be working on my side.

 

The advantage of using the .vdb or .bob approach is it should respect any animation of the vdb/bob that was written out.

Message 5 of 5
marcury
in reply to: marcury

finally i write a vdb and then can arnold create volume and duplicate it many times and its fine 

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

Post to forums