(if you look closely, you'll note that I painted greentooth into that flowmap)
Updated 4 October:
v0.9.2 for Windowsv0.9.2 for OSXhttp://teckartist.com/?page_id=107
[update_4_Oct]
I've added the ability to actually
load flowmaps, so you can either pick up where you left off in your last session, or load up a simmed flowmap to tweak, for example. Tiling/wrapping option, too. A few more additions and fixes in the 0.9.2 update (October 4).
[/update]
So I've been working on a
vertex painter for Unity for a while now, and at some point decided to add flowmap painting functionality to it. Then I realised that this would be pretty useful outside of just Unity, so I ported most of the code to work at runtime, and put together a rudimentary standalone build. I'm gonna keep updating/maintaining it, adding functionality as necessary, as well as fixing stuff that might be broken. Also, I'd like to make it such that the UI isn't as fuck-ugly as it is currently
A video of it as of last Friday:
[ame="
http://www.youtube.com/watch?v=sJBn8ykpMwQ"]Working, rudimentary, standalone flow map painter built in Unity - YouTube[/ame]
I've since added [ugly] functionality to load your own tiling texture for preview, and also to load an overlay image (eg. an overhead shot of your terrain so you know how you want your flow to look like).
As a sidenote, this could probably be used to create maps for anisotropic specular, for example.
Have at it, and feel free to abuse the shit out of the feedback button to spam me with bug reports and suggestions!
Replies
Is there any plan to include alternate brushes (like 'flow outwards' or 'flow inwards' or 'vortex') or anything?
This really is amazing man, thanks so much for sharing this with the community!
It would be interesting to see a third dimension applied to this. I cant even imagine how editing that would work. *head explodes*
This app looks awesome, and I can already think of ways I can use this. Im going to see if the textures can be used to generate anistropic highlight normals for hair...
I had actually written up an article on a new method for creating flow maps in Photoshop (just needed to create screenshots), but now it seems kinda useless :P.
Thank you.
The option to have the flow field lines visible (while simple enough) is genius
I've done a bit of an update.
- fixed a bug with the overlay feature (it was broken)
- added a pinch/inflate brush, as well as a vortex brush
- added pan/zoom functionality
- version checker, too!
- I'm using a denser plane right now, since you can zoom in
- this unfortunately means the flow lines preview is a bit... slow
and its own page (since the version checker will direct you here if you're due for an update):
http://teckartist.com/?page_id=107
sinistergfx:
I'd actually be curious to see what you came up with. I love thinking up and seeing crazy approaches to impossible things
konstruct:
It's funny, actually, I'd started getting crazy ideas of using these to drive some sort of gameplay... directing particles or some such malarkey
This is insanely cool.
I'm curious as to how this works, is the painting already being done in 3d with brushes being projected from the camera and pushing around vertex normals? Could it support panning and rotating around the plane with the camera? It would be awesome to have the ability to import geometry with non square, unwrapped UV usage to paint on as well as background geometry to guide you.
Can you add a feature to invert specific channels before baking the map? Would be easier if I didn't have to always invert them in Photoshop (because UDK...).
Good idea, I can definitely add that. It's going in the next update
Computron, Fingus:
I haven't started looking into what it would take to import geometry, but reference images are currently supported (via the overlay bit at the bottom). I'll eventually look into seeing if it's possible to get a proper file browser up, but for the time being you're limited to text-inputting the path.
I haven't really put any thought into a full 3d camera, though the base functionality is there (this project is essentially forked off my in-editor vertex painter project). Right now it doesn't actually modify the vertex normals, only the colors (in a nutshell it simply translates your XY brush movement into RG colors, which the preview shader uses to flow the texture).
Very cool program nonetheless!
Have you tried PNG?
Oh, and the overlay images are (sometimes?) upside down.
Yeah, I'll see about reenabling the resolution picker in the next update.
Saman:
I've not tested too extensively yet (and my bad, I keep overlooking this in the readme), but 24/32-bit PNG and JPGs have been tested and working so far (it will also respect PNG transparency). TGA unfortunately doesn't work, though I'll try and look into alternate loading methods to see if that's doable.
Santewi:
Damn, you're right. I'd only really tested with a handful of pattern-type images, so I hadn't noticed the overlay image is flipped. That'll be fixed!
thanks for sharing, Teck!
Uncharted FX team used this method a lot for their particles.
anyone has some tutorial or explenation how to use flow maps for a river in UDK?
cause I'm making a level in UDK and it would be cool to use this
when i get home this eveing, i can take a screen of a shader network, for this, if no-one answer's you before than.
http://i.imgur.com/sXlP3.png
Fingus, that should definitely be doable, as long as your particle system is exposed enough to hook the color values into velocity/rotation/etc of the particles.
Great to hear it's viable! Should certainly help push the look of it.
I'm using UDK so I need to figure out how I can set that up, off to google! Would you guys happen to know btw?
Here is how to get LowTekK's maps to work in UDK.
You have to invert the UTiling in Texcoord.
If you don't invert the UTiling you're going to have a bad time.
The alternate way is to multiply by vector2[-1, 1], or invert the red channel in photoshop.
Next update will have an option to invert channels so you don't need to resort to all that malarky.
Additionally, until I figure out how to get a file browser in there, I'll also set it up so it actually remembers your last used paths (for both output and input).
Wouldn't it be {-1, 1}?