GPUOpen-Effects / TressFX

DirectX 12 and Vulkan libraries that provide convenient access to realistically rendered and simulated hair and fur
MIT License
795 stars 131 forks source link

AMD TressFX

AMD TressFX

The TressFX library is AMD's hair/fur rendering and simulation technology. TressFX is designed to use the GPU to simulate and render high-quality, realistic hair and fur. The TressFX/Radeon® Cauldron sample is built on top of Radeon® Cauldron, which is an open sourced framework used at AMD for sample creation. It supports both DirectX® 12 and Vulkan® through a custom wrapper layer. For more information about Radeon® Cauldron, or to download the source/examples, please refer to https://gpuopen.com/gamingproduct/caudron-framework/.

With this release we aim to make it easier for developers to integrate TressFX into an existing codebase. Additionally, TressFX 4.1 provides some performance and feature updates compared to TressFX 4.0 including faster Velocity Shock Propagation, simplified Local Shape Constraints, a reorganization of dispatches, new rendering features, extensive documentation and tutorials as well as an updated TressFX Exporter for Autodesk® Maya®.

This release also demonstrates TressFX integration with Epic Games Unreal Engine (4.22), a minimal integration but with multiple TressFX components, features, and rendering and simulation materials to help ease-of-use within Unreal engine. Developers wishing to further the integration or customize it for their own requirements should find this basic level of integration a helpful first step in that process.

Latest release

Highlights include the following:

AMD TressFX

New in TressFX 4.1

*Hair Parameter Blending currently only available under TressFX/Unreal. Please see included documentation for more details.

New in TressFX 4.0

Integrating TressFX

With this release we aim to provide two things:

This is to provide an easy starting point for developers that want to integrate TressFX with their own technology. To that end, this update iterates on the "Engine Interface" that was introduced with TressFX 4.0. Both the renderer and the simulation go through this interface. Developers that wish to implement their own hair rendering solution can use this interface to integrate into their own pipeline. They can use the renderer we provide as a guide. The hair simulation consists of asset loading code and the TressFX compute shaders which should be self contained enough to be integrated into another codebase without substantial changes to the source files. To do this, a developer can implement all necessary functions using our Engine Interface, or replace it with their own calls and data structures (the latter method would be similar to the AMD TressFX/Epic Games Unreal integration, which is tightly bound to Unreal engine architecture).

For more information, please consult the included documentation (for both TressFX/Radeon® Cauldron and TressFX/Epic Games Unreal engine integration).

Prerequisites

** For the Cauldron framework to take advantage of DXIL support across DirectX® 12 and Vulkan®, Shader Model 6 was used. Shader Model 5 should work but was not explicitly tested.

Getting started

Running the demo

Folder Structure

Previous releases

TressFX 4.1 is a substantial change from the prior TressFX 4.0 release. A separate branch for TressFX 4.0 and 3.1.1 has been created for the convenience of users that have been working with TressFX 3.

     

© 2020 Advanced Micro Devices, Inc. All Rights Reserved.

Attribution

Disclaimer

The information contained herein is for informational purposes only, and is subject to change without notice. While every precaution has been taken in the preparation of this document, it may contain technical inaccuracies, omissions and typographical errors, and AMD is under no obligation to update or otherwise correct this information. Advanced Micro Devices, Inc. makes no representations or warranties with respect to the accuracy or completeness of the contents of this document, and assumes no liability of any kind, including the implied warranties of noninfringement, merchantability or fitness for particular purposes, with respect to the operation or use of AMD hardware, software or other products described herein. No license, including implied or arising by estoppel, to any intellectual property rights is granted by this document. Terms and limitations applicable to the purchase or use of AMD’s products are as set forth in a signed agreement between the parties or in AMD's Standard Terms and Conditions of Sale.