Eyelashes and Eyebrows--Epic's Setup?

I am working on some next-gen characters utilizing the fantastic rendering features found in 4.12. I have extensively watched through Epic’s character rendering stream, and looked through the content examples–all of which have been extremely helpful. However, one topic not really covered is the rendering of eyelashes and eyebrows.

What is Epic’s material setup for eyelashes and eyebrows? I assumed it was a simple translucent material, but my implementation has a lot of lighting artifacts.

My setup is the following:


However it doesn’t completely respect shadows (just a simple test map with stationary spot lights):


Now my characters are dynamic and designed to be customized, so you can swap out eyebrows and adjust colors and such. Unfortunately, this means I can’t really paint eyebrows in the texture maps and they must be separate meshes translucently blended on top.

Translucent materials in UE4 cannot receive dynamic shadows cast from other objects.
the only exception is for materials using Translucency Shadow Volume which is so short-range and/or broad that basically is only useful for shadows from big objects (i.e. entering a building or a cave).

eyebrows are usually painted onto the character rather than put on top as a translucent mesh. even if you want customizable eyebrows I’d suggest doing it all as different “layers”, all blended into the character material.
eyelashes though, they really need to be translucent. in the stream you mentioned they do say they don’t use the hair shader for eyelashes, but I think it’s not clear if they use a translucent material (and just live with the light/shadow artifacts) or if they use a masked material (and rely on TemporalAA for it to not look like craap)
I’d be interested in knowing what’s the more “official” or at least the more accepted way of doing this.

Thanks for the reply. That’s a shame there is no way to get shadows on translucent objects. The big deterrent for me overlaying eyebrows in the material is how much texture resolution would be required for customizable variants. Each variant would essentially be a duplicate of the high res head texture when it can be much smaller. I don’t suppose there is a way to overlay a completely different texture and transform it to fit?

I am pretty sure Epic uses translucency for their eyelashes because in that stream they turn on lighting only which shows non-translucent materials in gray. The eyelashes remained the same, they would have turned into cards. My guess is, Epic gets away with it because their eyelashes are black–I turned my character’s eyelashes black and it hides light bleeding, but I don’t want all my characters with black eyelashes. I have experimented with temporal AA masked eyelashes and they look tolerable, but noticeably worse.

depending on how much difference you want for the eyebrows you could also look into using flow maps to transform just one eyebrow texture. especially for “large” scale transforms this could work reasonably well without adding too much distortion.

you could well overlay your eyebrows at full resolution (i.e. them covering the entire texture, no wasted space) by doing some transformation in the Texture Coordinates of your input texture. it’s quite easy, just multiply with a vector (to scale), then add a vector (to offset)

heh I didn’t notice Epic’s eyelashes were all black. but to be honest (and seeing from google images) any non-black eyelashes just look unnatural to me. I’d just make them all black and more/less transparent if you want to change appearance

other than that I don’t think you’ll get a better solution, as you say how eyelashes on masked + temporal AA look worse.

So just out of curiosity because its not mentioned here but you have tried with the DitherTemporalAA? I remember when we worked on Dead Island2 at my old company we heavily used those features and were pretty satisfied with the results. Also, Epics new hair rendering heavily depends on dithering and TAA to make things work.
Just ignore what I wrote if you already tried that :smiley: Just wanted to make sure since masked material + TAA only doesnt yield usable results^^


You are totoally awesome!!! I have basically the same issue on eyebrows and it juse fixed :smiley:

Thank you so much.

I used ornatrix and just generated a mesh , imported and applied a dark whiney shader. Got ok results. I’l post a pic soon.

Here it is… Your model is getting there. Try ornatrix, gave me good resukts. you just have to learn it.