s 28.42

Axiom Solver

  • Axiom > Main > Solver
    • Mode
      • Traditional
        • Traditional follows the exact steps of used by most fluid solvers
      • Reflection
        • Reflection is good at conserving energy in the sim, swirling motion will last longer.
      • Reflection Single Step
        • Less accurate but faster version of reflection (Default)
        • Really no need to change from this
    • Division Size
      • Voxel div size, lower value means higher resolution
    • Voxels
      • Starting number of voxels. By default, if the solver reaches this limit it will increase the limit by 20% and keep going. If it can not allocate more memory, it will try to find a new device to run on.
        Under Setting > solver > Voxel Limit Behaviour you can set how it behaves if it reaches the limit.

Axiom will allocate the GPU memory it needs to be able to sim the voxels specified in the Main > Solvber > Voxels parameter. On the Main > Info tab you can see this info. It is faster and less artifact prone to allocate enough memory from the beginning.

  • Tip
    • You can bring up the performance monitor with Window key + G

Axiom source

Basic

  • Basic setup
    • Add axiom solver
    • Add axiom source shape
    • Connect the source shape to the second input of the solver

Lets add a pressure influence field

Sink

  • Sink

    • Create an axiom source node
    • Set the Main > Type : Sink
    • Transform the node into position
    • The sink will remove all density it comes into contact with
  • Camera frustum

    • Create an axiom source node
    • Set the Main > Type : Camera Frustum
    • Select the camera you want to use
    • All density that falls outide of the camera frustum (witjh some padding) will be removed

Influence

  • Pressure influence
    • Add axiom source shape
      • Change the Main > type to Influence
      • Set the Sourcing > Pressure to 5
        • We can also set it to 1 here and scale the pressure on the solver instead.
      • Move the influnece source up Transform > Translayt Y : 4
    • Merge fields
      • Merge the influence source with the density source (the one we created in the basic setup above)
    • Input to solver
      • Connect the merged sources to the second input of the axiom solver.
      • We can see that when the smoke hits the influence field it balloons out.
      • Note!
        • On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.

We can also add a temperature influnce to heat up or cool down the sim. If a negative temperature is used the smoke will loose bouancy and “fall down”

  • Velocity Influence
    • Add axiom source shape
      • Set Type
        • Main > Type to Influence
        • Main > Shape to Cylinder
      • Transform the source shape
        • Transform > Translate Y : 1
        • Transform > Uniform Scale : 2
      • Set the influence to a Spin force
        • Force > Type : Spin
        • Force > Magnitude : 3
    • Merge fields
      • Merge the influence source with the density source.
    • Input to solver
      • Connect the merged sources to the second input of the axiom solver.

We can animate the properties of the sources to effact the sim in various ways.

Custom source

  • Custom emitter (density & temperature)
    • Create a polygon sphere
    • VDB from Polygons
      • Fog VDB : density
    • Add temperature
      • Add a name sop
        • group : @name=density
        • name : temperature
    • Merge with density vdb
    • Feed into the first input of the axiom solver

Custom influence

Pressure

  • Custom influence pressure
    • Create a polygon sphere
      • Transform the sphere
        • Set the radius to 1 on all axis
          • This is just done in this example to mimic the size of the default axim source. You can obviously set it to whatever you want.
        • Move the sphere up Center Y : 2
    • Add influence field
      • VDB from Polygons
        • Fog VDB : influence
        • This field is used as a mask / activator of where to add influence
    • Add pressure field
      • To add a pressure influence we also need to add a specific influencePressure field.
      • Add a name SOP
        • Group : @name=influence
        • Name : influencePressure
    • Invert the pressure
      • Unlike the pressure influence we added with the axiom source we need to invert the custom influencePressure field.
      • Add a Volume Wrangle
        • f@influencePressure *= -1;
    • Merge fields
      • Merge the influence source with the density source.
    • Input to solver
      • Connect the merged sources to the first input of the axiom solver.
      • Note!
        • On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.

Velocity

  • Custom influence velocity
    • Create a mesh
      • Velocity attributes
        • If we have an animated geo we can use the Point Velocity SOP to generate v attrib.
        • Or we can use a wrangle to add a velocity (v) attribute to the points of the mesh.
        • We will use these point atribs to generate the velocity field.
    • Add influence field
      • VDB from Polygons
        • Fog VDB : influence
        • This field is used as a mask / activator of where to add influence
    • Add velocity field
      • Click the + in the multiparm called Surface Attributes in bottom of the VDB from Polygons node.
      • Click the dropdown in the right side of the Attribute parameter and select point.v
      • In the VDB Name parameter enter influenceVel
      • You can set the Vector Type to Displacement/Velocity/Acceleration (altough I do not think that is needed)
    • Merge fields
      • Merge the influence source with the density source.
    • Input to solver
      • Connect the merged sources to the first input of the axiom solver.
      • Note!
        • On the solver Sourcing > Influnence you will find multipliers of the incomming influence fields.

Collision

  • Custom collision
    • To add custom collision we can use the workflow above (to create influence velocity)
    • But instaead we use collision as the fog VDB name and collisionVel as the surface attribute (point.v)

Example

axiom_setup.hiplc
Setup example hip