2 个不稳定版本
0.2.0 | 2023年12月17日 |
---|---|
0.1.0 | 2023年9月11日 |
#230 in 渲染
60KB
1K SLoC
nrd-sys
nrd-sys 是 NVIDIA 实时去噪器 SDK 的 Rust 绑定,面向 Vulkan 应用。
NVIDIA 实时去噪器 (NRD) 是一个与空间时间 API 无关的去噪库。该库旨在与低 rpp(每像素射线)信号一起工作。NRD 是一种快速解决方案,稍微依赖于输入信号和环境条件。
支持 Windows 和 Linux。预编译的二进制文件将自动下载并链接。
这些二进制文件是从一个定制的 NRD 分支 编译的,这是为了使 SDK 能够更好地与 Rust 一起工作。该分支包含以下更改
- CI 编译二进制文件。
- 更新了分配器接口,以便在
free
中传递分配大小和对齐方式(如 Rust 分配 API 所需)。
用法
fn main() {
let lib_desc = nrd_sys::Instance::library_desc();
let id1 = nrd_sys::Identifier(0);
let mut instance = nrd_sys::Instance::new(&[nrd_sys::DenoiserDesc {
identifier: id1,
denoiser: nrd_sys::Denoiser::ReblurDiffuse,
render_width: 100,
render_height: 100,
}])
.unwrap();
let desc = instance.desc();
instance
.set_common_settings(&nrd_sys::CommonSettings::default())
.unwrap();
instance
.set_denoiser_settings(id1, &nrd_sys::ReferenceSettings::default())
.unwrap();
let dispatches = instance.get_compute_dispatches(&[id1]).unwrap();
// Now, make API calls based on `dispatches`
}
注意
此软件包中包含的预编译二进制文件仅包含 SPIR-V 着色器。如果您需要 DirectX 集成所需的 DXIL / DXBC 着色器,请随意将其作为 Cargo 功能创建,并提交 PR。
无运行时依赖
~130KB