Flow Maps

From ARK Modding Wiki
Revision as of 04:22, 9 April 2018 by MorkOz (talk | contribs) (→‎OVERVIEW)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Original Source

OVERVIEW

Flow maps are vector maps used to make textures "flow" by pushing UVs around in a periodic manner. ARK uses this to make rivers flow in arbitrary directions around the island. More technical explanations can be found elsewhere, eg.

A simple explanation: a flow map is a 2-channel texture (R,G). A value of (.5,.5) indicates no flow. Values above .5 cause flow in the positive axis direction, values below .5 in the negative axis direction.

ARK-IslandFlowmap.jpg

Authoring Flow Maps

Since flow maps are mathematical in nature, they shouldn't be hand-authored. The best way to create a flow map is through a visual effects package like Houdini or Maya by running a fluid sim in a scene representing your environment and exporting a top-down view of the velocity field at the surface.

However, this is pretty complicated! Instead, you can paint flowmaps using this free tool: http://www.polycount.com/forum/showthread.php?t=105399

It's fairly intuitive to use (brush/mouse strokes cause flow in the direction of the stroke, the faster the stroke the stronger the flow). However, the resolution you can paint is pretty limited, so you'll need to paint the island flow map in pieces and stitch them together. Painting the island in 1/4th segments gives reasonable results, you can paint smaller segments where the flow map needs to be more detailed (sharp bends, etc.). A final flow map size of 2048x2048 should be good enough.

It's necessary to reference the Terrain Heightmap when authoring flow maps for the island. You can also use the heightmap to mask out shorelines, reduce flow at beaches, etc.

Using Flow Maps in Unreal

Flow maps should not be gamma-corrected (uncheck sRGB under texture properties) and use the "TC Vector Displacementmap" compression setting. Their UVs should be set up in the same way heightmap UVs are (see the Terrain Heightmap page)