首页/新闻资讯/正文详情

RTXNTC LibNTC API 实战:神经纹理压缩与解压全流程指南

发布时间:2026/11/3 19:03:07 来源:云帆数科 栏目:资讯中心
RTXNTC LibNTC API 实战:神经纹理压缩与解压全流程指南
【免费下载链接】RTXNTCNVIDIA Neural Texture Compression SDK项目地址https://gitcode.com/gh_mirrors/rt/RTXNTC点击查看免费下载RTXNTC 是 NVIDIA 开源的神经纹理压缩Neural Texture CompressionNTCSDK其核心库 LibNTC 让你用十几行 C 代码即可完成「PBR 纹理组压缩 → 保存 NTC 文件 → 解压还原」的完整流程把一套材质纹理的磁盘占用和显存占用压缩到传统 BCn 格式的 1/8 左右。本文将带你走通 LibNTC API 实战全流程从项目集成、初始化 Context到纹理压缩与三种解压模式每一步都给出关键代码与实用建议。神经纹理压缩能省多少先看一个真实例子 NTC 的思路是把一个材质的全部 PBR 纹理反照率、法线、粗糙度、金属度、环境光遮蔽等最多 16 个通道打包成一组一起压缩压缩时把像素数据转化为「小型 MLP 解码器权重 潜特征张量latents」渲染时由着色器采样 latents 并跑一遍解码器还原颜色。仓库自带的金属板材质assets/materials/MetalPlates013/包含 9 个通道按 8 位最优打包约 64 bits/texel传统流水线需要 3 张 BCn 纹理约 24 bits/texel而 NTC 以约5 bits/texel就能达到相近质量PSNR 40–50 dB压缩过程分为 5 步构建特征金字塔 → 模拟量化scoring→ 采样与拼接 → 双层 64 通道隐层网络推理 → 预测各 mip 级别最终得到可随机访问的 NTC 文件第 1 步把 LibNTC 集成进你的工程3 步完成按照 docs/integration/Installation.mdCMake 工程只需三步add_subdirectory(path/to/RTXNTC-Library) target_link_libraries(your_target PRIVATE libntc)然后包含头文件#include libntc/ntc.h即可。非 CMake 工程则需手动添加RTXNTC-Library/include到搜索路径、链接libntc.lib并在部署目录复制libntc.dll与cudart64_12.dll。第 2 步初始化 LibNTC Context所有 LibNTC 操作都依赖一个ntc::IContext见 docs/integration/Context.md。纯压缩场景只需 CUDA若要 GPU 解压还需把图形设备对象传入ntc::IContext* context nullptr; ntc::ContextParameters contextParams; // 可指定 graphicsApi: Vulkan / D3D12 ntc::Status ntcStatus ntc::CreateContext(context, contextParams); // 释放ntc::DestroyContext(context)两个容易踩的坑错误排查任何返回ntc::Status的函数都会写入错误信息失败后请立即在同一线程调用ntc::GetLastErrorMessage()获取详情没有 CUDA 设备时可能返回Status::CudaUnavailable此时 Context 仍可用于图形 API 解压但不能压缩。第 3 步纹理压缩全流程5 个子步骤压缩 API 围绕ntc::ITextureSet接口展开完整示例见 docs/integration/Compression.md子步骤关键 API作用① 创建纹理组context-CreateTextureSet(desc, features, set)声明宽高、通道数、mip 数② 设定目标压缩率ntc::PickLatentShape(bpp, actualBpp, shape)按目标 bits/pixel 自动选出 latent shape③ 写入源纹理set-AddTexture()set-WriteChannels(params)逐张登记语义、颜色空间并上传像素④ 执行压缩BeginCompression→RunCompressionSteps→FinalizeCompression循环驱动 GPU 压缩并报告进度⑤ 保存文件set-SaveToStream(stream)输出.ntc文件也可SaveToFile/SaveToMemory② 和 ④ 是最核心的两步代码非常简洁// ② 目标 5 bits/pixel自动匹配最接近的 latent shape float actualBpp; ntc::LatentShape shape; ntc::PickLatentShape(5.0f, actualBpp, shape); textureSet-SetLatentShape(shape); // ④ 压缩是异步分步的循环执行直到完成 ntc::CompressionSettings settings; // 默认值即可 textureSet-BeginCompression(settings); ntc::CompressionStats stats; ntc::Status s textureSet-RunCompressionSteps(stats); while (s ntc::Status::Incomplete) s textureSet-RunCompressionSteps(stats); // 可在循环中上报进度 textureSet-FinalizeCompression();进阶技巧不想手动指定 BPPLibNTC 提供了自适应压缩IAdaptiveCompressionSession你只需给出目标 PSNR 和最大 BPP库会自动搜索最优压缩率——原理是先按当前预设压缩、记录 PSNR再把结果喂回 session 决定下一步直到收敛。详见 Compression.md#L139-L206。第 4 步纹理解压全流程3 种模式任选NTC 文件解压有三种官方模式对应不同的渲染场景模式 ACUDA 整体解压 —— 集成最快5 行核心代码把 NTC 文件在 CPU/CUDA 侧整体还原为原始像素适合离线转码或工具链ntc::FileStreamWrapper in(context); context-OpenFile(material.ntc, false, in.ptr()); ntc::TextureSetWrapper set(context); context-CreateCompressedTextureSetFromStream(in, features, set.ptr()); set-Decompress(stats, false); // GPU 一次性解压 // 之后用 GetTextureCount()/ReadChannels() 逐张读回像素ReadChannels支持写入带更多通道的目标缓冲区多余通道自动填充默认值读回后你可以直接存图或进入 BCn 编码。完整枚举纹理 读数据的流程见 Compression.md#L242-L290。模式 BInference on Load —— GPU 解压 转码 BCn 这是低/中端硬件的主流方案加载时把 NTC 直接转码为 BCn 纹理。LibNTC 本身不提交任何 GPU 命令它只负责生成 compute pass 的描述着色器字节码、常量缓冲、dispatch 维度由你的引擎负责建管线参考实现 GraphicsDecompressionPass.cppntc::MakeDecompressionComputePassParameters params; params.textureSetMetadata metadata; params.weightType metadata-GetBestSupportedWeightType(); ntc::ComputePassDesc pass; context-MakeDecompressionComputePass(params, pass);数据流向如下解析ITextureSetMetadata→ 上传 latent 纹理数组与推理权重 → 执行 NTC 解码FP8/CoopVec 或 DP4a 回退→ 送入 BC1–BC7 编码 passBCn 转码解码输出可直连MakeBlockCompressionComputePass输出是 UINT 打包纹理通过 reinterpret copy 即可变回原生 BCn 资源。LibNTC 还内置了BC7 加速——压缩阶段预先分析每个 4×4 块的最优 mode/partition 并存入 mode buffer加载时转码提速约20–30 倍BlockCompression.md。GDeflate 无损再压缩NTC 文件内部可对 latents 使用 GDeflate 无损压缩进一步瘦身加载时用 CPUDecompressBuffer、Vulkan GPUDecompressGDeflateOnVulkanGPU或 DirectStorage 三种路径解回参考实现见 BufferLoading.cpp 通过ITextureSet::ConfigureLosslessCompression(...)可关闭 GDeflate简化加载逻辑。模式 CInference on Sample —— 着色器内逐 texel 推理高端硬件支持 Cooperative Vector 的 Ada/Blackwell 显卡可以直接在像素/光追着色器里对单个 texel 做推理只解压当前视角真正用到的纹理显存占用降至 NTC 文件原始大小上表中 2.5 MB 那一档。集成分三阶段解析文件 → 上传 latents/权重 → 着色器中调用 LibNTC 提供的NtcSampleTextureSet函数HLSL 实现位于libntc/shaders/Inference.hlsl完整示例见 samples/renderer/NtcForwardShadingPass.hlsl 与 InferenceOnSample.md。⚠️ 该模式建议搭配 Stochastic Texture FilteringSTF使用因为 NTC 只输出单个未滤波 texel。三种模式怎么选模式显存占用硬件要求适用场景CUDA 整体解压全尺寸 BCn任意 SM6 GPU CUDA离线转码、工具链Inference on Load全尺寸 BCn任意 SM6 GPU中低端硬件、打包发布Inference on Sample≈ NTC 文件大小Ada/Blackwell CoopVec高端硬件、大地图流式纹理实用技巧与常见问题 质量与体积的平衡latent shape 决定比特率先用PickLatentShape按目标 BPP 自动匹配再用自适应压缩精调更多参数讲解见 docs/SettingsAndQuality.md。NTC 文件结构容器类似 GLBNTEX签名 JSON 描述 二进制数据块支持快速索引与版本向后兼容规格见 docs/TextureSetFile.md。不想写 C仓库提供了 libraries/ntc.py 模块它是ntc-cli的 Python 封装几行脚本即可完成压缩、解压与 PSNR 校验非常适合内容管线自动化。调试建议先跑--no-coopVec的 DP4a 回退路径验证功能正确性再在目标 GPU 上开启 CoopVec 追求性能。参考资料汇总安装与集成docs/integration/Installation.mdContext 初始化docs/integration/Context.md压缩与 CUDA 解压docs/integration/Compression.mdInference on Loaddocs/integration/InferenceOnLoad.mdBCn 转码docs/integration/BlockCompression.mdInference on Sampledocs/integration/InferenceOnSample.md图形 API 参考实现libraries/ntc-utils/src/渲染器完整示例samples/renderer/NtcMaterialLoader.cpp示例材质与模型assets/materials/、assets/models/FlightHelmet/按照「集成 → 初始化 → 压缩 → 解压」四步走你就已经把 LibNTC API 的完整工作流跑通了。建议从模式 A 开始验证管线再按目标硬件逐步迁移到 Inference on Load / Sample即可在项目中稳定落地神经纹理压缩。赞分享【免费下载链接】RTXNTCNVIDIA Neural Texture Compression SDK项目地址https://gitcode.com/gh_mirrors/rt/RTXNTC点击查看免费下载相关推荐神经纹理压缩新范式一文读懂 RTXNTC 如何让 PBR 纹理体积缩小 5 倍神经纹理压缩新范式一文读懂 RTXNTC 如何让 PBR 纹理体积缩小 5 倍 RTXNTCNVIDIA Neural Texture Compressiothree.js WebGLTextureUtils 模块详解压缩纹理解压decompress原理与实战three.js WebGLTextureUtils 模块详解压缩纹理解压decompress原理与实战 导读 本文围绕 three.js 仓库中的 We3D渲染图形学前端RTXNTC GDeflate 无损压缩CPU 与 GPU 解压的三条路径详解RTXNTC GDeflate 无损压缩CPU 与 GPU 解压的三条路径详解 RTXNTCNVIDIA 神经纹理压缩 SDK在生成 .ntc 文件时会上一篇为什么Elsevier-Tracker要把UTC3转为UTC8审稿时间戳时区转换完整指南下一篇OPA 策略测试实战指南用 Rego 与 opa test 编写、运行和度量你的策略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

[创作] CSDN 自定义模块实战:零 JS、4000 字符,把博客首页改成暗夜流光液态玻璃
[创作] CSDN 自定义模块实战:零 JS、4000 字符,把博客首页改成暗夜流光液态玻璃

💡 刷博客的时候大概都见过这种首页:侧边栏一张会流动的渐变卡片,底下整站是磨砂玻璃质感,连顶部导航条都在慢慢变色。第一反应通常是——这得写多少前端代码? 但点开 CSDN 的「自定义模块」入口你会发现一个很反常识的设定:这里不允许写一行 JavaScript,粘贴进去的整… · 2026/11/3 19:03:07

Aquilon操作指南(第5篇):Aquilon核心概念解析
Aquilon操作指南(第5篇):Aquilon核心概念解析

引言 在前四篇中,我们分别介绍了Aquilon的硬件规格、系统操作、Web RCS软件界面以及Preconfig预配置菜单。从本篇开始,我们将深入理解Aquilon系统的核心概念。这些概念是正确配置和高效使用Aquilon的基础,涵盖了容量分配、屏幕层架构、视频处… · 2026/11/3 19:03:07

45+机器人模型资源完整清单:humanoid-motion-intelligence中URDF、MJCF与USD模型怎么选
45+机器人模型资源完整清单:humanoid-motion-intelligence中URDF、MJCF与USD模型怎么选

【免费下载链接】humanoid-motion-intelligence 人形机器人运动智能论文、开源项目、产业与求职知识库 项目地址: https://gitcode.com/gh_mirrors/hu/humanoid-motion-intelligence 点击查看 免费下载 humanoid-motion-intelligence 知识库整理了 45 个开源机器人… · 2026/11/3 19:02:02

Ubuntu FreeRADIUS EAP-TLS 双向认证配置与排错
Ubuntu FreeRADIUS EAP-TLS 双向认证配置与排错

简介:面向在 Ubuntu 上搭建 802.1X EAP-TLS 双向认证测试环境的网络实验人员与运维学习者,这份文档围绕 FreeRADIUS 的部署、证书生成与终端接入验证展开,适合需要复现企业级无线认证流程的初中级读者。压缩包共 1 个 docx 文件,约… · 2026/11/3 19:41:27

深度学习在旅游推荐系统中的应用与实践
深度学习在旅游推荐系统中的应用与实践

1. 项目概述 这个基于深度学习的旅游推荐系统是我在2019年完成的一个实战项目,核心思路是利用Django框架搭建Web应用,结合深度学习算法为用户提供个性化的旅游目的地推荐。当时市面上大多数旅游网站还停留在基于规则或简单协同过滤的推荐方式&#xff0c… · 2026/11/3 19:41:27

FreeRADIUS EAP-TLS 双向认证与802.1X无线接入实战
FreeRADIUS EAP-TLS 双向认证与802.1X无线接入实战

简介:针对 Ubuntu 系统下用 Freeradius 搭建 802.1X EAP-TLS 双向认证测试环境编写的实操文档,面向无线网络认证初学者、企业网络运维人员以及需要验证终端证书接入的设备测试人员,可帮助解决证书签发、服务端参数配置与终端接入联调中的常见… · 2026/11/3 19:41:27

老WMS操作手册拆解:状态机、业务约束与二次开发校验
老WMS操作手册拆解:状态机、业务约束与二次开发校验

简介:《WMS系统操作手册》面向仓库管理员、供应链管理者及ERP/WMS实施与运维人员。文档围绕浙江三花智能控制股份有限公司自主开发的Web端仓储管理系统,梳理从销售订单编制、提交、审核到订单变更的完整操作路径,并覆盖主生产计划编辑、审核、… · 2026/11/3 19:41:27

SpringBoot高校健康管理系统开发实践
SpringBoot高校健康管理系统开发实践

1. 项目背景与核心价值大学生健康管理一直是高校后勤服务的重点难点。传统纸质档案管理方式存在数据分散、更新滞后、统计分析困难等问题。我们团队开发的这套基于SpringBoot的健康管理系统,正是为了解决这些痛点而生。这个系统最核心的价值在于实现了健康数据的电子… · 2026/11/3 19:41:27

免费短链接API评测与Dub.co对接实战
免费短链接API评测与Dub.co对接实战

1. 短链接服务与API对接的价值解析 短链接服务早已从单纯的URL缩短工具,演变为现代数字营销和数据分析的基础设施。通过将冗长的原始网址压缩成简洁的短链,不仅解决了字符限制的困扰(比如Twitter早期的140字限制),更重… · 2026/11/3 19:40:27

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 6:04:24

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 5:52:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码