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: 

source_air / fuel data

6 REPLIES 6
SOLVED
Reply
Message 1 of 7
calibrix
664 Views, 6 Replies

source_air / fuel data

What data does source_air / fuel actually output? It appears that it's an array, but when I use the "get_from_array" node and add a watch point the only information I get is "geo". Which is pretty useless. It doesn't display anything in the maya viewport either. I ask because I'm trying to implement move interesting ways of creating aero sources as the built-in compounds lack many features that I tend to use when creating fluid sources. I've opened up the compound, but it just seems like it's using set property nodes. At least I can't see if or where it's voxelizing any data to feed to the aero simulation.

Labels (1)
6 REPLIES 6
Message 2 of 7
michael_nielsen
in reply to: calibrix

Hello,

As you observed, the source_air node outputs an array of sources where each source is merely a set of properties and a wrapped mesh. Instead of the watch point, try to use the dump_object node on a source. It will output a human readable representation on disk.

All handling of the sources is done inside the simulation compounds, e.g. simulate_aero. For example, if you dive inside simulate_aero you will see a compound named process_aero_sources inside which meshes are voxelized etc.

And if you dive inside simulate_aero->solve_aero->solve_aero->solve_aero_substep there's an emit node which uses the sources.

Please don't hesitate to let us know what you're trying to achieve. Perhaps there's a way to do it already or we could use your feedback to improve the solvers.

Cheers,

Michael



Michael Nielsen

Principal Engineer
Message 3 of 7
calibrix
in reply to: michael_nielsen

Is the "wrapped mesh" object different from polygon geometry? I can see that that dump file is just a list of properties. It doesn't contain any per-point data. It looks like the source in the simulate aero, at it's core is basically a mesh to volume node. I think what I'm confused about is the data name and valid types that the simulator is looking for. For example: if I were to use a mesh; I can vary the emission data using a "vary_source_property" compound. To vary voxel_density. I name"voxel_density" as the property I wish to vary. However, that's not the real property that gets set by the node. What actually happens, is the node sets "point_fog_density_emission_rate". This isn't very obvious to the user. As if I wanted to use a different method to vary my voxel_density, I'd need to know that information. The source_air node also doesn't make it very clear now my points are voxelized. It seems point radius and voxel radius are linked. So if I want more voxel resolution my point radius shrinks. It does appear that volumes pass through nicely. So I can sculpt a volume and pass it through a source_air node. I guess, you could say the nodes are working as intended. It's just not always obvious what data the node will need and what exactly the node will do with that data.

Message 4 of 7
michael_nielsen
in reply to: calibrix

The wrapped mesh is just the input mesh to the source_air node, so nothing special there.

Yes, you can sculpt the volume as you like, then you have full control. 

Thanks for pointing out the difficulties with figuring out how the source works internally. I will pass that information on to our designer Kosta.

Cheers,

Michael



Michael Nielsen

Principal Engineer
Message 5 of 7
stamatk
in reply to: calibrix

Hey @calibrix 

 

Thanks again for your report.

 

I would really love more information about "I'm trying to implement move interesting ways of creating aero sources as the built-in compounds lack many features that I tend to use when creating fluid sources"

 

Right now the main workflows available for this are the "vary_source_property" (which as you pointed out may have some confusing name conversions, but this is not intended to be user facing) as well as the ability to input any constructed volume as aero sources.

 

Usually this can produce some very interesting sources when adding influences too.  I have attached a scene with an example.

 

The output of any volume construction can be input as an aero source. The noisy fog example I posted in https://forums.autodesk.com/t5/bifrost-forum/get-geo-property-node-appears-to-output-incorrect-voxel... can serve as an aero source. I have attached a scene here demonstrating that too.  

 

We're also working on a system of fields that will facilitate the breaking of homogeneous properties on sources.

 

As for the volume creation in the aero source, it is indeed just a nested convert_to_volume node.  This was done for convenience so that users didn't have to convert_to_volume before using a source_air.

 

When voxelizing points, of course increasing the resolution will bring you closer and closer to the true size of the point which will look like bigger points getting smaller. If the points are coming from particles, the radius is set in the particle source, if they come from a mesh, then we set a point radius relative to the voxel detail size.  You can always dilate or contract the point volumes using the offset.

 

Cheers!
Kosta



Konstantinos Stamatelos

Bifrost FX Product Owner and Designer

Message 6 of 7
calibrix
in reply to: stamatk

Hi Kosta,

 

Thank you for the scene, I will take a look at it.

 

In regards to sourcing properties on points. I have investigated the vary_source_property. What I've discovered in my career as a VFX artist is that using a random number to generate variance doesn't tend to lead to natural looking emission results and can make artistic control difficult. For example, random value is seeded by point count. If my point count changes then my random pattern changes. In addition if I pack a large number of points into a small space with fog values of 0-1. At a certain point they end up canceling each other out and we end up back with a non-random emission. I've found it much better to use a spatially controlled random value. So that world position of input points controls where variance happens. This way if an artist needs to add more points to define emission shapes they don't also have to change their variance values. I think this has been mentioned elsewhere, but having more noise functions would aid this greatly and I hope so see more in future releases of BiFrost.

 

I realize the values of the vray_source_property node weren't meant to be user facing, however, as stated before, if I wanted to vary my source properties using a different method than raw random numbers, the node appears to tell me that I just need to change the "fog_density" value on a point. Which as we've discussed is not actually what the node does and of course when fed into the source_air node will not vary voxel_fog_density values.

 

As I've continued to play with the convert_volume node. I've experienced it how you've described it. That points are considered to be a size of 0 and that as voxel size decreases the voxel data stamped into the volume also shrinks as now the volume can better represent that infinitely small point size. I would like to propose that the convert_volume might give more consistent results if it instead assume that points had a default size. In this way, changing voxel size doesn't have a large impact on the stamping radius. Because as it currently stands the when voxel size changes the user also has to change the volume offset to compensate. Of course, this can be mitigated by feeding a point_size attribute, which the volume_convert appears to handle correctly. Perhaps the volume_convert node could include a radius control that would. What I'm trying to say is that from a user perspective it's easier to control values visually and if they are linked to world space it makes the process of setting values more consistent. If offset is based on voxels and the voxels of a variable size not directly related to world space it becomes cumbersome to manage the size of stamped points.

 

Thanks,

Chris

Message 7 of 7
stamatk
in reply to: calibrix

Hi Chris,

 

Thank you so much for taking the time to share all this information and experience with us. I definitely agree with everything you say about varying source properties, and as I mentioned, we're working on bringing forth a much better system for doing this.

 

As for the point to volume conversion, we'll take your feedback into consideration!

 

Thanks again,

Kosta



Konstantinos Stamatelos

Bifrost FX Product Owner and Designer

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

Post to forums  

Technology Administrators


Autodesk Design & Make Report