Traditionally, hair representation in video games has been sub-par for several reasons. For short hair, hair has often been represented by a detailed texture on a character's skeleton. This makes it difficult to represent hair styles that are not pressed flat against the skull. Longer hair is often represented as a texture on a moving part of a skeleton and thus moves as a multi-jointed appendage. While this hair has more movement than the former, the movement is usually physically unrealistic – the hair moves as one body and movement is very often under or over damped. In order to overcome this, AMD developed TressFX Hair. TressFX Hair models each of potentially thousands of strands of hair individually with dozens of links per strand of hair. Each strand reacts to different physical forces such as gravity, inertia, wind, and the movement of a character's head. This allows the hair to move in a much more physically realistic manner. Because simulating thousands of strands of hair is much more computationally intense than displaying a texture over a character's skeleton, the impact of TressFX Hair on game performance and frame rates may not be trivial. High performance video cards may have enough resources available that the extra effort of rendering hair may produce negligible or acceptable frame rate losses. Conversely, older video cards may spend a large proportion of each frame's render time rendering hair, and this can noticeably reduce game performance. Of course, performance is interrelated with other game settings, resolution, the number of objects with hair to be rendered in the screen, amount of hair per object, and distance from the object.
Versions
Version 1.0
TressFX Hair 1.0 was AMD's first release of this software in. Version 1.0 only offered support for hair and not fur or grass. The first game to use TressFX Hair was the 2013 game Tomb Raider.
Version 2.0
Version 2.0 offers many improvements upon version 1.0 such as:
Continuous Level of detail is designed to improve performance by dynamically adjusting visual detail as TressFX-enabled objects move towards and away from the player's point of view. This is done by rendering fewer hairs when far away from an object but making each hair thicker, thus reducing computational time but maintaining the same look and aesthetic.
New functionality to support rendering for grass and fur in addition to hair.
Hairs are arranged in groups. Hair naturally groups together on a person's head. Renderings produced by TressFX 1.0 however did not do this, and so the hair looks unnaturally separated.
Gravity can be changed on the hair. For example, when swimming hair should be neutrally buoyant and should neither significantly sink nor float. In order to accomplish this, the gravity of the hair can be set to 0.