Advertisement

< 山东大学软件学院项目实训 > 渲染引擎系统(三)(组工作合集 & 个人工作)

阅读量:

目录

  • 前言
    • 各工作进展汇报
      1. 辐射预处理
      1. 渲染系统
      1. 降噪优化
      • 3-1 阶段任务分解
      • 3-2 具体工作安排

前言

本项目旨在研发一套功能全面且表现卓越的真实场景渲染系统引擎。该系统预期能够有效地实现光线模拟与噪波抑制等关键功能的处理。

各工作情况

1、辐射预计算

基于 Falcor 平台开发渲染流程中的辐射预计算模块,以达到实时环境全局光照效果的目的,请关注以下链接获取具体进度:

2、渲染框架

该部分将实施对 Falcor 基础框架的优化,并增加基础功能以配合其他工作的推进

3、后降噪处理

3.1 阶段任务

为了集成NRD SDK到 Falcor 3.4 框架中进行项目开发,在深入掌握 NRD 的去噪核心流程之后,进一步需要详细了解Falcor框架的渲染通道模块化架构设计及其相关的代码实现细节。

3.2 个人具体工作

该部分的工作由两名成员共同承担;其他一位组员的具体情况,请访问这位作者了解。就我的工作内容而言:

为了更好地了解 Falcor 3.4 渲染通道的工作原理及其配置机制,请您参考其其他相关渲染通道的信息。这些渲染通道按照特定流程进行配置,并且它们的具体分布情况见下文图示:

在这里插入图片描述

其中,以 DLSSPass 为例,可以看出 Falcor 的渲染通道需要有如下基础部分:

1、继承 Falcor 的渲染通道类 Render Pass:

复制代码
    class DLSSPass : public RenderPass

2、拥有通道代号指针等:

复制代码
    public:
    using SharedPtr = std::shared_ptr<DLSSPass>;
    
    static const Info kInfo;

第3条指出,在RenderPass中定义了多个子类实现的抽象基类功能,并且这些功能需基于不同的渲染通道需求而被优化配置。

复制代码
    static SharedPtr create(RenderContext* pRenderContext, const Dictionary& dict);
    
    virtual Dictionary getScriptingDictionary() override;
    virtual RenderPassReflection reflect(const CompileData& compileData) override;
    virtual void setScene(RenderContext* pRenderContext, const std::shared_ptr<Scene>& pScene) override;
    virtual void execute(RenderContext* pRenderContext, const RenderData& renderData) override;
    virtual void renderUI(Gui::Widgets& widget) override;

4、绑定该通道的固定代码:

在这里插入图片描述

总体而言,在开发过程中需要先为 NRD 类(.h 文件中)和功能函数(.cpp 文件中)进行详细设计与编码。

全部评论 (0)

还没有任何评论哟~