Clemens Beute has released the free 3D Flow Map Painter addon to his Gumroad. This addon allows to paint flow maps and contains material setups showing how to build shaders using the painted flow maps.
3D Paint Mode in action :)
Made my head hurt, to figure out, how to get UV coordinates from a 3D location, but it works now. pic.twitter.com/kg4BRnsUUP
— Clemens Beute (@BeuteClemens) February 28, 2021
Flow maps are a staple in game engine workflows as they allow for the creation of advanced shading effects that are not too costly to compute. The standard example for flow maps is shown below (when this addon was still limited to 2D painting) with the flowing water example.
I recently wrapped my head around Flow Maps and created a node setup to emulate flow.
There is currently no tool in blender for painting those, so I wrote a crude little add-on (only 2D at this point). pic.twitter.com/p2ftzir7og— Clemens Beute (@BeuteClemens) February 20, 2021
Another great use for flow maps is for texturing directional elements by using it to determine rotation, such as the other example provided by Clemens below.
I build a node, wich uses the flow map as a rotation.
I think that flow maps could be a great non-destructive tool, for texturing directional stuff, like fur, scales or bark. pic.twitter.com/shtnLFHzEf
— Clemens Beute (@BeuteClemens) February 28, 2021
Get the addon on the link below:
5 Comments
It's not working on blender 2.92.
When i try to paint, it gives this error.
Python: Traceback (most recent call last):
File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\__init__.py", line 343, in modal
direction_color = get_uv_direction_three_d(context, area_pos, area_prev_pos)
File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\__init__.py", line 131, in get_uv_direction_three_d
uv_pos = line_trace_for_uv(context, area_pos)
File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\__init__.py", line 124, in line_trace_for_uv
uv_co = pos_to_uv_co(obj=tri_obj, matrix_world=obj.matrix_world, world_pos=hit_world, face_index=face_index)
File "E:\BIDULCHOUET\Blender\B_HUMAN\Scripts\addons\flow_map_painter\__init__.py", line 90, in pos_to_uv_co
face = obj.data.polygons[face_index]
IndexError: bpy_prop_collection[index]: index 41 out of range, size 12
location: :-1
Is it only for blender 2.83 ?
It works on 2.92. I think, your error was coming from a modifier on your object. I updated the add-on. It now supports painting on objects with modifiers.
Anyways, this might not be the best place for bug reports. There now is an e-mail address on gumroad for that.
Thank you very much.
Yeah i understand , that's my bad, i tried it on a cube with a chamfer modifier (my default file)
This is very Van Gogh LSD intriguing. Props to you.
Could this method be adopted to control particle generation and/or movement? All of a sudden, your painted stream movement is now causing the reeds to sway in it realistically, as well. All with seemingly fairly low overhead.
It could be adapted to make wind through hair look realistic.
Could this be useful for something like a water stream with varying degrees of 'white' (flow intensity/'splashyness') in different parts of the stream?