http://physxinfo.com/news/12197/introducing-nvidia-hairworks-fur-and-hair-simulation-solution/Real-time simulation and rendering of realistic hair/fur, consisting of multiple strands, is gettng much attention these days – one can easily name a TressFX solution, developed by AMD.
A competitive response from NVIDIA, new hair and fur simulation technology, which is now officially called NVIDIA HairWorks, was firstly showcased at The Witcher 3 presentation half a year ago and recently used in an actual game title – Call of Duty: Ghosts – to provide “Dynamic Fur” simulation for animal characters.
In comparison to other GPU accelerated physics features, Dynamic Fur was implemented through DirectCompute, which opens it for AMD users as well.
Tae-Yong Kim, physics programmer at NVIDIA, has agreed to answer some of our questions about HairWorks solution in general, and Call of Duty: Ghosts integration in particular.
PhysXInfo.com: Dynamic Fur has recently debuted in the Call of Duty: Ghosts title. What can you tell us about this technology?
Tae-Yong Kim: NVIDIA HairWorks originates from multiple simulation and rendering technologies that NVIDIA has developed in the past. This combines rendering technologies for human hair (shown back in 2008 at GDC as part of directx SDK sample) and various simulation technologies shown in multiple events (most recently, the Apex Fur demo in GDC 2012).
To make the hair/fur technologies a product, NVIDIA engineers have put together these existing technologies as well as adding new techniques to deal with deforming animal character and to make sure the whole authoring pipeline goes smoothly for multiple types of fur and characters.
Early results of Hair and Fur simulation research
The fur tech was first demoed at E3 2013 for Witcher 3 wolf creature and has been tested and refined through multiple game engagements including Call of Duty Ghosts, Witcher 3, and others.
The underlying solver is based on algorithms that were published in 2012, but have evolved into a full production ready solver that includes shape preservation, anti-stretching, various dynamic force and inertia controls, multiple GPU skinning supports, etc.
PhysXInfo.com: What are the capabilities of the engine? Can it simulate anything besides fur?
Tae-Yong Kim: The solver can simulate any line/curve geometry such as fur, hair, grass, etc. However, most emphasis so far has been put on fur, and we are still expanding its capability for other types of objects. Currently, it has some simple collision support, but we plan to add more robust collision handling against deformable character mesh in the future.
It also supports wind and various grooming functions such as stiffness, waviness, clumping, length variation etc. through various texture map supports. Combining all these parameters, users are able to simulate wet fur, dry fur, and even transitioning between those.
It is currently implemented as GPU only feature.
PhysXInfo.com: Let’s talk about graphical side of the HairWorks tech. How hard is to render realistic fur or hair?
Tae-Yong Kim: Rendering realistic fur basically requires dealing with huge amount of data (e.g. half million hairs for the CoD characters) in every step of rendering pipeline. We heavily utilized and optimized the rendering algorithms with DX11 tessellation features that allow us to dynamically create most hairs on the fly in the GPU without requiring too much memory for both CPU and GPU.
The tessellation feature is also very useful for LOD control where we can dynamically vary density of hairs depending on game environment.
Once hairs are generated and tessellated, we further modify the shape (e.g. tapering hair width toward the tip) and compute shadows and shading on each hair strand. Special attention has been paid to making sure that hair shading matches underlying skin shading.
PhysXInfo.com: What does it take to create a proper hair/fur asset? Does HairWorks module already have some kind of authoring pipeline in place?
Tae-Yong Kim: Our pipeline doesn’t different all that much from traditional Visual Effects. We provide a series of guide curves, growth mesh, and some textures to control the various attributes. The guide curves can be authored with 3rd party tools, e.g. Shave and a Haircut for Maya or the built in 3dsmax Hair and Fur modifier.
nVidia's answer to TressFX and I don't have COD: Ghosts but should invest in it.