Your favorite fur / hair / groom shader setup?

Hi all, I’m documenting the process to get blender hair (particle system) into unreal engine’s new Groom asset type through alembic. Works just fine. But the resulting performance and graphics are nowhere close to what I’d like them to be.

Blender:
afbeelding

So in blender the fur looks quite thick, rarely an empty patch. good enough to test with in UE. I export it with alembic into a Groom UAsset.

In UE I’m using a default material with the exception that I input a solid white color into base color, set shading mode to hair and checked “use with hair” in the options. One side it looks ok ish , the other like a mirror. If I modify the specularity or roughness it just looks worse with dark patches or mirror patches over the place.

I don’t get a soft / fluffy / scattered kind of look with this. Is it the lighting system itself? Do I need a complex shader setup (if so, what is your favorite?), Is it the shape of my hairs?

Additionally the quality differs dramatically, and so does FPS, when I change the overall scalability setting. I wish it to look acceptable on potato PCs and wouldn’t know how to get that done with the Groom system, is it possible? Or do I just have to give this up for potato PCs and go for the old fur techniques we used on PS2?

In the end I want something that is in between realistic and stylized, to really get those clean solid colors there with a very soft fluffy lighting appearance. I study the new Groom asset because I don’t want to lag behind using old techniques.

This is my export / import process for anyone needing it. I put it together from several youtube videos but I’ve not yet figured how / why to add some custom attributes that are apparently optional:


6. Exporting from blender
 6.1  Blender: Exporting FBX

The FBX exporter settings are modified from the defaults as follows:
- Include: Limit to: check "Selected Objects";
- Include: Limit to: check "Visible Objects";
- Object Types: check "Armature";
- Object Types: check "Mesh";
- Transform: Forward: X Forward;
- Transform: Up: Z Up;
- Geometry: Smoothing: Face;
- Geometry: check Export Subdivision;
- Geometry: check Apply Modifiers;
- Geometry: check Apply Modifiers;
- Uncheck Bake Animation.
 6.2  Blender: Exporting hair (Groom)

Blenders particle system (set to hair mode) can be exported to unreal engine using the Alembic format. The mesh and hair must be exported seperately. Exporting the mesh is done the usual way through FBX. After exporting the FBX the particle system settings are modified to disable the checkbox "Show Emitter" on both the Render and the Viewport Display tabs. 
The alembic exporter settings are modified from the defaults as follows:
- Scene options: Frame End: 1;
- Object options: check "Only Selected Objects";
- Object options: check "Only Visible Objects";
- Object options: uncheck "UVs";
- Object options: check "Normals";
- Object options: check "Color Attributes";
- Particle systems: check "Export Hair";
- Particle systems: check "Export Particles";

Note that While importing the alembic file into UE the rotation of the X axis might need to be rotated by -90 degrees.


 6.3  UE: Preparing for hair (groom)

Enable the following plugins:
- Groom;
- Alembic groom importer.

Change the following project settings:
- Engine: Rendering: Optimizations: check Support Compute Skin Cache.

When importing the alembic file containing hair, the groom importer should show up as a custom window. If not (if shown skeletal mesh options) the abc file contains a mesh and not just the hair. Check the blender export instructions.

After importing the Alembic file, a lone Groom UAsset should appear.
Create a blueprint actor. Add a skeletal mesh. Add a groom component to this skeletal mesh. On that component select the groom asset. Additionally a hair material can be created and assigned. To make this work with a skeletal mesh, a groom binding UAsset must be created between the skeletal mesh and the groom asset. This can be done by right clicking the groom uasset and choosing create groom binding.

Examples of softness I hope to achieve with modern techniques (performance and quality):

https://youtu.be/j6s9PxJsYKw?t=581

ArtStation - Orange Tabby long hair walk cycle

ArtStation - Pleasant Times

I know out of the box settings are not magically making art :slight_smile: let’s discuss it. Like how far can we push the groom hair system, how to make it perform on a ridiculous amount of hairs that are on an actual cat?

:wave:

Ok, I thought people used this groom system :slight_smile:

:wolf:

I used the basic shader setup from the unreal docs (results a bit “meh”, not artistic) and learnt that a few of the features I had in mind are not compatible with one another (forward shading + lumen + msaa + groom). It’s a bit of a time waste to figure that out by trial and error but I don’t like sitting still.

Hair Rendering | Unreal Engine 4.27 Documentation

[UE5.2, Bug Report] MSAA glitches on Groom hair.

Still hoping to discuss more artistic, compatible, performant solutions for fur on modern standards.

bump :cat: :dog: :wolf: :unicorn:

:headstone: