3D Realtime Hair

polycounter lvl 3
Offline / Send Message
DanaosC polycounter lvl 3
Hello everybody! I've been working with hair for a few months now, figuring out what works best and what doesnt, here is the latest asset I made in my free time that I can show, there's still some figuring out to be done when it comes to the shapes, but I'm happy with how this turned out. I will be making breakdowns of the pipeline and include some advanced tips and tricks.
Game ready tri count at 8k tris, here's a beauty render in Toolbag, using a shader I wrote that works similar to the hair shader of Unreal Engine, fading out the edges with the AO map, giving it a softer look. C&C is much appreciated :) 



I'll be posting more images and the breakdown of the pipeline, here and on the Artstation post :) Cheers!

Replies

  • akiratang
    Offline / Send Message
    akiratang polycounter lvl 5
    That looks amazing and really lifelike, I've been trying to make hair for my characters as well. Im still a noob and havent had much experience with it, would love to see a breakdown of this sometime :)
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    akiratang said:
    That looks amazing and really lifelike, I've been trying to make hair for my characters as well. Im still a noob and havent had much experience with it, would love to see a breakdown of this sometime :)
    Thanks man! Im glad you like it. Yeah it's quite a hassle and a long trip to figure out the right pipeline. Will def post a breakdown :) Cheers!
  • Lou_
    Offline / Send Message
    Lou_ triangle
    Hey man some C&C would be that the hair to retain that volume would need to have gel or hair spray. Might be worth tinkering with roughness or colour values, to demonstrate that. I think that could really add to the character of the hair. 
    Great work anyway, hope this helps. 
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    Lou_ said:
    Hey man some C&C would be that the hair to retain that volume would need to have gel or hair spray. Might be worth tinkering with roughness or colour values, to demonstrate that. I think that could really add to the character of the hair. 
    Great work anyway, hope this helps. 
    That's true it's supposed to be hair with product on, you feel like it should be shinier? I can see that, ive been playing with the roughness continuously so at one point I wasn't sure what works best. I'll play with it more before I finish with the character :) Thanks for the feedback! 
  • Tectonic
    Offline / Send Message
    Tectonic polycounter lvl 5
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    Tectonic said:
    looking really nice
    Thanks man, it was a fun asset! :D 
  • riceart
    Offline / Send Message
    riceart polycounter lvl 5
    Hi, it looks amazing. Did you use anatomy books or its based on how it looks on reference photos?
  • Torch
    Offline / Send Message
    Torch polycounter lvl 8
    Agreed, looks great :) +1 for a breakdown.
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    Thanks guys ^^
    riceart said:
    Hi, it looks amazing. Did you use anatomy books or its based on how it looks on reference photos?
    I used anatomy in the sense of where the natural hairline is, why the flow work the way it does etc, but mostly based on reference.
  • andrecastel
    Offline / Send Message
    andrecastel polycounter lvl 5
    It looks great! Would love to see a breakdown as well.
    You mentioned you wrote that shader, are there any more details you could share about it?
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    It looks great! Would love to see a breakdown as well.
    You mentioned you wrote that shader, are there any more details you could share about it?
    Glad you like it mate! I plan on doing on when I find some free time during the week :) 
    So yeah, it's not something super fancy,it works the same way as the UE hair shaders works in case you're familiar. Uses the dot product of the camera direction and card's normals to mask out the edges of the silhouette with the AO map, so it looks like dense cards have flyways, essentially giving it a softer look.
  • andrecastel
    Offline / Send Message
    andrecastel polycounter lvl 5
    DanaosC said:
    Glad you like it mate! I plan on doing on when I find some free time during the week :) 
    So yeah, it's not something super fancy,it works the same way as the UE hair shaders works in case you're familiar. Uses the dot product of the camera direction and card's normals to mask out the edges of the silhouette with the AO map, so it looks like dense cards have flyways, essentially giving it a softer look.
    Cool, just wanted to show the interest so you know it won't go to waste, so no rush  ;)  thanks for taking the time though.
    Unfortunately I'm not very familiar with the UE shaders, I always mean to take a character to UE but end up choosing Marmoset for the familiarity. The shader sounds good though (and can see already that it works well)
  • jose.fuentes
    Offline / Send Message
    jose.fuentes polycounter lvl 4
    looking good, i also second the breakdown when you have time 
  • floon
    Offline / Send Message
    floon polycounter lvl 6
    Really cool, love it!
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    looking good, i also second the breakdown when you have time 
    I have a coworker named Jose Cifuentes and I thought it was him Haha, thanks man I will definitely post one soon :) 

    floon said:
    Really cool, love it!
    Cheers mate! :)) Appreciate ya
  • CybranM
    Offline / Send Message
    CybranM polycounter lvl 5
    I know nothing about character creation but that looks damn good :smiley:
  • slosh
    Offline / Send Message
    slosh sublime tool
    I think this looks really nice.  The one thing that bugs me is how you have nice breakup on the top strands but as it fades into the back of the head...all the strands become incredibly uniform.  Feels like the back of the head could use some more random breakaway hair treatment. Still, very nice work!
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    slosh said:
    I think this looks really nice.  The one thing that bugs me is how you have nice breakup on the top strands but as it fades into the back of the head...all the strands become incredibly uniform.  Feels like the back of the head could use some more random breakaway hair treatment. Still, very nice work!
    Hey man, glad you like it! This was supposed to be because of difference in hair length, so he just brushed/styled the hair backwards while the lower part is shorter, but i get what you mean, reference was minimal and i had to wing it in some areas, I'll see if I should maybe commit and make it all messier :) Appreciate the feedback, cheers!
  • RianShelton
    Offline / Send Message
    RianShelton polycounter lvl 6
    Some of the better real-time hair I've seen, mainly cause of how much depth it is portraying, great work! Sure your burnt out on this project, but would love a break down if you get the time!
  • RN
    Offline / Send Message
    RN greentooth
    That's beautiful bro. I love how there's lots of dark depth in the deeper sheets (probably from realtime AO?).

    I tried finding that UE hair shader that you mentioned, the one that fades the sheets based on V-dot-N, I think there's something in here.
    Quoted from their photorealistic character article:

    Edge Masking


    Though not specifically part of the shader itself, it is worth noting that the Material used on the example character's hair - as well as the other characters of Epic's game Paragon - uses what is called an "Edge Mask" to fade the hair away as it becomes edge-on to the camera. Since hair is rendered as a series of planes - see Hair and Geometry below - it is likely that from certain camera angles, one would see the edge of each sheet, breaking the hair effect.

    To help alleviate this problem, the Material calculates the camera's vector against the vertex normal such that as the surface turns perpendicularly away from the camera, it will also fade away to complete transparency. The other side of this approach, however, is that in doing so it is possible that the hair shader may show more of the scalp. This is also why many characters with thick heads of hair will often have a hair texture painted on the scalp, as seen in the image below.

  • AFsoft
    Online / Send Message
    AFsoft polycounter lvl 4
    this looks amazing

  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    CybranM said:
    I know nothing about character creation but that looks damn good :smiley:
    Thanks man I appreciate it! :) 
    Some of the better real-time hair I've seen, mainly cause of how much depth it is portraying, great work! Sure your burnt out on this project, but would love a break down if you get the time!
    Cheers mate, truth is I wasn't sure about the depth, maybe it needs a bit more shadowing, or no rim light, but Im glad you think so! Not burnt out yet! Plenty of energy and the breakdown will come :) I'll also release the files so you can play around with the scene and shaders yourselves.

    RN said:
    That's beautiful bro. I love how there's lots of dark depth in the deeper sheets (probably from realtime AO?).

    I tried finding that UE hair shader that you mentioned, the one that fades the sheets based on V-dot-N, I think there's something in here.

    Thanks dude Im glad you like it! So yeah its that but also I baked AO to the vertex color which I think works great for that extra realistic darker depth.
    About the shader, yes actually this is the part I rewrote in Marmoset Toolbag! :) It works the same, I just hope MT had pixel depth offset so we could have smooth transitions.

    @AFsoft Cheers! ^^ 
  • vikk0
    Offline / Send Message
    vikk0 polycounter lvl 6
    That's looking really great! GJ on it! Can't wait for the breakdown :smiley:
  • purehilarity
    Offline / Send Message
    purehilarity polycounter lvl 6
    Commenting to follow your work. Looks fantastic. I was recently doing a lot of RnD on hair using Xgen and find it very difficult. One of the hardest aspects of asset creation I've come across. Can't wait to see your tutorials!
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    vikk0 said:
    That's looking really great! GJ on it! Can't wait for the breakdown :smiley:
    Thanks dude, its on the way! :)
    Commenting to follow your work. Looks fantastic. I was recently doing a lot of RnD on hair using Xgen and find it very difficult. One of the hardest aspects of asset creation I've come across. Can't wait to see your tutorials!
    Really appreciate it mate! Yeah word, Hair creation is so tricky and I still have a long way to go, so I'll be glad to share with you guys the files and the techniques.
  • TheRealRyan_
    Offline / Send Message
    TheRealRyan_ polycounter lvl 2
    This is looking really nice. Maybe adding a few more stray hairs would push the realism. Keep it up! :)
  • CarlCraft
    Offline / Send Message
    CarlCraft polycounter lvl 6
    Amazing job. Would you mind posting shader/wireframes?
  • Ruflse
    Online / Send Message
    Ruflse polycounter lvl 2
    Really nice work! Hoping to see that breakdown too.
  • DanaosC
    Offline / Send Message
    DanaosC polycounter lvl 3
    Thanks everyone! I'll probably be able to finish it in the weekend, busy week! Cheers :) 
  • RudelStone
    This is a really great job! Looking forward to the breakdown.
Sign In or Register to comment.