Deltaflow - Fast Water And Fluid Materials Supporting Flowmaps

by Brandon Ballschmidt in Materials, Shaders, Textures

Thanks for your interest in DeltaFlow. This guide will start with descriptions of how to use the various node groups inside the included materials and than give a brief overview of each of the included assets. 

Flow Driver

This Value Drives the motion of the flow in the texture. It is keyframed to repeated run from zero to run. The default rate is for this to happen over 50 frames. Adjusting this value will adjust the speed of the flow.


Flow Direction: This value ranges from -1 through 1 and controls the direction and amount the texture is displaced. Large positive or negative will warp the texture more and have a high flow speed. A value of zero will have no flow. Being either positive or negative will change the direction of the flow.  

Vector: This is where you plugin your texture coordinates. (UV unwrapped is recommended for the most predictable results)

FlowMap: This is where you plugin your flowmap texture.

Flow Breakup Strength: To help prevent noticible pulsing artifacts, this allow you to randomly offset when parts of the texture are moved based off the size of the flowbreakup Scale.  Typically best set to either 1 or 0 for having this effect on and off respectively.

FlowBreakup Scale: This controls the size the texture breakup noise. To small of a value and it you wont notice the effect, to large of a value and it can distort your texture more than you may want. Dial this in to fit your scene best.

Flow Intensity Mix: This adjust how much the intensity of the flow effects the normal displacement or surface waves on your texture. A value of zero will have the wave height be the same throughout the whole texture. A value of one will only produce waves where there is flow and higher waves for higher flow areas. Adjust anywhere in between to get the effect you want. (Only used in the DeltaFlow_Principled Water. Has no effect on the other shaders.)

Flow Intensity Power: This value adjusts the strength of the normal map producting the waves. Zero for no waves and high values for large waves. (Only used in the DeltaFlow_Principled Water. Has no effect on the other shaders.)

Flow Texture Cutoff:  This value adjust how intense or fast the flow needs to be for the foam to be added to your material. A cutoff of zero for foam to appear anywhere there is flow, and a cut off 1 for there to be no foam at all.

Wind X:  This value adjust overall motion in the X UV direction in positive or negative values.

Wind Y:  This value adjust overall motion in the Y UV direction in positive or negative values.

Texture Controls 

For adjusting the mapping values and tiling of the textures. Offsetting one of the location values when using the textures to control the normal map (such as in the "Principled Water" shader) can help make wave textures smoother and more consistent. For the emission shader, keeping these values the same will give you sharper and clearer textures. Use the image texture nodes to add your own images to be used by the materials. These should both be the same texture.

Foam Texture

Use the two color ramp nodes to further refine the amount and look of the foam. 

Heightmap To Flowmap

Use this node group to convert a black a white height map into a flowmap producing flow from bright areas to dark.

Height Map: Input the heightmap texture here.

Flow Strength: This adjust the intensity of the flow produced. 

*For best results generating flowmaps from heightmaps use very smooth high quality, high bit depth images for this node. Noise and low bit depths can cause severe artifacting on this layer. 

Included Assets

DeltaFlow Principled Water

A realistic water shader with simple controls to affect flow direction, speed, Flow breakup strength and scale to provide more natural continuous motion, and how much foam and waves are produced in the fast flowing parts of the texture.

DeltaFlow Emission Water

A flat water shader perfect for a more stylized look with the same controls as the Principled Water. It's easy to add a color ramp and customize the colors to your scene.

DeltaFlow Emission Lava - Heightmap

This shader provides an example of the use of the included "HeightmapToFlowmap" Node group. This node group will convert a monochrome heightmap to a downhill flowmap for a quick and easy way to get motion into your material. 

DeltaFlow AutoFlow

A key part of all this water is also allowing it to get on everything. This extra shader adds flowing water layer on top of your object that automatically moves down the sides, no flowmap needed. 

2 Premade flowmaps

A bubbling cauldron, swirling clouds over a tornado, water flowing away from a waterfall, or a spinning whirlpool? These two flowmaps will on their own open a world of effects and detail to your scene.

The Vortex flowmap brings a swirling motion with the direction changing the direction of the spin. 

The Radial flowmap will push the fluid away from the center while reversing the direction will cause fluid to pull in towards a central point.

Where to get Flowmaps

 While flowmaps can be generate by tools such as Houdini or hand painted with Krita the best way to dip your toes in the water is a great free tool FlowMap Painter. Simple to use and visual feedback will have you drawing your first flowmaps in minutes.

Hints and Tips

Think outside water! Use the vortex flowmap for swirling clouds over a tornado. Or the Radial flowmap for dust kicked up by an explosion or reverse the direction to show a character powering up for a shining magical attack. Use lots of different textures and even mix in alpha channels to find all sorts of uses for these textures!

The Heightmap to Flowmap tool can use any image. You can experiment with using an ambient occlusion pass to automatically make water flow away from the objects and terrain intersecting your water plane.  Or even use Dynamic paint to make reactive surfaces that create waves as objects fall into them or a boat goes past. Keep in mind though these options may need the textures to be blurred to provide a smooth enough image for the flowmap. 

The Flowmap Bump Node in the Principled water has an open normal slot, for you to mix an additional normal map into if you want to add your own noise flow or other texture underneath the flowing texture.

You can use the Lava Heightmap example and by selecting another object in the texture coordinate node you can use the geometry of another mesh to determine the flow on that mesh. 

Mixing this effect with some displacement waves created by the Dynamic Paint tool can create some fantastically polished images. 

Play around, try new things in new combinations and use these node groups in amazing materials of your own!