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.

What’s New in NVTT 3

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

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

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
Linux x86_64
On Linux, the NVTT 3 SDK is packaged by itself.
Operating System | Ubuntu 16.04+, CentOS 7, or similarly compatible distro |
Requirements | glibc 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.