RTX Character Rendering implements techniques used for rendering realistic human hair and skin.
RTX Character Rendering implements two hair shading techniques, the traditional near-field Chiang BSDF [ Chiang15 ], and a novel far-field analytical approach developed by the Omniverse team. It also includes an optimized, high-fidelity morph target animation system for realistic hair animation. For more information on that solution and how to integrate it, please check the RTX Character Rendering Hair Guide.
RTXCR introduces a novel hair data structure called Linear-Swept Sphere (LSS). It delivers high performance in tracing and BVH updates while maintaining exceptionally low memory consumption. Additionally, it enables SOL tracing using the LSS Hardware Intersector on 4th-generation Ray Tracing Cores in Blackwell GPUs. For other RTX GPUs, we provide a fallback solution known as Disjoint Orthogonal Triangle Strips (DOTS), which replaces traditional triangle-based strands. For more details, check our LSS Technical Blog.
For skin, RTX Character Rendering implements a combined subsurface scattering solution which extended SOTA Burley Diffusion Profile [ Burley15 ] with a single scattering term. This provides better support for both backward scattering from diffusion profile and forward transmission from single scattering. For Technique Details and integration, check RTX Character Rendering SSS Guide.
| Directory | Details |
|---|---|
| /docs | Documentation for showcased tech |
| /external | Helper dependencies and framework used for the samples |
| /assets | Assets and scene definitions |
| /samples | Samples showcasing usage of RTX Character Rendering |
| /libraries | Binaries, src, includes for RTX Character Rendering |
- Pathtracer (default): showcases the most common use case - a pathtracer that relies on RTX Character Rendering to show the hair and skin techniques, including the hair BCSDF/BSSRDF evaluation, importance sampling and denoising (DLSS-RR/NRD).
For more details of running sample, check RTX Character Rendering User Guide.
RTX 20 series or newer. Radeon RX 7000 Series or newer. Intel Arc Series. | Driver ≥ 580.88 | CMake v3.30.0 | Git LFS | Vulkan SDK 1.4.313.2 | Windows SDK ≥ 10.0.22621.0
-
To get started, clone the repository along with all submodules:
git clone --recursive https://github.com/NVIDIA-RTX/RTXCR.git
If the repository was cloned without submodules, update them separately:
git submodule update --init --recursive
There are three ways to build and run the sample. Choose the method that best suits your workflow.
If you only need to build and run the sample without modifying the code:
-
Run the
build.batscript.- For AMD or Intel users, include the
-disableStreamlineparameter to disable Streamline.
- For AMD or Intel users, include the
-
Once the build completes successfully, execute
run.batto launch the application.
If you want to inspect or modify the code in Visual Studio:
-
Run the
generateSolution.batscript to generate a Visual Studio solution. To automatically open the solution after generation, add the-vparameter.- For AMD or Intel users, include the
-disableStreamlineparameter to disable Streamline.
- For AMD or Intel users, include the
-
We recommend selecting the
RelWithDebInfosolution configuration and building the project in Visual Studio to achieve the best balance between performance and debugging capabilities. -
Run the application from within Visual Studio.
If you prefer configuring the solution manually:
-
Assuming that the RTXCR SDK tree is located in
D:\RTXCR, open CMake GUI and set the following parameters:- "Where is the source code" to
D:\RTXCR - "Where to build the binaries" to
D:\RTXCR\build
- "Where is the source code" to
-
Click "Configure", set "Generator" to the Visual Studio version you're using, set "Optional platform" to x64, click "Finish".
- The data assets used for the sample will be automatically downloaded to the
/assetsfolder in this step. - For AMD or Intel users, untick the "USE_VK_STREAMLINE" option in the CMake GUI to disable Streamline.
- The data assets used for the sample will be automatically downloaded to the
-
Click "Generate", then "Open Project".
-
We recommend selecting the
RelWithDebInfosolution configuration and building the project in Visual Studio to achieve the best balance between performance and debugging capabilities. -
Open the
RTXCR.slnin the/buildfolder. -
Build and run the application using Visual Studio.
Animation is not enabled by default. To run the animation, you can either:
-
From the command line:
run.bat -enableAnimation 1 -scene claire.animation.scene.jsonor add-enableAnimation 1 -scene claire.animation.scene.json -
From Visual Studio:
- Go to the Debugging tab under your project properties.
- Add the following to Command Arguments:
-enableAnimation 1 -scene claire.animation.scene.json
LSS reduces memory usage by up to 38% and improves frame rate by 30% compared to traditional PolyTube geometry.
See detailed profiling data and analysis in the LSS (Linear Swept Spheres) Performance Analysis.
RTXCR is actively being developed. Please report any issues directly through the GitHub issue tracker. For any information or suggestions, contact us at rtxcr-sdk-support@nvidia.com
If you use RTXCR in a research project leading to a publication, please cite the project.
BibTex:
@online{RTXCR,
title = {{{NVIDIA}}\textregistered{} {RTXCR}},
author = {{NVIDIA}},
year = 2025,
url = {https://github.com/NVIDIA-RTX/RTXCR},
urldate = {2025-02-06},
}See License.txt
[1]A practical and controllable hair and fur model for production path tracing, MJY Chiang, B Bitterli, C Tappan, B Burley Computer Graphics Forum 35 (2), 275-283 | Paper Link
[2]Approximate Reflectance Profiles for Efficient Subsurface Scattering. Per H. Christensen, B Burley.“An approximate reflectance profile for efficient subsurface scattering.” ACM SIGGRAPH (2015): 1-1 | Paper Link
