Home Technical Talk

Confusion with producing Flow maps

DustyShinigami
polycounter lvl 5
Offline / Send Message
Pinned
DustyShinigami polycounter lvl 5

Hi

After some discussion in another thread of mine, someone mentioned Flow Maps. However, I'm still really unsure and confused with how to produce them or if I even really need them at all. At the moment, I've made some additional hair clumps from XGen to be turned into hair cards. For things like hair cards, would they even be necessary? One workflow I've followed from a course doesn't even involve Normal maps. Just an alpha, an ID map, some height maps, and some gradient/root tip maps to be composited together in Photoshop.

What's the (best) approach for making Flow Maps? I swear someone said it was just the Up/Down/Green channel of the Normal map that can be used...? Or is there a bit more to it than that?

I confuse easily, especially if it's something I haven't done before or something isn't explained thoroughly, so please be patient with me when explaining things. 😅 I'm really eager to learn and improve my workflows, even if it's just something minor that will push my art further.

Thanks

Replies

  • pior
    Offline / Send Message
    pior grand marshal polycounter

    Well, the first step isn't really to wonder how to do this or that in the so-called "best" way imho ; the first step would be to get one's hands on a material/shader for a 3d app or game engine (or an easily moddable game really) that supports the effect, and use it in practice. Otherwise you're bound to operate on mostly pointless assumptions, that may not even necessarily apply to the environment you're using to display your work.

    Also, isn't all this related to these other threads about Red Dead models and textures ?

    "For things like hair cards, would they even be necessary?" Just think about it logically. The point of so-called "flow" data (either stored as a texture, or as vertex data ...) is for a vfx to be aware of a sense of direction. In the case of IRL hair, that's in order to simulate the fact that highlights are generated along thousands of tiny parallel cylinders as opposed to a plain smooth surface. So if your hair cards are all oriented the same way UV-wise, then there is no need for anything else to store the direction data, it's already there : along U or V. (Unless the art style requires some painterly touch in the flow data ... and that's precisely why it is much more important to know one's visual goal very clearly, as opposed to wondering about tech and operating on assumptions).

    For other cases where direction needs to be stored by other means there are tools for that (some public and generic, and some internal to studios and very specific to a certain pipeline).

    But again, none of this manifests out of thin air "just because that's the way things are done". So again I'd suggest to track a material or any way to experiment with the effect first (which may be relying on textures, or vertex colors, or UV direction) ; and then worry about authoring content for it.

    But even more importantly : just because a realistic material to simulate shiny hair requires some notion of strand direction for the highlights, there are hundreds of cases where this isn't needed, especially for less shiny hair. And there are also lots of clever solutions to make both shiny and matte hair look good without the effect in the first place.

    PSP rendering specs (that's 2004 portable hardware), just shown in HD !

    - - - -

    BTW, where are your attempts ? Sure enough you've played around with the tech and some test assets already ...

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter

    Im just gonna repeat pior but in a different way.

    Don't focus on tools, just make the best art that you can with the skills you have right now. Then show that to people. With help, you'll be able to point out the problems that it has. Then, it will be possible to say, "in order to solve that problem, use ____ technique."

    If you try to learn tools without the context of understanding the problem it solves first, you won't remember shit. You'll be stuck in endless loop of searching for some secret technique to level up your skills.

    If you produce lots of shitty art and get peoples help with improving it one problem at a time, you'll never wonder what such and such techniques are for. YOu'll just see problems that you can describe in plain language, and then you'll be able to imagine how they might be solved, and hten you'll look at what techniques exist and you'll choose the best one. Or maybe you invent a new technique.

    To summarize, just make art with what you know now until you hit problems, then let problems dictate the solutions you seek. Don't chase solutions and try to reverse engineer the problems. One way is effective, the other is not.

  • DustyShinigami
    Offline / Send Message
    DustyShinigami polycounter lvl 5

    Thanks for the insights and info. Yeah, it is kinda related to the other threads about the RDR2 model and textures. 😁 Though the technique mentioned in one of those threads just got me thinking on incorporating it into my own projects and workflows. But you're right of course - I haven't exactly considered if it's necessary or needed for my projects. And all my hair cards are in the same direction based on the UVs - top to bottom.

    So far, I haven't got any (recent) attempts of making a Flow map. This was the thread I first learnt about them - https://polycount.com/discussion/230642/scanned-data-or-hand-painted#latest - and it looks like I extracted the green channel from a Normal map, added it to my high poly, and then baked that down to its own Normal texture...? I think. I can't quite remember. Not sure if that's right. Or one correct approach, rather.

    I don't currently have any projects/environments/shaders/materials I can take a lot at. I'll have to see if the Unreal Marketplace has any real-time hair projects that have them.

  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter

    the cinematic / photorealistic character example projects for ue4 have all the bits for hair in them - and shaders that will serve well for portfolio work.


    all a flowmap does is provide an offset for something in 2 dimensions - in the case of a cheap flowing liquid you encode the amount you wish to offset UVs into (eg) the red and green channels of a texture and scroll your texture in either the U or V axis . Pulling the green and red channels out of a normal map will work in any sensible shader although won't necessarily produce ideal results

    For hair its not hugely different except that you aren't scrolling a texture - instead you need to control the shape of a highlight. To do this accurately you need to know how far along a strand (or clump) of hair you are, as well as the direction the hair strand is going but in practice you can often make an assumption based on UVs or a simple gradient going from root to tip of your hair card (functionally this is the same as scrolling a texture)


    I think I mentioned Arnold's utility nodes in the last discussion about this - using the derivative utilities (dPdU/V) you can render a full direction map in one hit from a groom

  • DustyShinigami
    Offline / Send Message
    DustyShinigami polycounter lvl 5

    I've just gone back to that other thread and so you did. I'll have to take a look into those shaders. I have been playing around with Arnold's renders for hair and they do produce much better and cleaner results. I did resurrect an old thread here - https://polycount.com/discussion/comment/2770700#Comment_2770700 - regarding height maps. Not had a response yet though.

Sign In or Register to comment.