NVIDIA Texture Tools Exporter
The NVIDIA Texture Tools Exporter allows users to create highly compressed texture files - that stay small both on disk and in memory - directly from image sources using NVIDIAâs CUDA-accelerated Texture Tools 3.0 compressor technology.
This exporter combines four texture tools in a single plugin and standalone application, including flexible and powerful support for cube maps, mipmaps, normal maps, transparency, and more than 130 import formats. A new compression preview pane allows you to see how your image will be compressed in real-time, without having to write to disk.
NVIDIA Texture Tools Exporter standalone showcasing a cube map reflection
These tools are ideal for artists and graphics engineers looking to save texture memory and reduce the size of their applications or fit more or higher-resolution textures into the same space. For instance, game developers can use this to reduce the size of the games they create - or realistic rendering and digital content creation developers can use this to fit higher-resolution textures in memory.
Reduce application sizes
Compress textures down to a third of their original size. Or use this to fit more detailed and varied textures into memory
High-quality image processing
Generate mipmaps using linear-space colors and premultiplied alpha, filter normal maps using slope mapping, and more
Modern compression algorithms
Now supports BC6 for HDR textures, BC7 for high-quality compression, and ASTC for scalable compression on Tegra GPUs
Downloads
Standalone Application
Operating System | Windows 10, 11 (64-bit only) |
---|---|
Requirements | NVIDIA CUDA-capable GPU
|
Release Notes
2024.1
- Added min and max filters. These are useful for effects like parallax occlusion mapping.
- Exporter: Added Resize effect.
- Exporter: Added Mitchell-Netravali mipmapping filter.
- Exporter: The âOverride Filter Parametersâ UI now shows the full set of parameters NVTT supports for each resizing filter, along with dedicated names and tooltips for each one.
- Exporter: Added Swizzle effect.
- Exporter: Added --max-mip-count, which sets the maximum number of mipmaps (including the base mip) to generate, and --min-mip-size, which sets the minimum width or size of any mip.
- Exporter: --no-mips now only controls whether mips are read from DDS and KTX files. Previously, it also controlled mip generation. The 2023.3.2 --no-mips option is equivalent to 2024.1âs --no-mips --max-mip-count 1.
- Exporter: Improved GLEW initialization compatibility.
- nvcompress: Fixed a bug where an extra mip would be generated when using --max-mip-count or --min-mip-size.
- nvcompress: Fixed a bug where nvcompress would crash on files whose paths contained emoji.
- nvcompress: Fixed a bug where compressing more than 509 files at a time would fail.
- Fixed naming of NVTT_VERSION fields to make the mapping to semantic versioning clearer. For instance, NVTT 3.2.4 is fork 3, major version 2 (incremented on API breaks), minor version 4 (incremented on new features and bug fixes).
- Added a safer 4-argument overload of `TimingContext::GetRecord()`, which takes the size of the buffer to write the description to, and deprecated the3-argument version.
- Exporter: Updated libwebp to fix CVE-2023-4863/CVE-2023-5129, in which a malicious .webp file could make the libwebp library execute arbitrary code. The Exporter used libwebp via FreeImage; the NVTT library does not use libwebp and was not affected.
- Exporter: Fixed incorrect JPEG decoding due to FreeImage defaulting to an approximate inverse discrete cosine transform (IDCT) instead of a precise IDCT.
- Exporter GUI: Changed the "Compression Quality" header to "Compression Effort" to clarify that higher effort makes compressors search through more blocks and usually take more time to produce better results. In other words, as effort increases, the quality of the output usually increases, but the file size remains the same.
- Exporter: Now supports paths longer than 260 characters.
- Exporter: The DDS writer now sets the DDPF_LUMINANCE flag for L8 textures.
- BC1-BC3: Fixes a bug in 3.2.2 where CUDA compression on Turing GPUs would produce a `cudaErrorIllegalAddress` error.
- Fixes a bug where nvtt::Surface::createSubImage() and nvtt::Surface::diff() did not copy the texture type, alpha mode, wrap mode, or normal flag from their input(s) to their output nvtt::Surface.
- Exporter: If an image causes the Exporter to switch from GPU to CPU compression, the intermediate results are now fully cleared before restarting image processing. This fixes a bug where images loaded on devices with compute capability < 5.0 would display with the wrong color space (which would resolve if the settings were modified).
- Exporter GUI: Fixed bugs in extension autocompletion (for instance, saving a PNG image named "test" adds the .png extension if test.png does not exist).
- BC1âBC3, BC1a: Improved compression quality at Quality::Production|Highest.
- BC7, ASTC: Fixes a bug where images marked opaque would use a transparent compressor, and images marked transparent would use an opaque compressor.
- NVTT: Improved nvcompress' performance on images over 6.25 megapixels.
- NVTT: Added --max-mip-count, --nim-mip-size, and --no-mip-gamma-correct options to nvcompress.
- NVTT: Renamed nvbatchcompress.exe to nvbatchcompress.bat; nvbatchcompress' functionality has been merged into nvcompress.
- Retargeted CUDA dependency to version 11.8.
- Exporter: Added the Edge Pad (Solidify) effect, which smoothly fills transparent areas of images.
- Exporter: Added read and write support for the RXGB BC3 normal map format.
- Exporter: Improved power usage by reducing window draw frequency when idle.
- Exporter: File paths are now stored using Unicode instead of ANSI characters. This fixes a bug where paths with non-ANSI characters would fail to open and print mojibake error messages.
- Exporter: The DDS reader can now successfully read some images where DDS_MIPMAPCOUNT is missing from dwFlags.
- Exporter: Improved DDS reader support for uncommon modes such as D3DFMT_CxV8U8 and DDPF_BUMPDUDV.
- Exporter: Fixed a crash when reading bitmasked DDS files with dwRGBBitCount set to 0 or with subresources between 1 and 7 bytes long.
- Exporter: Fixed a bug where image processing would fail or stall on GPUs with compute capability less than 5.0.
- Exporter: Normal textures now have the DDPF_NORMAL flag set.
- Exporter: Volume textures now have the DDSCAPS2_VOLUME flag set.
- Exporter: The NVIDIA DDS Read Properties window can now be closed.
- Exporter: Invalid --serialized-effects-v1 strings no longer cause crashes.
- Exporter: Fixed a bug where --mip-filter-width would always be written to settings, even when Override Filter Width was unchecked.
- Exporter standalone: Fixed a bug where atlas and cubemap settings would be ignored when reading a command line or preset.
- Exporter standalone: Fixed a race condition where if several dozen nvtt_export instances were started at the same time, they could mistake each other for the installer and refuse to launch.
- Exporter standalone: The --no-mips flag now also makes the DDS reader read only the base mip.
- NVTT: Adds Surface::loadFromMemory(), Surface::saveToMemory(), and CubeSurface::loadFromMemory(). These variants of Surface::load() and Surface::save() work on in-memory data.
- NVTT: Faster compression when using the nvtt::Context API and the nvtt::Surface data is not in VRAM.
- NVTT: Faster GPU BC6 compression.
- NVTT: Fixes a bug where the CPU BC1 compressor would sometimes encode transparent single-color blocks with transparency.
- Exporter: Fixes a bug where DDS cube maps were written with an arraySize 6x the correct number.
- Exporter: Improves OpenGL compatibility by removing usage of glGetTextureLevelParameteriv().
- Exporter: Adds ability to save and load settings in presets. Preset files from the legacy plugin can also be loaded in the current plugin and standalone.
- Exporter: Adds support for volume textures and texture arrays.
- Exporter: Adds unsigned BC6H support.
- Exporter: Adds linear-to-sRGB and sRGB-to-linear effects.
- Exporter: Adds Ctrl-S and Ctrl-O shortcuts for Save and Open.
- Exporter: Statically links with runtime libraries to remove MSVC++ Runtime Library installation requirement.
- Exporter: Fixes a bug where the blue component of tangent-space normals used the entire [0, 1] range instead of [0.5, 1].
- Exporter: Fixes a bug where BC7 was listed twice as an export format.
- Exporter: Modifies window creation to support Windows Sandbox and Remote Desktop.
- Exporter: Avoids showing console window by default.
- Exporter standalone: Adds a pane displaying information about the imported texture.
- Exporter standalone: Improves premultiplication thresholds to avoid brightness shifts when mipmapping 16-bit images with small but non-zero alpha values.
- Exporter standalone: Fixes a bug where .hdr files were clamped to [0,1] on import.
- Exporter standalone: Fixes a bug where calling nvtt_export with an unparseable command line would segfault.
- Exporter standalone: Fixes a FreeImage issue where 1-component .exr files would load blank unless that component was named "Y".
- Exporter standalone: Improvements to FreeImage security.
- Exporter standalone: Interprets ICC v4 color profiles that can't be transformed as linear instead of crashing.
- NVTT: Adds precompiled kernels for Hopper and Ada GPUs.
- NVTT: Adds 16-bit half float (nvtt::ValueType::FLOAT16) as an input to the low-level API.
- NVTT: Faster BC6H GPU compression.
- NVTT: Adds BC3n GPU compressor.
- NVTT: Adds nvtt::SetMessageCallback(). NVTT now reports errors, warnings, and messages through each thread's message callback. In particular, this can be used to detect errors even when a function does not return bool.
- NVTT: Adds nvtt::Surface::gpuDataMutable(). This allows NVTT Surface data to be used with your own custom CUDA kernels, without requiring a const_cast.
- NVTT: Adds unclamped sRGB transfer functions (toSrgbUnclamped() and toLinearFromSrgbUnclamped()). These allow HDR images to be converted to sRGB and back without significant information loss.
- NVTT: Adds toLinearFromXenonSrgb(), the inverse of toXenonSrgb().
- NVTT: Adds nvtt::nvtt_encode() and nvtt::EncodeSettings to the low-level API. nvtt_encode() unifies all low-level compression functions under a single interface, and EncodeSettings can be extended to add new features without breaking the API.
- NVTT: Fixes an out-of-bounds write within the BC2 GPU compressor.
- NVTT: Fixes a bug where the C wrapper and C++ Error enumerations didn't match.
- NVTT: Fixes a bug where the slow-mode BC1 CPU compressor would sometimes output blocks with alpha, if the input had variegated blocks with semitransparent pixels. (Thank you to tgrimmer on the NVIDIA Developer Forums.)
- NVTT: Fixes a bug where nvtt::Surface::toSrgb() turned 1.0 into 0.999999940 instead of 1.
- NVTT: Fixes a bug where nvttContextQuantize() was missing from the C wrapper symbols. (Thank you to mijalko on the NVIDIA Developer Forums.)
- Released the NVTT 3 SDK, the compression library powering the Texture Tools Exporter and many other projects. It is packaged with the Texture Tools Exporter on Windows and by itself on Linux.
- Added Basis Universal texture supercompression, with Rate Distortion Optimization (RDO) for smaller images than before.
- Now uses the nv_ktx library for KTX reading and writing.
- Updated FreeImage to the latest source, fixing several security issues.
- Fixed an issue where images were not tracking premultiplication status.
- Fixed an issue where ICC color profiles were not passed through systems correctly.
- Fixed an issue where colors were not clamped to [0,1] during setup for Image Super-Resolution.
- Fixed an issue where Wrap To Output Range didnât wrap large positive values.
- Fixed an issue where setting the Gaussian Blur radius to a negative number would cause a fallback to CPU image processing.
- Indented the Compression Quality and Scale and Bias sections.
- Improved the error message for attempting to use Image Super-Resolution on a GPU without Tensor Cores.
- Added NGX Super-Resolution effect for Turing+ GPUs.
- Added KTX and KTX2 file format readers as well as support for exporting KTX2 files.
- Added window resizing and high-DPI support.
- Faster, lower-memory image processing.
- Image effects now run on a background thread, making the user interface respond faster with larger images.
- Added Boris Ustaevâs image drag-and-drop UI.
- Fixed an issue where the Photoshop plugin would choose the wrong channel for alpha when the Photoshop file didnât have a background layer and had a user-provided alpha channel.
- Fixed an issue where using two identical GPUs in a non-SLI configuration without a specified CUDA device would lead to image corruption.
- Fixed issues with compressor nondeterminism on cubemap textures.
- Support reading legacy DDS files where dwMipMapCount is 0.
- Updated NVTT to version 3.1.6.
- Both the plugin and the standalone exporter now export using DX9-style DDS headers when they can (i.e. without the DX10 header extension). Added an option to always use the DX10 header extension, which is disabled by default. This should improve compatibility with older DDS readers. The corresponding command-line flag is --dx10.
- Added support for read settings in the plugin. These settings are automatically saved in the registry. If youâve hidden the read settings window, you can re-enable it from the About box.
- Added support in the plugin for reading mipmaps of DDS files as layers.
- Added support in the plugin for reading alpha channels of DDS files as extra channels instead of transparency.
- Added support for reading three nonstandard BC6/BC7 FourCC codes (BC6H, BC7L, and BC7\0).
- Added the ability to read and save images flipped vertically. The corresponding command-line options are --read-flip-y and --save-flip-y.
- Switched to using FreeImage instead of OpenImageIO in the standalone exporter for import and export of non-DDS images.
- BC1a, BC2, and BC3âs Fastest modes now use the GPU for compression.
- Fixed a bug where RGB values of fully transparent pixels (with alpha equal to 0) would be set to 0 as a result of internal premultiplication.
- Fixed a bug where the standalone exporter would read TIFF files without an ICC profile using linear-space instead of sRGB colors.
- Fixed an issue where the standalone exporter would read some file types with inconsistent premultiplied alpha.
- Fixed an issue where the standalone exporter would read PSD files without a specified color profile as if they contained linear colors instead of sRGB colors.
- Fixed an issue where the standalone exporter would interpret some file formats without ICC profiles or specified oiio:ColorSpace values with the incorrect color space.
- Updated credits.
- Fixed an inaccuracy in the tooltips for BC1-BC5, where it talks about how palette elements are distributed between endpoints.
Adobe Photoshop Plugin
Operating System | Windows 10, 11 (64-bit only) |
---|---|
Requirements | NVIDIA CUDA-capable GPU
Adobe Photoshop CC |
Release Notes
2024.1
- Added min and max filters. These are useful for effects like parallax occlusion mapping.
- Exporter: Added Resize effect.
- Exporter: Added Mitchell-Netravali mipmapping filter.
- Exporter: The âOverride Filter Parametersâ UI now shows the full set of parameters NVTT supports for each resizing filter, along with dedicated names and tooltips for each one.
- Exporter: Added Swizzle effect.
- Exporter: Added --max-mip-count, which sets the maximum number of mipmaps (including the base mip) to generate, and --min-mip-size, which sets the minimum width or size of any mip.
- Exporter: --no-mips now only controls whether mips are read from DDS and KTX files. Previously, it also controlled mip generation. The 2023.3.2 --no-mips option is equivalent to 2024.1âs --no-mips --max-mip-count 1.
- Exporter: Improved GLEW initialization compatibility.
- nvcompress: Fixed a bug where an extra mip would be generated when using --max-mip-count or --min-mip-size.
- nvcompress: Fixed a bug where nvcompress would crash on files whose paths contained emoji.
- nvcompress: Fixed a bug where compressing more than 509 files at a time would fail.
- Fixed naming of NVTT_VERSION fields to make the mapping to semantic versioning clearer. For instance, NVTT 3.2.4 is fork 3, major version 2 (incremented on API breaks), minor version 4 (incremented on new features and bug fixes).
- Added a safer 4-argument overload of `TimingContext::GetRecord()`, which takes the size of the buffer to write the description to, and deprecated the3-argument version.
- Exporter: Updated libwebp to fix CVE-2023-4863/CVE-2023-5129, in which a malicious .webp file could make the libwebp library execute arbitrary code. The Exporter used libwebp via FreeImage; the NVTT library does not use libwebp and was not affected.
- Exporter: Fixed incorrect JPEG decoding due to FreeImage defaulting to an approximate inverse discrete cosine transform (IDCT) instead of a precise IDCT.
- Exporter GUI: Changed the "Compression Quality" header to "Compression Effort" to clarify that higher effort makes compressors search through more blocks and usually take more time to produce better results. In other words, as effort increases, the quality of the output usually increases, but the file size remains the same.
- Exporter: Now supports paths longer than 260 characters.
- Exporter: The DDS writer now sets the DDPF_LUMINANCE flag for L8 textures.
- BC1-BC3: Fixes a bug in 3.2.2 where CUDA compression on Turing GPUs would produce a `cudaErrorIllegalAddress` error.
- Fixes a bug where nvtt::Surface::createSubImage() and nvtt::Surface::diff() did not copy the texture type, alpha mode, wrap mode, or normal flag from their input(s) to their output nvtt::Surface.
- Exporter: If an image causes the Exporter to switch from GPU to CPU compression, the intermediate results are now fully cleared before restarting image processing. This fixes a bug where images loaded on devices with compute capability < 5.0 would display with the wrong color space (which would resolve if the settings were modified).
- Exporter GUI: Fixed bugs in extension autocompletion (for instance, saving a PNG image named "test" adds the .png extension if test.png does not exist).
- BC1âBC3, BC1a: Improved compression quality at Quality::Production|Highest.
- BC7, ASTC: Fixes a bug where images marked opaque would use a transparent compressor, and images marked transparent would use an opaque compressor.
- NVTT: Improved nvcompress' performance on images over 6.25 megapixels.
- NVTT: Added --max-mip-count, --nim-mip-size, and --no-mip-gamma-correct options to nvcompress.
- NVTT: Renamed nvbatchcompress.exe to nvbatchcompress.bat; nvbatchcompress' functionality has been merged into nvcompress.
- Retargeted CUDA dependency to version 11.8.
- Exporter: Added the Edge Pad (Solidify) effect, which smoothly fills transparent areas of images.
- Exporter: Added read and write support for the RXGB BC3 normal map format.
- Exporter: Improved power usage by reducing window draw frequency when idle.
- Exporter: File paths are now stored using Unicode instead of ANSI characters. This fixes a bug where paths with non-ANSI characters would fail to open and print mojibake error messages.
- Exporter: The DDS reader can now successfully read some images where DDS_MIPMAPCOUNT is missing from dwFlags.
- Exporter: Improved DDS reader support for uncommon modes such as D3DFMT_CxV8U8 and DDPF_BUMPDUDV.
- Exporter: Fixed a crash when reading bitmasked DDS files with dwRGBBitCount set to 0 or with subresources between 1 and 7 bytes long.
- Exporter: Fixed a bug where image processing would fail or stall on GPUs with compute capability less than 5.0.
- Exporter: Normal textures now have the DDPF_NORMAL flag set.
- Exporter: Volume textures now have the DDSCAPS2_VOLUME flag set.
- Exporter: The NVIDIA DDS Read Properties window can now be closed.
- Exporter: Invalid --serialized-effects-v1 strings no longer cause crashes.
- Exporter: Fixed a bug where --mip-filter-width would always be written to settings, even when Override Filter Width was unchecked.
- NVTT: Adds Surface::loadFromMemory(), Surface::saveToMemory(), and CubeSurface::loadFromMemory(). These variants of Surface::load() and Surface::save() work on in-memory data.
- NVTT: Faster compression when using the nvtt::Context API and the nvtt::Surface data is not in VRAM.
- NVTT: Faster GPU BC6 compression.
- NVTT: Fixes a bug where the CPU BC1 compressor would sometimes encode transparent single-color blocks with transparency.
- Exporter: Fixes a bug where DDS cube maps were written with an arraySize 6x the correct number.
- Exporter: Improves OpenGL compatibility by removing usage of glGetTextureLevelParameteriv().
- Exporter: Adds ability to save and load settings in presets. Preset files from the legacy plugin can also be loaded in the current plugin and standalone.
- Exporter: Adds support for volume textures and texture arrays.
- Exporter: Adds unsigned BC6H support.
- Exporter: Adds linear-to-sRGB and sRGB-to-linear effects.
- Exporter: Adds Ctrl-S and Ctrl-O shortcuts for Save and Open.
- Exporter: Statically links with runtime libraries to remove MSVC++ Runtime Library installation requirement.
- Exporter: Fixes a bug where the blue component of tangent-space normals used the entire [0, 1] range instead of [0.5, 1].
- Exporter: Fixes a bug where BC7 was listed twice as an export format.
- Exporter: Modifies window creation to support Windows Sandbox and Remote Desktop.
- Exporter: Avoids showing console window by default.
- Exporter plugin: Canceling when overwriting a file now restores the old version of the file.
- Installer: Searches for the most recent Photoshop installation in C:\Program Files\Adobe before looking in the registry, to fix an unexpected install location when two versions of Photoshop are present.
- Installer: Fixes a bug where if the selected directory didn't exist, it would warn the user incorrectly that the selected directory already contained something.
- NVTT: Adds precompiled kernels for Hopper and Ada GPUs.
- NVTT: Adds 16-bit half float (nvtt::ValueType::FLOAT16) as an input to the low-level API.
- NVTT: Faster BC6H GPU compression.
- NVTT: Adds BC3n GPU compressor.
- NVTT: Adds nvtt::SetMessageCallback(). NVTT now reports errors, warnings, and messages through each thread's message callback. In particular, this can be used to detect errors even when a function does not return bool.
- NVTT: Adds nvtt::Surface::gpuDataMutable(). This allows NVTT Surface data to be used with your own custom CUDA kernels, without requiring a const_cast.
- NVTT: Adds unclamped sRGB transfer functions (toSrgbUnclamped() and toLinearFromSrgbUnclamped()). These allow HDR images to be converted to sRGB and back without significant information loss.
- NVTT: Adds toLinearFromXenonSrgb(), the inverse of toXenonSrgb().
- NVTT: Adds nvtt::nvtt_encode() and nvtt::EncodeSettings to the low-level API. nvtt_encode() unifies all low-level compression functions under a single interface, and EncodeSettings can be extended to add new features without breaking the API.
- NVTT: Fixes an out-of-bounds write within the BC2 GPU compressor.
- NVTT: Fixes a bug where the C wrapper and C++ Error enumerations didn't match.
- NVTT: Fixes a bug where the slow-mode BC1 CPU compressor would sometimes output blocks with alpha, if the input had variegated blocks with semitransparent pixels. (Thank you to tgrimmer on the NVIDIA Developer Forums.)
- NVTT: Fixes a bug where nvtt::Surface::toSrgb() turned 1.0 into 0.999999940 instead of 1.
- NVTT: Fixes a bug where nvttContextQuantize() was missing from the C wrapper symbols. (Thank you to mijalko on the NVIDIA Developer Forums.)
- Released the NVTT 3 SDK, the compression library powering the Texture Tools Exporter and many other projects. It is packaged with the Texture Tools Exporter on Windows and by itself on Linux.
- Added Basis Universal texture supercompression, with Rate Distortion Optimization (RDO) for smaller images than before.
- Now uses the nv_ktx library for KTX reading and writing.
- Updated FreeImage to the latest source, fixing several security issues.
- Fixed an issue where images were not tracking premultiplication status.
- Fixed an issue where ICC color profiles were not passed through systems correctly.
- Fixed an issue where colors were not clamped to [0,1] during setup for Image Super-Resolution.
- Fixed an issue where Wrap To Output Range didnât wrap large positive values.
- Fixed an issue where setting the Gaussian Blur radius to a negative number would cause a fallback to CPU image processing.
- Indented the Compression Quality and Scale and Bias sections.
- Improved the error message for attempting to use Image Super-Resolution on a GPU without Tensor Cores.
- Added NGX Super-Resolution effect for Turing+ GPUs.
- Added KTX and KTX2 file format readers as well as support for exporting KTX2 files.
- Added window resizing and high-DPI support.
- Faster, lower-memory image processing.
- Image effects now run on a background thread, making the user interface respond faster with larger images.
- Added Boris Ustaevâs image drag-and-drop UI.
- Fixed an issue where the Photoshop plugin would choose the wrong channel for alpha when the Photoshop file didnât have a background layer and had a user-provided alpha channel.
- Fixed an issue where using two identical GPUs in a non-SLI configuration without a specified CUDA device would lead to image corruption.
- Fixed issues with compressor nondeterminism on cubemap textures.
- Support reading legacy DDS files where dwMipMapCount is 0.
- Updated NVTT to version 3.1.6.
- Both the plugin and the standalone exporter now export using DX9-style DDS headers when they can (i.e. without the DX10 header extension). Added an option to always use the DX10 header extension, which is disabled by default. This should improve compatibility with older DDS readers. The corresponding command-line flag is --dx10.
- Added support for read settings in the plugin. These settings are automatically saved in the registry. If youâve hidden the read settings window, you can re-enable it from the About box.
- Added support in the plugin for reading mipmaps of DDS files as layers.
- Added support in the plugin for reading alpha channels of DDS files as extra channels instead of transparency.
- Added support for reading three nonstandard BC6/BC7 FourCC codes (BC6H, BC7L, and BC7\0).
- Added the ability to read and save images flipped vertically. The corresponding command-line options are --read-flip-y and --save-flip-y.
- Switched to using FreeImage instead of OpenImageIO in the standalone exporter for import and export of non-DDS images.
- BC1a, BC2, and BC3âs Fastest modes now use the GPU for compression.
- Fixed a bug where RGB values of fully transparent pixels (with alpha equal to 0) would be set to 0 as a result of internal premultiplication.
- Fixed a bug where the standalone exporter would read TIFF files without an ICC profile using linear-space instead of sRGB colors.
- Fixed an issue where the standalone exporter would read some file types with inconsistent premultiplied alpha.
- Fixed an issue where the standalone exporter would read PSD files without a specified color profile as if they contained linear colors instead of sRGB colors.
- Fixed an issue where the standalone exporter would interpret some file formats without ICC profiles or specified oiio:ColorSpace values with the incorrect color space.
- Updated credits.
- Fixed an inaccuracy in the tooltips for BC1-BC5, where it talks about how palette elements are distributed between endpoints.
On Linux, the NVIDIA Texture Tools 3 are available as a standalone SDK.
Key Features
Compression
- Supports BC1 - BC7 and ASTC texture compression
- CUDA-accelerated texture compressors allow you to compress higher-quality images in less time
- Four compression quality settings
- Reads more than 130 DXGI and ASTC formats
- Real-time compression preview
Cube Mapping
- Create cube maps from 2D images
- Customizable coordinate system conversion for normal-mapped cube maps
- Support for unfolded and linear-format cube maps
Mipmapping
- Mipmap generation: Customizable filtering and color handling
- Mipmap generation: Slope-space mipmapping for normal maps
- Mipmapped alpha cutout correction ensures that alpha cutout textures cover roughly the same area regardless of level of detail.
Normal Maps
- Customizable normal map generation
- 7 heightmap generation methods
- 6 derivative filters
- Export normal maps in tangent-space or object-space
Transparency
- Export textures with premultiplied alpha
- Generate alpha cutout textures with or without dithering
- Linear-space premultiplied alpha image processing
Additional Features
- Automatable workflow: Command-line interface (standalone version) and Actions support (Adobe Photoshop plugin)
- Fast batch scripting support (standalone version)
- Reads images with ICC v4 color profiles
- Supports exporting images with premultiplied alpha applied
- Falls back to CPU when workload exceeds GPU memory
Resources
- Legacy version for Photoshop 5.0 to CS6
- Source Images:
- Compression: autumn_ground_crop_scale_montage.png
- Cube mapping: environ-montage.png
- Mipmapping: mipmapping-montage.png
- Mipmapping video: foliage_68.png
- Normal maps: bricks-montage.png