<山东大学项目实训>渲染引擎系统(四)

目录

项目介绍

NRD

项目目标

分工

当前阶段工作


项目介绍

NRD

全名Nvidia Real-time Denoiser ,是英伟达正在研发的一个时空双域降噪库,旨在处理低的RPP(ray per pixel)信号。

该技术的图形 API 环境是:DirectX11、DirectX12 以及 Vulkun。其集成方法有三种,其中一种可以是利用 Nvidia 的 NRI(NVIDIA Rendering Interface)包装上述三个 API,进行集成。

项目目标

Falcor框架下集成nrd

分工

与小组成员共同负责NRDPass.h与NRDPass.cpp的编写

笔者负责私有部分的声明与定义。并在之后的文章中记录。

当前阶段工作

仿照Falcor其他RenderPasses编写NRDPass.h

其中包含了NRDPass类的设计。

含有Falcor所需接口、NRD对应API。

具体内容不做过多展示。

class NRDPass : public RenderPass
    {
    public:
        // for frame
        //公有成员变量//
        virtual Dictionary getScriptingDictionary() override;
        virtual RenderPassReflection reflect(const CompileData& compileData) override;
        virtual void compile(RenderContext* pRenderContext, const CompileData& compileData) override;
        virtual void execute(RenderContext* pRenderContext, const RenderData& renderData) override;
        virtual void renderUI(Gui::Widgets& widget) override;
        virtual void setScene(RenderContext* pRenderContext, const Scene::SharedPtr& pScene) override;


    private:
        //私有成员变量//

        // ------------- Functions ------------
        NRDPass(const Dictionary& dict);
        void reinit();
        void createPipelines();
        void createResources();
        void executeInternal(RenderContext* pRenderContext, const RenderData& renderData);
        void dispatch(RenderContext* pRenderContext, const RenderData& renderData, const nrd::DispatchDesc& dispatchDesc);

    };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值