9 Replies Latest reply on Oct 26, 2015 9:28 AM by erin.maiorino

    TressFX: Q&A with Nick Thibieroz

    erin.maiorino

      Hello Everyone!

       

      Our hair is perfectly coiffed and we are now ready for your AMD TressFX questions for Senior Manager - Gaming Engineering, Nick Thibieroz. Please keep in mind this thread will be open for two hours (2PM - 4PM CT). After the session is complete, we will compile all your questions and give them to Nick to answer. You can expect your on-topic TressFX questions to be answered in this thread in approximately 24 hours. We can't guarantee all questions will be answered, but we'll do our best!

       

      Post away!

       

       

      EDIT 10/22 @ 4:08PM: Thanks for the questions! I am now locking the thread; look for the answers tomorrow!

        • Re: TressFX: Q&A with Nick Thibieroz
          kbit

          Will TressFX be portet on OpenGL or Vulkan?

          How to implement TressFX?

            • Re: TressFX: Q&A with Nick Thibieroz
              erin.maiorino

              Will TressFX be portet on OpenGL or Vulkan?

              Explicit graphics APIs such as DirectX 12 or Vulkan provide interesting features that benefit memory-crunching, compute-intensive graphics techniques such as TressFX. It is not unreasonable to expect a TressFX port to either of those APIs in a not-so-distant future

               

              How to implement TressFX?

              As a developer all you have to do is head to the Radeon SDK page of the AMD Developer website, download the TressFX SDK sample and start coding! Full source code is included so that you can learn from the technique and take the bits you need for an integration. We have an updated version of TressFX in the works (version 3.0) that we will be releasing soon.

               

              - Nick

            • Re: TressFX: Q&A with Nick Thibieroz
              lemons

              Some questions:

               

              - Since I have a R9-380, What Impact I get if I enable this technology?

              - Is it possible use this technology with a APU A10-7850K?

              - Beside TR, we will have more games using TRESSFX? Is it possible in the future use this technology when playing some MMORPG? (With a lot of players in the same area)

              - In the worst case, is it possible dedicate a VGA only for this function? Like PhysX do.

                • Re: TressFX: Q&A with Nick Thibieroz
                  erin.maiorino

                  Since I have a R9-380, What Impact I get if I enable this technology?

                  A Radeon R9 380 is actually close to the specifications of the GPU the effect was originally developed on. Since then AMD and our partners have made significant improvements to the technique so that it runs even faster than before. Depending on the implementation you may see some slow-downs at extreme close-ups but otherwise your GPU is fully able to render the effect at full performance.

                   

                  Is it possible use this technology with a APU A10-7850K?

                  Yes! I actually have it running on my laptop which is based on an older Richland APU that is less powerful than the AMD A10-7850K (which is based on a Kaveri APU). The SDK sample mentioned above will run on this APU however performance may struggle with more visually-intensive implementations of TressFX (such as ones found in games). The good news is that both AMD and game studios keep improving the performance of this effect, which ultimately makes it more accessible to a wider range of GPUs.

                   

                  Beside TR, we will have more games using TRESSFX? Is it possible in the future use this technology when playing some MMORPG? (With a lot of players in the same area)

                  In addition to Tomb Raider the game Lichdom: Battlemage uses TressFX on both the main player characters. The upcoming Deus Ex Mankind Divided uses an updated and modified version of TressFX to render Adam Jensen’s hair. A recent interview of Rise of the Tomb Raider’s game director Brian Horton mentions several improvements to the technology that was pioneered in Tomb Raider.

                   

                    Other game projects using the technology are being developed but nothing I can announce at this stage.
                  Rendering multiple characters with TressFX is possible, but will be subject to LOD (Level of Detail) management techniques to ensure performance remains high.

                   

                  In the worst case, is it possible dedicate a VGA only for this function? Like PhysX do.

                  While dedicating a separate GPU to handle the simulation part of TressFX is definitely possible it is worth noting that the rendering of hair strands normally occupies the largest part of the total workload. A more appealing optimization (that does not require an additional GPU) is to take advantage of the asynchronous compute feature exposed in DirectX 12 and Vulkan. On those APIs TressFX simulation workload can be executed on a dedicated compute queue that runs concurrently to other graphics work, effectively “hiding” the cost of simulation and improving the performance of the effect as a whole.

                   

                  - Nick

                • Re: TressFX: Q&A with Nick Thibieroz
                  jamesc359

                  TressFX looks great for hair, fur and grass, but could it now or eventually be used for anything else? Fabrics or water for example.

                  What's the biggest difference between TressFX and NVidia's Hairworks? What are the advantages of TressFX?

                  I can only think of two games that are using TressFX - Tomb Raider and the new Deus Ex. Are there any more in the works?

                    • Re: TressFX: Q&A with Nick Thibieroz
                      erin.maiorino

                      TressFX looks great for hair, fur and grass, but could it now or eventually be used for anything else? Fabrics or water for example.

                      The rendering part of TressFX is very specific to the rendering of translucent thin geometry so it couldn’t be easily re-used for other types of materials. The simulation part however can be adapted to other usages since it implements physics constraints (edge length constraints, local shape constraints etc.) that are typically found in other types of simulation scenarios.

                       

                      What's the biggest difference between TressFX and NVidia's Hairworks?

                      The biggest difference is that AMD provides the full TressFX source for free to developers so that they can modify, optimize, improve and learn from the effect when integrating it into their game titles. We’re seeing the result of this open policy with the amazing TressFX improvements that Crystal Dynamics and Eidos Montreal have been working on in some of their titles.

                       

                      In sharp contrast NVIDIA has chosen to hide the Hairworks implementation in a pre-compiled library for which no source is provided, preventing developer innovation and forcing all players to run code that developers have no ability to optimize.

                       

                      There are also significant algorithmic differences between TressFX and Hairworks. For example TressFX does not use hardware tessellation at all since doing so on thousands of thin, elongated geometries is inefficient on all GPUs (regardless of vendor). TressFX also uses per-pixel linked lists as an OIT (Order Independent Transparency) solution for anti-aliasing and translucency sorting of hair strands which provides the best quality possible. On the other end of the spectrum NVIDIA Hairworks uses heavy amounts of tessellation combined with MSAA (MultiSampling Anti Aliasing) rendering and no OIT.

                       

                      What are the advantages of TressFX?

                      In addition to the developer-friendly source sharing approach mentioned above I’m pleased to say that the technical decisions made by the TressFX development team have resulted in the best-looking and fastest real-time hair rendering implementation seen in games. Our competitor’s solution is visibly inferior while costing more performance – even on their own hardware! On a personal level I’m particularly pleased to see how game studios are able to improve and further optimize TressFX technology to accommodate new features or platforms.

                       

                      I can only think of two games that are using TressFX - Tomb Raider and the new Deus Ex. Are there any more in the works?

                      [Note from Erin: This is a repeat of a question above, below is a repeat of Nick's previous answer]

                       

                      In addition to Tomb Raider the game Lichdom: Battlemage uses TressFX on both the main player characters. The upcoming Deus Ex Mankind Divided uses an updated and modified version of TressFX to render Adam Jensen’s hair. A recent interview of Rise of the Tomb Raider’s game director Brian Horton mentions several improvements to the technology that was pioneered in Tomb Raider. Other game projects using the technology are being developed but nothing I can announce at this stage.

                       

                      - Nick

                       

                       

                    • Re: TressFX: Q&A with Nick Thibieroz
                      untamedloli

                      Are there any plans for TressFX in Unreal Engine 4? Even if it were just an AMD fork of the engine on github with it implemented.

                       

                      There was someone on the UE4 forum working on it with Jason Stewart previously but its since been abandoned. Unreal Engine Forums