NVIDIA Texture Tools 3

Create block-compressed textures and write custom asset pipelines using NVTT 3, an SDK for CUDA-accelerated texture compression and image processing.

NVTT 3 can be used to compress textures to and from block-compressed formats including BC1-7 and LDR ASTC, which stay small both on disk and in GPU memory. Or use its image processing functions, like mipmapping and convolution, as part of a custom app or asset processing pipeline. CUDA-accelerated operations speed up processing significantly, with CPU fallbacks for maximum compatibility.

NVTT 3 exposes a quick and powerful API (a C++ command-line compressor using it fits in 250 characters) and a C wrapper for use with other languages. The library is a reliable component within NVIDIA, and already fully integrated in technologies including Omniverse, the Texture Tools Exporter, and more.

nvtt3-quads-crop-4k.jpg

What’s New in NVTT 3

nvtt3-codesample-dark.png

New APIs

Compress textures entirely within GPU memory with the new On-The-Fly API. 200+ functions are available from both C and C++.

cuda-acceleration.png

Comprehensive CUDA Acceleration

NVTT 3 adds CUDA compression for BC4-BC7 and ASTC, most image processing operations, and GPU device selection.

marbles-astc-repeat.png

Adaptive Scalable Texture Compression

Scalably compress textures for Tegra GPUs, from 8 bits per pixel with BC7-like quality, to as compactly as 0.89 bits per pixel.

Download NVTT 3

Windows

The NVTT 3 SDK is packaged with the NVIDIA Texture Tools Exporter.

Operating SystemWindows 10, 11 (64-bit only)
RequirementsC++ API: MSVC toolset v14x
C API: Compiler supporting at least C99 and dynamic linking

Linux AArch64

On Linux, the NVTT 3 SDK is packaged by itself.

Operating SystemUbuntu 18.04+ or similarly compatible distro
Requirementsglibc version 2.27 or higher
libc.so version 6 or higher
C++ API: Compiler ABI-compatible with g++ 5.4.0
C API: Compiler supporting at least C99 and dynamic linking

Linux x86_64

On Linux, the NVTT 3 SDK is packaged by itself.

Operating SystemUbuntu 16.04+, CentOS 7, or similarly compatible distro
Requirementsglibc version 2.2.5 or higher
libc.so version 6 or higher
C++ API: Compiler ABI-compatible with clang 8.0.1
C API: Compiler supporting at least C99 and dynamic linking

Resources

Online Tutorials and Samples

Tutorials and samples for NVTT3, including reimplementations of some of the tools shipping with NVTT 3, are available at https://github.com/nvpro-samples/nvtt_samples.

Full Documentation

Documentation for every function in NVTT and a getting started guide are available as part of the NVTT 3 package, starting from docs/index.html.