Metahuman Groom/HairStrands on Linux/Vulkan

When you package and run project containing Metahuman character (or any any character that has Groom/HairStrands as their hair), the HairStrands are not rendered when running under Linux - instead, the hair’s LOD2+ is loaded (which is Hair Cards). I could not force HairStrands/Groom under Linux even when using commands. Is it possible that this feature is not supported?

Hey KarelOtruba,

We ran into the same issue and asked on UDN and had the problem solved:


So … we finally iterate on the issue with a colleague by reproducing the issue on the MetaHumanSample project on Ubuntu in 4.27. The bottom line is a mixture of missing data platform configuration, and an issue with the .ini file setup.

The best workaround we have found so far requires you to recompile the engine unfortunately. In Engine\Source\Runtime\Engine\Private\Materials\MaterialInterface.cpp and remove FDataDrivenShaderPlatformInfo::GetSupportsHairStrandGeometry(Platform) like this:

bool IsHairStrandsGeometrySupported(const EShaderPlatform Platform)
	check(Platform != SP_NumPlatforms);
	return GetMaxSupportedFeatureLevel(Platform) == ERHIFeatureLevel::SM5;

This way, the engine will always enable strands geometry, and it should render fine. With this changes, you will need to recompile the editor, and recook/repackage your data.

I’m sorry there is no better workaround at this stage =/


Hopefully this solves your problem too!

Hi, I tried following what you said but I am not sure if I did it properly.

I downloaded the source code on ubuntu and compiled it.
Opened UnrealEditor once to see if everything was working.
Changed the source code according to what you have said above.
And ran, and make
Then I opened my project containing the metahuman and packaged a shipping build.
And there were once again no hair when I ran the game.

Is there something I am missing? I have never compiled unreal from source before this so I am not sure if I missed something.
Is there a different way to recompile the engine?

Hey gautamji,

I’m afraid I can’t really help you any more on this. I’m not that familiar with the process myself and I passed this on to members of our team that were able to fiddle and make it work.

You might just need to keep trying different things - and hopefully someone else with more experience with this process might be able to help you better