当前位置:网站首页><山东大学项目实训>渲染引擎系统(五)
<山东大学项目实训>渲染引擎系统(五)
2022-06-12 16:16:00 【Grey Cluster】
目录
项目介绍
NRD
全名Nvidia Real-time Denoiser ,是英伟达正在研发的一个时空双域降噪库,旨在处理低的RPP(ray per pixel)信号。
该技术的图形 API 环境是:DirectX11、DirectX12 以及 Vulkun。其集成方法有三种,其中一种可以是利用 Nvidia 的 NRI(NVIDIA Rendering Interface)包装上述三个 API,进行集成。
项目目标
在Falcor框架下集成nrd。
当前阶段工作
编写构造函数NRDPass()
NRDPass::NRDPass(const Dictionary& dict)
传入参数Dictionary
设置成员变量
Program::DefineList definesRelax;
definesRelax.add("NRD_USE_OCT_NORMAL_ENCODING", "1");
definesRelax.add("NRD_USE_MATERIAL_ID", "0");
definesRelax.add("NRD_METHOD", "0");
mpPackRadiancePassRelax = ComputePass::create(kShaderPackRadiance, "main", definesRelax);
Program::DefineList definesReblur;
definesReblur.add("NRD_USE_OCT_NORMAL_ENCODING", "1");
definesReblur.add("NRD_USE_MATERIAL_ID", "0");
definesReblur.add("NRD_METHOD", "1");
mpPackRadiancePassReblur = ComputePass::create(kShaderPackRadiance, "main", definesReblur);对NRD SDK部分变量重写初值
mRelaxDiffuseSpecularSettings.diffusePrepassBlurRadius = 16.0f;
mRelaxDiffuseSpecularSettings.specularPrepassBlurRadius = 16.0f;
mRelaxDiffuseSpecularSettings.diffuseMaxFastAccumulatedFrameNum = 2;
mRelaxDiffuseSpecularSettings.specularMaxFastAccumulatedFrameNum = 2;
mRelaxDiffuseSpecularSettings.diffuseLobeAngleFraction = 0.8f;
mRelaxDiffuseSpecularSettings.disocclusionFixMaxRadius = 32.0f;
mRelaxDiffuseSpecularSettings.enableSpecularVirtualHistoryClamping = false;
mRelaxDiffuseSpecularSettings.disocclusionFixNumFramesToFix = 4;
mRelaxDiffuseSpecularSettings.spatialVarianceEstimationHistoryThreshold = 4;
mRelaxDiffuseSpecularSettings.atrousIterationNum = 6;
mRelaxDiffuseSpecularSettings.depthThreshold = 0.02f;
mRelaxDiffuseSpecularSettings.roughnessFraction = 0.5f;
mRelaxDiffuseSpecularSettings.specularLobeAngleFraction = 0.9f;
mRelaxDiffuseSpecularSettings.specularLobeAngleSlack = 10.0f;
mRelaxDiffuseSettings.prepassBlurRadius = 16.0f;
mRelaxDiffuseSettings.diffuseMaxFastAccumulatedFrameNum = 2;
mRelaxDiffuseSettings.diffuseLobeAngleFraction = 0.8f;
mRelaxDiffuseSettings.disocclusionFixMaxRadius = 32.0f;
mRelaxDiffuseSettings.disocclusionFixNumFramesToFix = 4;
mRelaxDiffuseSettings.spatialVarianceEstimationHistoryThreshold = 4;
mRelaxDiffuseSettings.atrousIterationNum = 6;
mRelaxDiffuseSettings.depthThreshold = 0.02f;将dict中的value赋给对应key值的设置
for (const auto& [key, value] : dict)
{
if (key == kEnabled) mEnabled = value;
else if (key == kMethod) mDenoisingMethod = value;
// Common settings.
else if (key == kWorldSpaceMotion) mWorldSpaceMotion = value;
else if (key == kDisocclusionThreshold) mDisocclusionThreshold = value;
// Pack radiance settings.
else if (key == kMaxIntensity) mMaxIntensity = value;
// ReLAX diffuse/specular settings.
else if (mDenoisingMethod == DenoisingMethod::RelaxDiffuseSpecular || mDenoisingMethod == DenoisingMethod::ReblurDiffuseSpecular)
{
篇幅过长,不展示
}
else if (mDenoisingMethod == DenoisingMethod::RelaxDiffuse)
{
篇幅过长,不展示
}
else
{
logWarning("Unknown field '{}' in NRD dictionary.", key);
}边栏推荐
- [thinking about the process of structure optimization] how to build the evaluation ability of the impact of technical solutions
- 线程池执行流程
- < 山东大学软件学院项目实训 > 渲染引擎系统——基础渲染器(六)
- acwing796 子矩阵的和
- 连续八年包装饮用水市占率第一,这个品牌DTC是如何持续增长的?
- 批量--03---CmdUtil
- C packing and unpacking
- C regular expression
- Unicom Network Management Protocol block diagram
- acwing 802. 区间和 (离散化)
猜你喜欢

关于组件传值

acwing 803. Interval merging

ER diagram made by StarUML based on the last student achievement management system

连续八年包装饮用水市占率第一,这个品牌DTC是如何持续增长的?

acwing788. 逆序对的数量

acwing795 前缀和(一维)

Project training of Software College of Shandong University rendering engine system radiation pre calculation (IX)

< 山东大学软件学院项目实训 > 渲染引擎系统——基础渲染器(七)

Unicom Network Management Protocol block diagram

Axure RP 9 for MAC (interactive product prototyping tool) Chinese version
随机推荐
The market share of packaged drinking water has been the first for eight consecutive years. How does this brand DTC continue to grow?
从斐波那契数列求和想到的俗手、本手和妙手
读取mhd、raw图像并切片、归一化、保存
小飞页升级变智能修复Bug更快速了
Tensorflow function: tf nn. in_ top_ k()
acwing 2816. 判断子序列
Reprise de Google net
线程池执行流程
D structure as index of multidimensional array
[automation] kolla Based Automated Deployment CEPH cluster
In 2020, the demand for strain sensors in China will reach 9.006 million, and the market scale will reach 2.292 billion yuan [figure]
< 山东大学软件学院项目实训 > 渲染引擎系统——基础渲染器(七)
acwing794 高精度除法
UE4 common type conversion
Example of bit operation (to be continued)
【工具推荐】个人本地 markdown 知识图谱软件 Obsidian
Saga体系结构模式:微服务架构下跨服务事务的实现
批量--04---移动构件
Redis General Command
acwing 800. 数组元素的目标和