Autodesk Maya 2016: Bifröst Procedural Effects Platform presentation by Daryl Obert

   



Bifröst Adaptivity

New adaptivity features have been integrated into the Bifröst liquid solver.

  • Spatial: A new Spatial adaptivity feature lets you maintain high resolutions in your liquid where the detail is needed, such as areas where the liquid is moving and along collision boundaries. At the same time, the solver reduces resolution where the liquid is static, such as in its interior regions.

    Enabling Spatial adaptivity reduces memory use and cache file size, while maintaining the realistic look of liquid simulations.

Bifröst liquid solver nonAdaptive vs Adaptive preview
 

 

Robot drop - NonAdaptive vs Adaptive
 

You can see on this example how much memory you save with Adaptive simulation

RobotDrop shot
 



Guide a Bifröst simulation of a liquid surface

New guided simulation workflows let you drive the behavior of liquids using a cached simulation or an animated mesh object. With a guided simulation, you can create and cache a full-depth low resolution liquid, and then use it to guide a high resolution simulation on the liquid's surface. Use guided simulation for such effects as carefully art directed hero waves. You can also perform multiple iterations at high resolution while retaining the basic look and motion of the underlying guiding simulation.

GuideWave - Bifrost simulation and Guide geometry
GuideWave render - MentalRay
   

Guide attributes compare

guideWave minDepth
guideWave guideVoxel Scale
   
guideWave liquid_Overlap
guideWave foam
   
guideWave shipScene
 

 


Bifröst adaptive camera for foam

You can add an adaptive camera to control foam emission in Bifröst liquid simulations. With Camera Adaptivity, you can emit foam particles based on the distance from a camera. This lets you create high resolution simulations close to the camera where the detail is needed, while lowering the number of foam particles in other areas of the scene.

foam Adaptive camera compare
 

Using Foam adaptive camera in shot

beachShot01 - render MentalRay
beachShot02 - render MentalRay

 


Bifröst Foam attributes

New foam particles let you add bubbles, froth, and spray to churning and fast moving liquids. Use Bifröst foam to add realism to breaking waves and other types of splash effects. With Camera Adaptivity, you can emit foam particles based on the distance from a camera. This lets you create high resolution simulations close to the camera where the detail is needed, while lowering the number of foam particles or eliminating them in other areas of the scene. You can also use the camera's frustum as a clipping region for foam emission.

c
CubeSplash single frame precomp
CubeSplash render and precomp01
CubeSplash render and precomp02
   

Render with Arnold with help of DSO (load bifrost particles in render time) by Nicholas Yue

Foam Emission

Emission Rate
Sets the number of emission points generated per voxel. Increasing this value generates more foam particles.
Min Liquid Speed
Sets a threshold value for triggering foam emission. Faster moving areas of the liquid emit more particles. This value is in m/sec in world space.
Min Liquid Churn
Sets a threshold value for triggering foam emission. In Bifröst, churning is liquid rotating orthogonal to the surface normal. For example, churn can result from the rotating curvature of a cresting wave or from the turbulence of a washing machine agitator. Areas of the liquid with more churn emit the largest number of particles. Set Min Liquid Churn to values between 0 and 2 with lower values emitting more foam. This value is in m/sec in world space.
Min Liquid Curvature
Sets a threshold value for triggering foam emission. Liquid curvature refers to curved shapes on the liquid surface, such as those generated by rolling and cresting waves. Areas of the liquid with the steepest curves emit the largest number of particles.
Min/Max Liquid Depth
Sets the voxel region of the liquid, in voxels, that emits foam particles. A Min Liquid Depth value of 0 sets the liquid surface as the top of this region. Max Liquid Depth sets the bottom of the region below the surface. Use values between 0 and 3 for typical foam effects.
Max Solid Depth
Sets the distance, in voxels, between foam emission points and closed boundaries such as collision objects. Use values between 0 and 1 to maintain a boundary between voxel emission points and collision objects. To emit foam under the liquid surface (bubbles), set Max Solid Depth to a negative value and Max Liquid Depth to a high value such as 10 or greater.
Inherit Liquid Velocity
When set to 1, foam particles emit with a velocity equal to the liquid velocity vector. At values greater than 1, foam can shoot off the surface as spray, while values less than 1 dampen the particle velocity.
Emit Flatness to Surface
When set to 1.0, particles snap to the liquid surface on emission. This prevents foam particles from being emitted under the surface of the liquid. The default value is 0 which lets buoyancy affect the particles' upward motion.
Camera Adaptivity
Toggles adaptivity on and off and sets the particle emission rate drop-off based on the distance from the camera. Increasing this value emits more particles closer to the camera, while culling particles further away.

Set Camera Adaptivity to a positive non-zero value to turn on adaptivity. When set to 0, Camera Adaptivity is off and all the camera related attributes are ignored. At a value of 1.0 and greater, emission drops off as 1/distance 2.

Clip To Camera Frustum
Restricts foam emission to an area defined by the adaptive camera's field of view.
Camera Fov
Narrows and expands the adaptive camera's field of view.
Camera Aspect
Sets the aspect ratio of the adaptive camera frustum. When set to 1.0, the aspect ratio is square (length equal to width). This lets you control the adaptive camera aspect ratio independently of the render settings if desired.
Camera Buffer
Adjust this to set a buffer of foam particles behind and to the sides of the camera frustum. Increase this value to emit more particles behind the camera and around the edges of the frustum. This is useful if the camera is pulling back in an animated shot.Increase this value appropriately for fast moving cameras, otherwise the foam may appear too thin in the newly exposed regions.

Foam Propagation

Dissipation Rate
Rate, per-second, that foam particles lose density. Foam particles at and above the liquid surface dissipate. Particles under the liquid surface do not dissipate.
Kill Density Threshold
Density value at which foam particles are eliminated. Particles below the liquid's surface have a density of 1 plus the Max Liquid Depth. At the surface, particles have a density of 1, while above the surface they have a density less than 1.
Buoyancy
Upward acceleration of foam particles in m/s2. In turbulent, fast moving liquids, you can increase Buoyancy to force particles to the surface. This stops the particles from remaining under the surface as bubbles, which do not dissipate.
Snap to Surface
When on, particles snap back to the surface each frame. Use this to keep foam on the surface of the liquid.
Surface Offset
Sets the distance from the liquid surface when Snap to Surface is on. Surface Offset is also used by the solver to determine whether foam particles are below or above the liquid surface. For example, Bifröst adds buoyancy to particles below the surface and increases dissipation of particles above the surface.
Preserve Volume
Applies a repulsive force to particles when the distance between them is equal to Point Radius. Increase this value if you notice foam collapsing rather than dissipating as expected, or if particles are piling up and making the foam too thick.
Point Radius
The radius used by the repulsive force applied by Preserve Volume. Point Radius is not related to render radius.
Collide Kill Depth
Sets the distance from collision objects, in voxels, that triggers an additional dissipation effect on colliding particles. When set to 1, colliding particles dissipate at the set Dissipation Rate. When set to a value of 0 or a negative values, particles dissipate at a rate greater than the Dissipation Rate.

For example, when set to -0.5, dissipation increases by a value of 10. Values greater than 1 do not noticeably affect dissipation as collisions stop particles from penetrating more that 1 voxel inside the collision object. Collide Kill Depth is useful for eliminating particles that are trapped by collision objects and cannot rise to the liquid surface and dissipate.

Wind X, Wind Y
The strength of a wind force along the X and Z vectors in scene grid units/s 2. Use Wind to direct foam particles that are above the liquid surface (spray).

 

Bifrost main liquid simulation

Liquid sim - vel preview
Liquid sim - vorticity preview
   

 

Bifrost Foam attributes compare - Emission Rate
Sets the number of emission points generated per voxel. Increasing this value generates more foam particles.

Emission rate - 250
Emission rate - 500
   
Emission rate - 750
 


Bifrost Foam attributes compare - Min Liquid Speed
Sets a threshold value for triggering foam emission. Faster moving areas of the liquid emit more particles. This value is in m/sec in world space.

Min Liquid Speed - 4.0
Min Liquid Speed - 8.0
   
Min Liquid Speed - 12.0
 

 

Bifrost Foam attributes compare - Min Liquid Churn - Min Liquid Curvature
Churn sets a threshold value for triggering foam emission. In Bifröst, churning is liquid rotating orthogonal to the surface normal. For example, churn can result from the rotating curvature of a cresting wave or from the turbulence of a washing machine agitator. Areas of the liquid with more churn emit the largest number of particles. Set Min Liquid Churn to values between 0 and 2 with lower values emitting more foam. This value is in m/sec in world space.

Curvature sets a threshold value for triggering foam emission. Liquid curvature refers to curved shapes on the liquid surface, such as those generated by rolling and cresting waves. Areas of the liquid with the steepest curves emit the largest number of particles.

Min Churn/Curvature - 0.5/0.3
Min Churn/Curvature - 0.75/0.4
   
Min Churn/Curvature - 1.0/0.5
 

 

Bifrost Foam attributes compare - Inherit Liquid Velocity
When set to 1, foam particles emit with a velocity equal to the liquid velocity vector. At values greater than 1, foam can shoot off the surface as spray, while values less than 1 dampen the particle velocity.

Inherit Liquid Velocity - 0.5
Inherit Liquid Velocity - 0.95
   
Inherit Liquid Velocity - 1.25
 

 


Bifrost Foam attributes compare - Emit Flatness to Surface
When set to 1.0, particles snap to the liquid surface on emission. This prevents foam particles from being emitted under the surface of the liquid. The default value is 0 which lets buoyancy affect the particles' upward motion.

Emit Flatness to Surface - 0
Emit Flatness to Surface - 1.0
   

 


Bifrost Foam attributes compare - Dissipation Rate

Rate, per-second, that foam particles lose density. Foam particles at and above the liquid surface dissipate. Particles under the liquid surface do not dissipate.

Dissipation Rate - 0.750
Dissipation Rate - 1.5
   

 


Bifrost Foam attributes compare - Preserve Volume
Applies a repulsive force to particles when the distance between them is equal to Point Radius. Increase this value if you notice foam collapsing rather than dissipating as expected, or if particles are piling up and making the foam too thick.

Preserve Volume 0.0
Preserve Volume 0.5
   
Preserve Volume 1.0