Creating realistic digital hair and fur remains a challenge for game developers

EA group Frostbite introduces their Strand approach to realistic hair. It’s scary to think of all the things needed to render hair.

Hair. We all have it, some more than others. Regardless, it never behaves. We cut, color it, weave and wave it, shellac it, grease and shine it—some even iron it. And still, it just doesn’t look right. If it looks bad and unruly in real life, imagine how it looks in a simulation. It either looks like a plastic hat or a rag-doll’s head.

The reason is the average person has about 100,000 hairs on their head at one time. Each one of them reflects and refracts light. Each one is a different shape, and none of them stay stationary or are in the same place over time. An almost infinite number of normal, with a 30-bit color palette, bouncing or blowing about every second. And, as if that wasn’t enough, natural oils and applied products are constantly changing the surface and its color.

About seven years ago AMD introduced TressFX and it was used by Crystal Dynamics to create realistic real-time simulated hair for Laura in the 2013 version of Tomb Raider. Revolutionary at the time, it looked good, not great, but better than anything before it. It also took a lot of FLOPS to render.

AMD’s breakthrough with Tressfx is that it created more individual hairs with independent movement so hair moved more freely and not like Laura hadn’t washed her hair in a month or so.

The following year Nvidia introduced its HairWorks which was employed in The Witcher 3: Wild Hunt.

Nvidia introduced Hairworks to counter AMD’s TressFX and more than anything underlines how hard it is to get hair right.

Because of the computational load, the feature was not promoted and fell out of use, and offered as an option that most gamers turned off.

And then in the fall of 2020, EA’s Finnish-based Frostbite group (developers of the DICE game engine) introduced Strand Hair. In a recent blog, “Frostbite Hair Rendering and Simulation,” the developers described the current practices in the game industry using “hair cards” to represent a head of hair. Hair strands are generated in a digital content creation tool, meshes are modeled to represent the strands. The hair cards will then be textured by projecting the strands onto them.

Game developers use hair cards to simulate hair: the right-hand side picture shows the meshes onto which the strands have been projected. On the left-hand side picture, it’s relatively easy to notice that strands have been grouped together on the surface of a card by the projection.

According to the blog post: “The higher the number of meshes, the better the illusion of simulating and rendering a real head of hair will be, but the more expensive the asset will be. Using hair cards is relatively cheap computationally, but reaching high quality in either rendering or simulation is difficult and can be extremely time-consuming for the content creators.”

Instead of hair cards, Frostbite turned to strand based hair and NURBS. Simulation and rendering are performed on individual strands. It’s still challenging. Frostbite’s researchers found they had to create at least 10,000 strands to get realistic hair—but it’s easier for game developers to model strands than to work with hair cards. Strands are imported strands into Frostbite’s engine as NURBS. The data pipeline creates a set of points uniformly positioned along each strand to represent the curve (i.e., tessellation). A high number of points along the curve will increase the quality of the simulation, but computational loads will rise. The tessellation is configurable per asset, and in long hair, most strands have 25 points per strand.

In December 2020, EA/Frostbite showcased their work in physics and rendering technology at the Digital Dragons 2020 virtual conference that has made EA’s “strand hair” simulations possible. The technology vastly improves simulation and visual quality, and allows better workflows for artists compared to previous methods.

EA showed the result of Strand Hair in their FIFA 21 soccer game. The new hair rendering tech that is available in FIFA 21 is just stunning to look at. Every single strand of hair moves and sways in a realistic manner thus creating a more immersive experience for the end-users.

You can see a dramatic, and dynamic example of hair in action in this tweet from Digital Foundry:

EA’s Frostbit Strand hair as employed in FIFA 21. (Source Digital: Foundry)

The superiority of FIFA 21 showcases Frostbite engine’s Strand Hair Technology. Hair on select players is vastly upgraded, adding physics on each hair strand to give life-like results.

What do we think?

The combination of clever algorithms and ever-increasing computational power (FLOPS) in GPUs and CPUs brings us closer every year to more realistic real-time computer games. Hair and fur are one of the final frontiers in the race for total immersion. A fast-action game like FIFA with multiple players on the field is probably the worst-case test for a hair simulation. It looks like Frostbite is there, and on a console at that.