NVIDIA 纹理工具导出器
借助 NVIDIA 纹理工具导出器,用户可以使用 NVIDIA 的 CUDA 加速纹理工具 3.0 压缩器技术,直接从图像源创建高度压缩的纹理文件,同时在磁盘和内存中保持较小的大小。
此导出工具在单个插件和独立应用中结合了四种纹理工具,包括灵活且强大的立方体贴图、采样贴图、法线贴图、透明度等 130 多种导入格式的支持。新的压缩预览窗口允许您实时查看图像的压缩情况,而无需写入磁盘。

NVIDIA Texture Tools Exporter 独立版展示立方体贴图反射
这些工具非常适合艺术家和图形工程师,他们希望节省纹理内存并减少应用程序的大小,或者将更多或更高分辨率的纹理放入相同空间。例如,游戏开发者可以使用此技术缩小创建的游戏的大小,或者逼真渲染和数字内容创作开发者可以使用此技术将更高分辨率的纹理内存中。
减少应用程序大小
将纹理压缩至原始大小的三分之一。或者使用此功能将更精细、更多样化的纹理加载到内存中
高质量图像处理
使用线性空间颜色和预乘 Alpha 生成 Mipmap,使用斜率映射过滤法等
现代压缩算法
现已支持用于 HDR 纹理的 BC6、用于高质量压缩的 BC7 和用于 Tegra GPU 上可扩展压缩的 ASTC
下载
独立应用程序
操作系统 | Windows 10、11 (仅限 64 位) |
---|---|
要求 | 支持 NVIDIA CUDA 的 GPU |
版本说明
2024.1
- 添加了 min 和 max 过滤器。这些技术非常有用于实现像倾斜遮蔽映射这样的效果。
- 导出器:添加了 Resize (缩放) 效果。
- 导出器:添加了 Mitchell-Netravali mipmapping 滤波器。
- 导出器:“Override Filter Parameters”(覆盖滤镜参数) UI 现在显示 NVTT 为每种缩放滤镜提供的完整参数集,以及每种滤镜的专用名称和工具提示。
- 导出器:添加了 Swizzle 效果。
- 导出器:添加了 --max-mip-count,用于设置生成的最大 Mip 数量 (包括基础 Mip),以及 --min-mip-size,用于设置任何 Mip 的最小宽度或大小。
- 导出器:--no-mips 现在仅控制是否从 DDS 和 KTX 文件读取 MIPS。之前,它还控制了 Mip 生成。2023.3.2 --no-mips 选项等同于 2024.1 的 --no-mips --max-mip-count 1、
- 导出器:改进了 GLEW 初始化兼容性。
- nvcompress:修复了使用 --max-mip-count 或 --min-mip-size 时产生额外 mip 的问题。
- nvcompress:修复了文件路径中包含表情符的文件导致 nvcompress 崩溃的问题。
- nvcompress:修复了在同时压缩超过 509 个文件时会失败的问题。
- 修复了 NVTT_VERSION 字段的命名,以便更清晰地映射到语义版本。例如,NVTT 3.2.4 是分支 3,主版本 2 (在 API 中断时增加),次版本 4 (在新功能和错误修复中增加)。
- 增加了更安全的`TimingContext::GetRecord ()`4 参数重载,该重载会采用写入描述的缓冲区大小,并弃用 3 参数版本。
- 导出程序:已更新 libwebp,以修复 CVE-2023-4863/CVE-2023-5129,其中一个恶意。webp 文件可以让 libwebp 库执行任意代码。导出器使用 FreeImage 中的 libwebp;NVTT 库不使用 libwebp,因此不受影响。
- 导出器:修复了由于 FreeImage 默认为近似逆离散多项式转换 (IDCT) 而非精确 IDCT 而导致的 JPEG 解码错误。
- 导出器 GUI:更改了“Compression Quality”(压缩质量) 标题为“Compression Effort”(压缩努力),以便更清楚地表明,努力程度越高,压缩器会搜索更多块,并且通常需要更长的时间才能产生更好的结果。换句话说,随着工作量的增加,输出质量通常会增加,但文件大小却不会改变。
- 导出器:现在支持超过 260 个字符的路径。
- 导出器:DDS 写入器现在为 L8 纹理设置 DDPF_LUMINANCE 标志。
- BC1-BC3:修复了 3.2.2 中 Turing GPU 上的 CUDA 压缩会产生`cudaErrorIllegalAddress`错误的问题。
- 修复了 nvtt::Surface::createSubImage () 和 nvtt::Surface::diff () 无法从其输入 (s) 复制纹理类型、alpha 模式、wrap 模式或标准旗帜到其输出 nvtt::Surface 的问题。
- 导出器:如果图像导致导出器从 GPU 压缩切换到 CPU 压缩,则在重新启动图像处理之前,将完全清除中间结果。此修复程序解决了计算能力低于 5.0 的设备上加载的图像显示错误的问题 (如果修改设置,该问题将得到解决)。
- 导出器 GUI:修复了扩展程序自动完成中的错误 (例如,如果名为“test”的 PNG 图像不存在,则会添加。png 扩展名)。
- BC1-BC3、BC1a:在质量:生产中提高压缩质量|最高。
- BC7、ASTC:修复了标记为不透明的图像使用透明压缩器,而标记为透明的图像使用不透明压缩器的问题。
- NVTT:在超过 6.25 百万像素的图像上改进了 nvcompress 的性能。
- NVTT:为 nvcompress 添加了 --max-mip-count、--nim-mip-size 和 --no-mip-gamma-correct 选项。
- NVTT:将 nvbatchcompress.exe 重命名为 nvbatchcompress.bat;nvbatchcompress 的功能已合并到 nvcompress。
- 重定向 CUDA 依赖项到版本 11.8、
- 导出器:添加了边缘填充 (Solidify) 效果,可在图像中顺畅填充透明区域。
- 导出器:添加了对 RXGB BC3 法线贴图格式的读取和写入支持。
- 导出器:在空闲时减少窗口渲染频率,从而降低功耗。
- 导出器:文件路径现在使用 Unicode 而非 ANSI 字符存储。此更新修复了一个问题,即使用非 ANSI 字符的路径无法打开并打印 mojibake 错误消息。
- 导出器:DDS 读取器现在可以成功读取 dwFlags 中缺少 DDS_MIPMAPCOUNT 的某些图像。
- 导出器:改进了 DDS 读取器对 D3DFMT_CxV8U8 和 DDPF_BUMPDUDV 等异常模式的支持。
- 导出器:修复了使用 dwRGBBitCount 设置为 0 或 subresource 长度介于 1 到 7 字节之间时读取 bitmasked DDS 文件时的崩溃问题。
- 导出器:修复了计算能力低于 5.0 的 GPU 上图像处理失败或停滞的问题。
- 导出器:正常纹理现在已设置 DDPF_NORMAL 标志。
- 导出器:现已设置 DDSCAPS2_VOLUME 标志。
- 导出器:现在可以关闭 NVIDIA DDS 读取属性窗口。
- 导出器:无效 --serialized-effects-v1 字符串不再会导致崩溃。
- 导出器:修复了一个问题,即 --mip-filter-width 始终会写入设置,即使勾选“Override Filter Width”(覆盖滤波器宽度) 也是如此。
- 独立导出器:修复了在读取命令行或预设时忽略 Atlas 和 CubeMap 设置的问题。
- 独立导出器:修复了启动几十个 nvtt_export 实例时出现的竞争条件,导致它们将彼此误认为安装程序并拒绝启动的问题。
- 独立导出器:现在,--no-mips 标志还会让 DDS 读取器仅读取基础 MIP。
- NVTT:添加 Surface::loadFromMemory (),Surface::saveToMemory () 和 CubeSurface::loadFromMemory ()。这些 Surface::load () 和 Surface::save () 变体在内存数据上工作。
- NVTT:使用 nvtt::Context API 和 nvtt::Surface 数据不在 VRAM 时,压缩速度更快。
- NVTT:更快的 GPU BC6 压缩。
- NVTT:修复了一个问题,即 CPU BC1 压缩器有时会以透明的单色块进行编码。
- 导出器:修复了 DDS 立方体映射写入数量是正确数量的 6 倍的错误。
- 导出器:通过移除 glGetTextureLevelParameteriv () 的使用来提高 OpenGL 兼容性。
- 导出器:增加了在预设中保存和加载设置的能力。旧版插件的预设文件也可以在当前插件和独立插件中加载。
- 导出器:增加对立体纹理和纹理数组的支持。
- 导出器:添加未签名的 BC6H 支持。
- 导出器:添加线性到 sRGB 和 sRGB 到线性的效果。
- 导出器:为“Save”(保存) 和“Open”(打开) 添加 Ctrl-S 和 Ctrl-O 快捷键。
- 导出程序:通过静态链接运行时库来消除 MSVC++运行时库安装要求。
- 导出器:修复了使用整个[0,1]范围而非[0.5,1]范围的螺旋空间法线的蓝色组件的错误。
- 导出器:修复了导出格式中 BC7 出现两次的错误。
- 导出程序:修改窗口创建,以支持 Windows Sandbox 和远程桌面。
- 导出器:默认情况下,避免显示控制台窗口。
- 独立导出器:添加一个窗格,显示导入纹理的信息。
- 独立导出器:改进了预乘阈值,以避免在使用小但非零的 Alpha 值渲染 16 位图像时出现亮度变化。
- 独立导出器:修复了导入时。hdr 文件被限制在[0,1]范围内的问题。
- 独立导出器:修复了使用无法解析的命令行调用 nvtt_export 会导致崩溃的问题。
- 独立导出程序:修复了 FreeImage 问题,即 1 组件。exr 文件如果未命名为“Y”,则无法加载。
- 独立导出程序:改进了 FreeImage 安全性。
- 独立导出器:解析不能转换为线性的 ICC v4 颜色配置文件,而不会导致崩溃。
- NVTT:为 Hopper 和 Ada GPU 添加预编译内核。
- NVTT:将 16 位半精度浮点 (nvtt::ValueType::FLOAT16) 添加为低级别 API 的输入。
- NVTT:更快的 BC6H GPU 压缩。
- NVTT:添加 BC3n GPU 压缩器。
- NVTT:添加 nvtt::SetMessageCallback ()。NVTT 现在通过每个线程的消息回调报告错误、警告和消息。尤其是,即使函数不返回 bool,也可以使用此函数检测错误。
- NVTT:添加 nvtt::Surface::gpuDataMutable ()。这样一来,您可以使用自己的自定义 CUDA 内核,而无需执行 const_cast。
- NVTT:添加未锁定的 sRGB 转换函数 (toSrgbUnclamped () 和 toLinearFromSrgbUnclamped ())。这些工具可以将 HDR 图像转换为 sRGB 格式,并且不会丢失太多信息。
- NVTT:添加到 LinearFromXenonSrgb (),即 toXenonSrgb () 的反函数。
- NVTT:将 nvtt::nvtt_encode () 和 nvtt::EncodeSettings 添加到低级 API。nvtt_encode () 将所有低级压缩函数统一在单个接口下,并且 EncodeSettings 可以扩展以添加新功能,而不会破坏 API。
- NVTT:修复了 BC2 GPU 压缩器中的超出范围写入问题。
- NVTT:修复了 C 封装器和 C++错误列表不匹配的问题。
- NVTT:修复了慢模式 BC1 CPU 压缩器在输入具有半透明像素的斑点块时,有时会输出带有 Alpha 的块的问题。(感谢 NVIDIA 开发者论坛上的 tgrimmer。)
- NVTT:修复了 nvtt::Surface::toSrgb () 将 1.0 转换为 0.999999940 而不是 1 的错误。
- NVTT:修复了 C 封装符号中缺少 nvttContextQuantize () 的问题。(感谢 NVIDIA 开发者论坛上的 mijalko。)
- 发布了 NVTT 3 SDK,该压缩库为 Texture Tools Exporter 和许多其他项目提供支持。它与 Windows 上的“Texture Tools Exporter”(纹理工具导出器) 捆绑在一起,并且在 Linux 上单独提供。
- 增加了基础通用纹理超级压缩,并针对比之前更小的图像进行了 Rate Distortion Optimization (RDO)。
- 现在使用 nv_ktx 库进行 KTX 读取和写入。
- 已更新 FreeImage 至最新源代码,修复了多个安全问题。
- 修复了图像无法跟踪预乘状态的问题。
- 修复了 ICC 颜色配置文件在系统中传递不正确的问题。
- 修复了在图像超分辨率设置期间,颜色无法固定在[0,1]范围内的问题。
- 修复了 Wrap To Output Range 无法包裹大于零的正值的问题。
- 修复了将高斯模糊半径设置为负数会导致回退到 CPU 图像处理的问题。
- 缩进了“Compression Quality and Scale”(压缩质量和比例) 和“Scale and Bias”(比例和偏差) 部分。
- 改进了尝试在没有 Tensor Core 的 GPU 上使用图像超分辨率的错误消息。
- 为 Turing+GPU 添加了 NGX 超分辨率效果。
- 添加了 KTX 和 KTX2 文件格式读取器以及对 KTX2 文件的导出支持。
- 增加了窗口缩放和高 DPI 支持。
- 更快速、更低内存的图像处理。
- 图像效果现在在背景线程上运行,因此用户界面可以更快地响应更大的图像。
- 添加了 Boris Ustaev 的图像拖放用户界面。
- 修复了 Photoshop 插件在没有背景层且有用户提供的 Alpha 通道的 Photoshop 文件时选择错误通道的问题。
- 修复了在未指定 CUDA 设备的非 SLI 配置中使用两块相同的 GPU 会导致图像损坏的问题。
- 修复了压缩器非确定性在立方体纹理上的问题。
- 支持读取 dwMipMapCount 为 0 的传统 DDS 文件。
- 更新 NVTT 至版本 3.1.6、
- 插件和独立导出器现在在可以的情况下使用 DX9 风格的 DDS 标头进行导出 (即 DX10 头文件扩展程序)。增加了一个选项,以便始终使用 DX10 标头扩展程序,该扩展程序默认处于禁用状态。这应该改善与旧版 DDS 阅读器的兼容性。相应的命令行标志是 --dx10、
- 增加了插件中的读取设置支持。这些设置会自动保存在注册表中。如果您已隐藏“Read Settings”(读取设置) 窗口,则可以从“About”(关于) 窗口中重新启用该窗口。
- 增加了插件中读取 DDS 文件作为层的 mipmap 支持。
- 增加了插件中读取 DDS 文件的 Alpha 通道 (而非透明度) 的支持。
- 增加了读取三种非标准 BC6/BC7 FourCC 码 (BC6H、BC7L 和 BC7\0) 的支持。
- 增加了阅读和保存纵向翻转的图像的功能。相应的命令行选项是 --read-flip-y 和 --save-flip-y。
- 在独立导出程序中使用 FreeImage 代替 OpenImageIO,以进行非 DDS 图像的导入和导出。
- BC1a、BC2 和 BC3 的最快模式现在使用 GPU 进行压缩。
- 修复了一个问题,即完全透明像素 (alpha 值为 0) 的 RGB 值会因内部预乘而设置为 0、
- 修复了独立导出工具无法使用 ICC 配置文件读取 TIFF 文件,而仅使用线性空间而非 sRGB 颜色的问题。
- 修复了独立导出器会读取一些文件类型,且预乘值不一致的问题。
- 修复了独立导出器无法读取带未指定色彩配置文件的 PSD 文件,导致其读取为线性颜色而非 sRGB 颜色的问题。
- 修复了独立导出器在没有 ICC 配置文件或指定的 oiio:ColorSpace 值的情况下无法解析某些文件格式的问题。
- 更新的致谢词。
- 修复了 BC1-BC5 工具提示中的错误,该提示介绍了笔刷元素如何在端点之间分配。
Adobe Photoshop 插件
操作系统 | Windows 10、11 (仅限 64 位) |
---|---|
要求 | 支持 NVIDIA CUDA 的 GPU Adobe Photoshop CC |
版本说明
2024.1
- 添加了 min 和 max 过滤器。这些技术非常有用于实现像倾斜遮蔽映射这样的效果。
- 导出器:添加了 Resize (缩放) 效果。
- 导出器:添加了 Mitchell-Netravali mipmapping 滤波器。
- 导出器:“Override Filter Parameters”(覆盖滤镜参数) UI 现在显示 NVTT 为每种缩放滤镜提供的完整参数集,以及每种滤镜的专用名称和工具提示。
- 导出器:添加了 Swizzle 效果。
- 导出器:添加了 --max-mip-count,用于设置生成的最大 Mip 数量 (包括基础 Mip),以及 --min-mip-size,用于设置任何 Mip 的最小宽度或大小。
- 导出器:--no-mips 现在仅控制是否从 DDS 和 KTX 文件读取 MIPS。之前,它还控制了 Mip 生成。2023.3.2 --no-mips 选项等同于 2024.1 的 --no-mips --max-mip-count 1、
- 导出器:改进了 GLEW 初始化兼容性。
- nvcompress:修复了使用 --max-mip-count 或 --min-mip-size 时产生额外 mip 的问题。
- nvcompress:修复了文件路径中包含表情符的文件导致 nvcompress 崩溃的问题。
- nvcompress:修复了在同时压缩超过 509 个文件时会失败的问题。
- 修复了 NVTT_VERSION 字段的命名,以便更清晰地映射到语义版本。例如,NVTT 3.2.4 是分支 3,主版本 2 (在 API 中断时增加),次版本 4 (在新功能和错误修复中增加)。
- 增加了更安全的`TimingContext::GetRecord ()`4 参数重载,该重载会采用写入描述的缓冲区大小,并弃用 3 参数版本。
- 导出程序:已更新 libwebp,以修复 CVE-2023-4863/CVE-2023-5129,其中一个恶意。webp 文件可以让 libwebp 库执行任意代码。导出器使用 FreeImage 中的 libwebp;NVTT 库不使用 libwebp,因此不受影响。
- 导出器:修复了由于 FreeImage 默认为近似逆离散多项式转换 (IDCT) 而非精确 IDCT 而导致的 JPEG 解码错误。
- 导出器 GUI:更改了“Compression Quality”(压缩质量) 标题为“Compression Effort”(压缩努力),以便更清楚地表明,努力程度越高,压缩器会搜索更多块,并且通常需要更长的时间才能产生更好的结果。换句话说,随着工作量的增加,输出质量通常会增加,但文件大小却不会改变。
- 导出器:现在支持超过 260 个字符的路径。
- 导出器:DDS 写入器现在为 L8 纹理设置 DDPF_LUMINANCE 标志。
- BC1-BC3:修复了 3.2.2 中 Turing GPU 上的 CUDA 压缩会产生`cudaErrorIllegalAddress`错误的问题。
- 修复了 nvtt::Surface::createSubImage () 和 nvtt::Surface::diff () 无法从其输入 (s) 复制纹理类型、alpha 模式、wrap 模式或标准旗帜到其输出 nvtt::Surface 的问题。
- 导出器:如果图像导致导出器从 GPU 压缩切换到 CPU 压缩,则在重新启动图像处理之前,将完全清除中间结果。此修复程序解决了计算能力低于 5.0 的设备上加载的图像显示错误的问题 (如果修改设置,该问题将得到解决)。
- 导出器 GUI:修复了扩展程序自动完成中的错误 (例如,如果名为“test”的 PNG 图像不存在,则会添加。png 扩展名)。
- BC1-BC3、BC1a:在质量:生产中提高压缩质量|最高。
- BC7、ASTC:修复了标记为不透明的图像使用透明压缩器,而标记为透明的图像使用不透明压缩器的问题。
- NVTT:在超过 6.25 百万像素的图像上改进了 nvcompress 的性能。
- NVTT:为 nvcompress 添加了 --max-mip-count、--nim-mip-size 和 --no-mip-gamma-correct 选项。
- NVTT:将 nvbatchcompress.exe 重命名为 nvbatchcompress.bat;nvbatchcompress 的功能已合并到 nvcompress。
- 重定向 CUDA 依赖项到版本 11.8、
- 导出器:添加了边缘填充 (Solidify) 效果,可在图像中顺畅填充透明区域。
- 导出器:添加了对 RXGB BC3 法线贴图格式的读取和写入支持。
- 导出器:在空闲时减少窗口渲染频率,从而降低功耗。
- 导出器:文件路径现在使用 Unicode 而非 ANSI 字符存储。此更新修复了一个问题,即使用非 ANSI 字符的路径无法打开并打印 mojibake 错误消息。
- 导出器:DDS 读取器现在可以成功读取 dwFlags 中缺少 DDS_MIPMAPCOUNT 的某些图像。
- 导出器:改进了 DDS 读取器对 D3DFMT_CxV8U8 和 DDPF_BUMPDUDV 等异常模式的支持。
- 导出器:修复了使用 dwRGBBitCount 设置为 0 或 subresource 长度介于 1 到 7 字节之间时读取 bitmasked DDS 文件时的崩溃问题。
- 导出器:修复了计算能力低于 5.0 的 GPU 上图像处理失败或停滞的问题。
- 导出器:正常纹理现在已设置 DDPF_NORMAL 标志。
- 导出器:现已设置 DDSCAPS2_VOLUME 标志。
- 导出器:现在可以关闭 NVIDIA DDS 读取属性窗口。
- 导出器:无效 --serialized-effects-v1 字符串不再会导致崩溃。
- 导出器:修复了一个问题,即 --mip-filter-width 始终会写入设置,即使勾选“Override Filter Width”(覆盖滤波器宽度) 也是如此。
- NVTT:添加 Surface::loadFromMemory (),Surface::saveToMemory () 和 CubeSurface::loadFromMemory ()。这些 Surface::load () 和 Surface::save () 变体在内存数据上工作。
- NVTT:使用 nvtt::Context API 和 nvtt::Surface 数据不在 VRAM 时,压缩速度更快。
- NVTT:更快的 GPU BC6 压缩。
- NVTT:修复了一个问题,即 CPU BC1 压缩器有时会以透明的单色块进行编码。
- 导出器:修复了 DDS 立方体映射写入数量是正确数量的 6 倍的错误。
- 导出器:通过移除 glGetTextureLevelParameteriv () 的使用来提高 OpenGL 兼容性。
- 导出器:增加了在预设中保存和加载设置的能力。旧版插件的预设文件也可以在当前插件和独立插件中加载。
- 导出器:增加对立体纹理和纹理数组的支持。
- 导出器:添加未签名的 BC6H 支持。
- 导出器:添加线性到 sRGB 和 sRGB 到线性的效果。
- 导出器:为“Save”(保存) 和“Open”(打开) 添加 Ctrl-S 和 Ctrl-O 快捷键。
- 导出程序:通过静态链接运行时库来消除 MSVC++运行时库安装要求。
- 导出器:修复了使用整个[0,1]范围而非[0.5,1]范围的螺旋空间法线的蓝色组件的错误。
- 导出器:修复了导出格式中 BC7 出现两次的错误。
- 导出程序:修改窗口创建,以支持 Windows Sandbox 和远程桌面。
- 导出器:默认情况下,避免显示控制台窗口。
- 导出插件:取消文件覆盖现在可以恢复文件的旧版本。
- 安装程序:在查看注册表之前,先在 C:\Program Files\Adobe 中搜索最新的 Photoshop 安装文件,以修复存在两个版本的 Photoshop 时的意外安装位置。
- 安装程序:修复了一个错误,即如果选定的目录不存在,则会警告用户选定目录已包含内容。
- NVTT:为 Hopper 和 Ada GPU 添加预编译内核。
- NVTT:将 16 位半精度浮点 (nvtt::ValueType::FLOAT16) 添加为低级别 API 的输入。
- NVTT:更快的 BC6H GPU 压缩。
- NVTT:添加 BC3n GPU 压缩器。
- NVTT:添加 nvtt::SetMessageCallback ()。NVTT 现在通过每个线程的消息回调报告错误、警告和消息。尤其是,即使函数不返回 bool,也可以使用此函数检测错误。
- NVTT:添加 nvtt::Surface::gpuDataMutable ()。这样一来,您可以使用自己的自定义 CUDA 内核,而无需执行 const_cast。
- NVTT:添加未锁定的 sRGB 转换函数 (toSrgbUnclamped () 和 toLinearFromSrgbUnclamped ())。这些工具可以将 HDR 图像转换为 sRGB 格式,并且不会丢失太多信息。
- NVTT:添加到 LinearFromXenonSrgb (),即 toXenonSrgb () 的反函数。
- NVTT:将 nvtt::nvtt_encode () 和 nvtt::EncodeSettings 添加到低级 API。nvtt_encode () 将所有低级压缩函数统一在单个接口下,并且 EncodeSettings 可以扩展以添加新功能,而不会破坏 API。
- NVTT:修复了 BC2 GPU 压缩器中的超出范围写入问题。
- NVTT:修复了 C 封装器和 C++错误列表不匹配的问题。
- NVTT:修复了慢模式 BC1 CPU 压缩器在输入具有半透明像素的斑点块时,有时会输出带有 Alpha 的块的问题。(感谢 NVIDIA 开发者论坛上的 tgrimmer。)
- NVTT:修复了 nvtt::Surface::toSrgb () 将 1.0 转换为 0.999999940 而不是 1 的错误。
- NVTT:修复了 C 封装符号中缺少 nvttContextQuantize () 的问题。(感谢 NVIDIA 开发者论坛上的 mijalko。)
- 发布了 NVTT 3 SDK,该压缩库为 Texture Tools Exporter 和许多其他项目提供支持。它与 Windows 上的“Texture Tools Exporter”(纹理工具导出器) 捆绑在一起,并且在 Linux 上单独提供。
- 增加了基础通用纹理超级压缩,并针对比之前更小的图像进行了 Rate Distortion Optimization (RDO)。
- 现在使用 nv_ktx 库进行 KTX 读取和写入。
- 已更新 FreeImage 至最新源代码,修复了多个安全问题。
- 修复了图像无法跟踪预乘状态的问题。
- 修复了 ICC 颜色配置文件在系统中传递不正确的问题。
- 修复了在图像超分辨率设置期间,颜色无法固定在[0,1]范围内的问题。
- 修复了 Wrap To Output Range 无法包裹大于零的正值的问题。
- 修复了将高斯模糊半径设置为负数会导致回退到 CPU 图像处理的问题。
- 缩进了“Compression Quality and Scale”(压缩质量和比例) 和“Scale and Bias”(比例和偏差) 部分。
- 改进了尝试在没有 Tensor Core 的 GPU 上使用图像超分辨率的错误消息。
- 为 Turing+GPU 添加了 NGX 超分辨率效果。
- 添加了 KTX 和 KTX2 文件格式读取器以及对 KTX2 文件的导出支持。
- 增加了窗口缩放和高 DPI 支持。
- 更快速、更低内存的图像处理。
- 图像效果现在在背景线程上运行,因此用户界面可以更快地响应更大的图像。
- 添加了 Boris Ustaev 的图像拖放用户界面。
- 修复了 Photoshop 插件在没有背景层且有用户提供的 Alpha 通道的 Photoshop 文件时选择错误通道的问题。
- 修复了在未指定 CUDA 设备的非 SLI 配置中使用两块相同的 GPU 会导致图像损坏的问题。
- 修复了压缩器非确定性在立方体纹理上的问题。
- 支持读取 dwMipMapCount 为 0 的传统 DDS 文件。
- 更新 NVTT 至版本 3.1.6、
- 插件和独立导出器现在在可以的情况下使用 DX9 风格的 DDS 标头进行导出 (即 DX10 头文件扩展程序)。增加了一个选项,以便始终使用 DX10 标头扩展程序,该扩展程序默认处于禁用状态。这应该改善与旧版 DDS 阅读器的兼容性。相应的命令行标志是 --dx10、
- 增加了插件中的读取设置支持。这些设置会自动保存在注册表中。如果您已隐藏“Read Settings”(读取设置) 窗口,则可以从“About”(关于) 窗口中重新启用该窗口。
- 增加了插件中读取 DDS 文件作为层的 mipmap 支持。
- 增加了插件中读取 DDS 文件的 Alpha 通道 (而非透明度) 的支持。
- 增加了读取三种非标准 BC6/BC7 FourCC 码 (BC6H、BC7L 和 BC7\0) 的支持。
- 增加了阅读和保存纵向翻转的图像的功能。相应的命令行选项是 --read-flip-y 和 --save-flip-y。
- 在独立导出程序中使用 FreeImage 代替 OpenImageIO,以进行非 DDS 图像的导入和导出。
- BC1a、BC2 和 BC3 的最快模式现在使用 GPU 进行压缩。
- 修复了一个问题,即完全透明像素 (alpha 值为 0) 的 RGB 值会因内部预乘而设置为 0、
- 修复了独立导出工具无法使用 ICC 配置文件读取 TIFF 文件,而仅使用线性空间而非 sRGB 颜色的问题。
- 修复了独立导出器会读取一些文件类型,且预乘值不一致的问题。
- 修复了独立导出器无法读取带未指定色彩配置文件的 PSD 文件,导致其读取为线性颜色而非 sRGB 颜色的问题。
- 修复了独立导出器在没有 ICC 配置文件或指定的 oiio:ColorSpace 值的情况下无法解析某些文件格式的问题。
- 更新的致谢词。
- 修复了 BC1-BC5 工具提示中的错误,该提示介绍了笔刷元素如何在端点之间分配。
在 Linux 上, NVIDIA Texture Tools 3 可用作一个独立的 SDK。
立方体映射
- 根据 2D 图像创建立方体贴图
- 可定制的坐标系统转换,适用于法线贴图
- 支持展开和线性格式立方体贴图
多级采样
- Mipmap 生成:可定制的过滤和颜色处理
- Mipmap 生成:适用于法线贴图的斜面空间贴图
- Mipmapped alpha cutout 修正可确保无论细节级别如何,alpha cutout 纹理都能覆盖大约相同的区域。
法线贴图
- 可定制的法线贴图生成
- 7 种高度贴图生成方法
- 6 个衍生过滤器
- 在正交空间或对象空间中导出法线贴图
其他特性
- 可自动化的工作流程:命令行界面 (独立版) 和 Action 支持 (Adobe Photoshop 插件)
- 快速批处理脚本支持 (独立版本)
- 使用 ICC v4 颜色配置文件读取图像
- 支持导出带预乘 Alpha 的图像
- 当工作负载超过 GPU 显存时,会回退到 CPU
资源
- 适用于 Photoshop 5.0 至 CS6 的旧版本
- 来源图像:
- 压缩:autumn_ground_crop_scale_montage.png
- 立方体映射:environ-montage.png
- 二次贴图:mipmapping-montage.png
- Mipmapping 视频:foliage_68.png
- 法线贴图:bricks-montage.png