Health of Hair in Games *split hairs*

Agree, but on the other hand it's embarrassing we still have no long hair in games.
I think this could work for hero characters:
Use a low res volume around the head (16 or 32 ^ 3)
Simulate a small number of hairs (200 per head, 60 segments each)
Propagate simulated velocities to the grid.
Use that to update a larger number of more hairs (so interpolating simulation like Frostbite proposed - maybe they do it this way, did not pay attention)
Extrude a quad skirt from each hair and use usual card hair tech for rendering. Volume could provide occlusion.
I'm thinking of something completely different. although I don't know how it'd be executed in a GPU. In real terms, hairs can always be drawn as thin-lines no matter what distance, so you could simulate a volume with something fluid-dynamicy, and use that as a mathematical basis for drawing lines through this volume.
 
Based on it running at 30fps on a 2080, that type of hair is probably limited to Catwalk Model II: Stilleto Turbo Edition.
you need to sacrifice to have Pantene hair.

Still, when I played Tomb Raider on my laptop with a 1050Ti -now I only play on my desktop computer with a GTX 1080-, I disabled everything that made the game hit the 60fps mark save for the hair stuff. It's very well done in Tomb Raider, in fact I find it an essential feature, once you enable it, you don't want to disable it.
 
I'm thinking of something completely different. although I don't know how it'd be executed in a GPU. In real terms, hairs can always be drawn as thin-lines no matter what distance, so you could simulate a volume with something fluid-dynamicy, and use that as a mathematical basis for drawing lines through this volume.
Sounds not so different. We share the idea to trace hair through a volume, just like in this Unity demo. (I know this is fast - on meshes i used very simple midpoint euler integration to trace curve trajectory and linear barycentric interpolation of the vertex vector field - no need for expensive bicubic filter, simple 3D texture lookup would work.)
Maybe drawing many lines in compute is just as fast as using less lines and extruding them to a quad strip, for sure it would not look like Medusa at least. :)

But you can not do it with fluid dynamics alone, because it lacks constraints like preserving the length of a hair or bending resistance.
Thus my proposal to simulate a few guide hairs with those constraints, and then fill the volume with guide hair segment direction vector. Really fast and no expensive fluid solver necessary (can't saturate so async or on CPU).

So far the only expensive part is lighting and rendering... thinking of it, drawing lines might be indeed less complex and faster, IDK.
I'm also unsure if it needs self collision or if hair tends to 'stick together' like fluid? If so, fluid dynamics could help i guess.


I remember one scene at the beginning of Tomb Raider reboot. She was hanging upside down from the ceiling, but the pony tail did not hang down, it sticked upwards at her sholders. This really looked bad.
So either let the center of volume swing at half hair length from the head, or make the volume twice as large just to support such cases or swimming under water.
 
hair was not bad at all in RE2make and DMC5
Looks great. Guess at this detail only in cutscenes?
Seems just simulating a cards mesh. If this works for long female hair too, i would be happy with that and avoid more complicated tech, but i doubt it.
 
Triangles for lines is plain dumb. ;) There should be hardware drawing for lines, for things like cables, fences, and hair.

The raytracer RealSoft 3D could compute and trace or rasterise curves with width, colour, displacement, etc. It was just damned slow as it ran on the CPU. As it's a fundamentally different drawing requirement to objects and surfaces though, I think it should be dealt with differently. I guess we'd be looking at a computer-based line drawing as you suggest, but I don't know that compute is ideally set up for that. Although it should be way better than triangles!

IIRC, isn't TressFX entirely shader/compute based? In theory with enough compute you could do hair however you want. I guess the biggest problem is having it be efficient enough to be use in a game with all game systems running.

I haven't followed it enough to know why it isn't used in more games. Perhaps because it's too taxing on current gen consoles and on PC NV devel is much stronger than AMD.

Regardless, in the games that used it or modified versions of it, it has been really impressive. Maybe we'll see it used more in the next console gen.

Regards,
SB
 
On PC, the only broad option we have is HairWorks, it used to work through CUDA, but then NVIDIA translated it through DirectCompute, it's it's done using Tessellation, it's real focus nowadays is simulating fur on multiple animals, human hair is rarely simulated. It was used for only 5 games:

-The Witcher 3 (fur and hair)
-Call Of Duty Ghosts (fur)
-Far Cry 4 (fur)
-Final Fantasy 15 (fur)
-Metro Exodus (fur)


TressFX was made by AMD through Compute as well, it was used mainly for hair in two games:

-Tomb Raider 2003
-Lichdom Battlemage

It was then modified by developers into a tech called PureHair (a dumbed down version that can work on consoles), it was used in three games:

-Rise of Tomb Raider
-Shadow of Tomb Raider
-Deus Ex Mankind Divided

Horizon Zero Dawn also modified TressFX into something else that suited their engine and target platform.

Work with my collegues at code, rigging and shading to implement our own version of TressFX for Aloy. As this system had only been used for high-end PC games before, we had to overcome a series of technical difficulties to have approximately 50 fully dynamic splines drive a game mesh of 100k tris at 3-5ms at 30fps on a PS4.

https://cargocollective.com/Lithvall/Horizon-Zero-Dawn
 
I think that if next gen games simply sprinkle a few strands of individually simulated hairs on top of the classic ribon cards system, that would be enough to fool us into thinking the whole hair is properly simulated at an individual level. That plus the density and number of cards inevitably continuing to increase.
 
Personally, I just want to be able to brush Aloy's hair at the campfires. A My Little Aloy would be so.....therapeutic, especially after fighting a T-Rex.
 
Why you got to make T-Rex the villain?
 
Sounds not so different. We share the idea to trace hair through a volume, just like in this Unity demo. (I know this is fast - on meshes i used very simple midpoint euler integration to trace curve trajectory and linear barycentric interpolation of the vertex vector field - no need for expensive bicubic filter, simple 3D texture lookup would work.)
Maybe drawing many lines in compute is just as fast as using less lines and extruding them to a quad strip, for sure it would not look like Medusa at least. :)

But you can not do it with fluid dynamics alone, because it lacks constraints like preserving the length of a hair or bending resistance.
Thus my proposal to simulate a few guide hairs with those constraints, and then fill the volume with guide hair segment direction vector. Really fast and no expensive fluid solver necessary (can't saturate so async or on CPU).

So far the only expensive part is lighting and rendering... thinking of it, drawing lines might be indeed less complex and faster, IDK.
I'm also unsure if it needs self collision or if hair tends to 'stick together' like fluid? If so, fluid dynamics could help i guess.


I remember one scene at the beginning of Tomb Raider reboot. She was hanging upside down from the ceiling, but the pony tail did not hang down, it sticked upwards at her sholders. This really looked bad.
So either let the center of volume swing at half hair length from the head, or make the volume twice as large just to support such cases or swimming under water.

All just sounds like the raymarched LOD already presented last year, which seems to work very well: https://anteru.net/files/2019/rthhr.pdf

I'd suspect a compact neural net might be a much better fit for sim though, no performance screeching fluid dynamics at the cost of extra ram and "good enough" results sounds well worth it.

Combined with advances in hair brdf, hopefully that neat fur brdf will translated to some realtime hack soon, perhaps hair and fur won't look like either a flickery, noisy, stiff mess of planes or a weirdly soft and fuzzy volumetric look of fins and shells come this next generation.
 
Personally, I just want to be able to brush Aloy's hair at the campfires. A My Little Aloy would be so.....therapeutic, especially after fighting a T-Rex.
Kinect killer app

Or ps camera killer app? It already allow you to touch stuff in the playroom app
 
Sorry Haven't found a proper topic but but as this is related to hairwork technology ad new consoles and next gen features are coming I wished we would see more of this " fur " , " hair " physics for next gen. I remember Nvidia having this exclusive hairwork technology but I wished it was not exclusive.
We have seen lots of good exemples like Alloy Hair in HZD. and I hope we will see more of this for the next upcoming next gen games.
The last game which featured such a great " fur " " hair " effect, I saw was the black myth wukong trailer with the wolf (last gif)

ibsjECZcZZqVuE.gif

FCMZJaP.gif

2e0d9d0df149357cf617e3557827bafdb66a9a2e.gifv
 
I must admit even when I had GPUs where I could enable this stuff I wasn't enamoured of the look, especially the fur stuff it always made animals look like they were about to parade for the judges at Crufts with lovely fluffy manes. I found the traditional textures often grounded the model in the game world better than the better looking fur tech, I hesitate to point to the water buffalo in the GIF from Far Cry 4 as I'm sure GIF encoding is at least partially responsible for why the hair shader buffalo looks like a stippled mess.

Edit: What I will point to is the fur on the buffalo's stomach, the hair shader has it as beautiful fluffy strands waving under their belly whereas the texture has them looking matted and dirty as they should do for an animal that spends a decent chunk of it's day half submerged in muck
 
Last edited:
Back
Top