Files
XCEngine/docs/plan/毕设/论文正文大纲.md

14 KiB
Raw Blame History

毕业设计论文正文大纲

一、正文总体写法

这篇论文的正文主线应当明确为:

  1. 以渲染引擎的设计与实现为主体。
  2. 以体积渲染作为渲染引擎当前阶段最重要的高级渲染扩展来展开。
  3. 体积渲染理论必须单独成章。
  4. NanoVDB 体积渲染模块的工程实现必须单独成章。

同时第1章绪论不能脱离现有开题报告另起炉灶。更合理的写法是

  1. 继承开题报告中关于体积特效、实时体积渲染、NanoVDB 和 DirectX 12 的背景与问题意识。
  2. 结合当前项目的真实工程进展,把开题阶段的目标落到“渲染引擎主体 + 体积渲染扩展”的实际形态上。
  3. 让绪论看起来像开题报告的自然展开和工程落地版本,而不是完全换题重写。

因此,正文结构不能写成“只围绕体积渲染展开”,也不能把体积渲染理论简单塞进技术基础里带过去。更合适的结构是:

  1. 绪论
  2. 渲染引擎发展现状与本课题引擎概述
  3. 体积渲染理论基础
  4. 渲染引擎总体架构设计
  5. 渲染引擎核心模块设计与实现
  6. 编辑器与引擎工作流设计与实现
  7. 基于 NanoVDB 的体积渲染模块设计与实现
  8. 系统测试与结果分析
  9. 总结与展望

二、字数分配建议

按正文约 2 万字估算,可按下表控制:

章节 建议字数
第1章 绪论 1800
第2章 渲染引擎发展现状与本课题引擎概述 1600
第3章 体积渲染理论基础 2500
第4章 渲染引擎总体架构设计 2400
第5章 渲染引擎核心模块设计与实现 3500
第6章 编辑器与引擎工作流设计与实现 2900
第7章 基于 NanoVDB 的体积渲染模块设计与实现 3100
第8章 系统测试与结果分析 1800
第9章 总结与展望 700
合计 20000 左右

这个分配的含义是:

  1. 引擎主体部分占正文大头。
  2. 体积渲染理论单独给出完整章节。
  3. 体积渲染实现章节作为高级扩展重点展开。

三、正文结构设计

第1章 绪论

1.1 课题背景

这一节应直接承接开题报告中的选题背景,建议写成下面三点:

  1. 随着实时图形应用复杂度不断提升,渲染引擎已经从单一绘制程序发展为集图形接口抽象、资源管理、场景组织、材质与光照、脚本运行时、编辑器工具链于一体的综合系统,是支撑现代图形应用开发的重要基础。
  2. 云、雾、烟、火等体积特效已经成为现代实时图形表现中的常见内容,但实时体积渲染涉及参与介质中的吸收、散射、透射率累积与大量采样计算,在效果质量与实时性能之间始终存在明显约束。
  3. OpenVDB 与 NanoVDB 为稀疏体数据表达提供了较成熟的技术路径,其中 NanoVDB 更适合 GPU 访问同时DirectX 12 提供了更底层的资源与命令控制能力,适合作为体积特效实现与渲染引擎扩展的技术基础。

1.2 课题意义

这一节可以从两个层面展开:

  1. 体积渲染层面的意义
    将 NanoVDB 稀疏体数据与 DirectX 12 图形 API 相结合,探索实时体积特效渲染的实现路径,为云、雾、烟等参与介质效果的工程实现提供参考。

  2. 渲染引擎层面的意义
    在渲染引擎平台上完成资源、场景、材质、光照、脚本与编辑器协同设计,并在此基础上扩展体积渲染能力,有助于体现工程设计类毕业设计的系统性与完整性。

1.3 本课题的主要内容

这一节应在不偏离开题报告目标的前提下,明确当前课题已经形成的真实工作结构,建议写成两部分:

  1. 渲染引擎主体部分
    包括图形接口抽象层、渲染主链、资源系统、场景与组件系统、模型与材质系统、多光源与阴影、C# 脚本系统以及编辑器工作流支撑等内容。

  2. 体积渲染扩展部分
    包括体积渲染理论分析、NanoVDB 稀疏体数据加载、GPU Buffer 访问方式、体积光线步进流程、跳空优化和体积阴影实现等内容。

1.4 本文的主要工作

这一节可直接概括本文已经完成的主要工程工作,例如:

  1. 完成了渲染引擎的总体架构设计与模块划分。
  2. 实现了 RHI、资源系统、场景组件系统和渲染主链等核心运行时模块。
  3. 实现了模型渲染、材质系统、多光源和简单阴影等基础渲染能力。
  4. 实现了 C# 脚本系统以及编辑器视口与调试支撑能力。
  5. 完成了基于 NanoVDB 的体积渲染模块原型设计与实现,当前正在向主引擎主线集成收尾推进。

1.5 论文结构安排

这一节可以自然说明全文安排逻辑:

  1. 前两部分先交代渲染引擎发展现状与主流引擎分析,以及体积渲染理论基础。
  2. 中间几章集中展开渲染引擎主体的架构设计、核心模块实现以及编辑器工作流实现。
  3. 后续章节再集中说明基于 NanoVDB 的体积渲染模块设计、系统测试与实验分析。

第2章 渲染引擎发展现状与本课题引擎概述

这一章不再写成通用技术教材式基础,而是从发展脉络、主流引擎能力对比、体积特效支持现状和本课题引擎当前完成情况四个角度,先把“当前行业在做什么”以及“本课题已经做到了什么”交代清楚。

2.1 渲染引擎的发展历程与能力演进

建议写:

  1. 从单一绘制程序到综合引擎平台的发展过程
  2. 从固定管线到可编程管线后的能力扩展
  3. 从运行时渲染到资源、脚本、编辑器协同工作流的演进

2.2 当前主流渲染引擎的特点与对比分析

建议写:

  1. Unity 的组件化、资源工作流与编辑器体系
  2. Unreal Engine 的高质量渲染能力与工具链体系
  3. Godot 等开源引擎的开放性与轻量化特点
  4. 主流引擎在架构、编辑器、脚本与渲染扩展方面的共性

2.3 主流引擎中体积特效的支持现状

建议写:

  1. 体积雾、体积云、体积光等效果在实时图形中的应用
  2. 主流引擎中体积特效与光照、材质、场景系统的结合方式
  3. 实时体积渲染在效果质量与性能上的主要矛盾

2.4 本课题渲染引擎的总体介绍

建议写:

  1. 本项目渲染引擎的定位与整体组成
  2. 当前已实现的核心能力与工作流闭环
  3. 体积渲染模块在当前项目阶段中的位置

2.5 本章小结


第3章 体积渲染理论基础

这一章必须单独成章。

建议这一章主要吸收 docs/plan/毕设 下三份体积渲染理论笔记的内容,但写法要服务于后续工程实现。

3.1 参与介质与体积渲染基本概念

建议写:

  1. 参与介质的定义
  2. 吸收、散射、透射率
  3. 体积颜色形成的基本原因

3.2 比尔-朗伯定律与光线透射

建议写:

  1. 比尔-朗伯定律的物理含义
  2. 消光系数、吸收系数、散射系数的关系
  3. 透射率在体积渲染中的作用

3.3 体绘制方程与单次散射近似

建议写:

  1. 体绘制方程的基本形式
  2. 单次散射的含义
  3. 相位函数的作用
  4. 为什么在实时系统中常采用简化模型

3.4 光线步进算法原理

建议写:

  1. ray marching 的基本思想
  2. 正向步进与反向步进
  3. 步长、最大步数与误差控制
  4. 提前终止和抖动等常见优化

3.5 稀疏体数据与空域跳过思想

建议写:

  1. 稠密体素网格的问题
  2. 稀疏体数据结构的意义
  3. 空区域跳过对实时性的作用

3.6 本章小结

这一章的作用是为第7章的 NanoVDB 体积渲染实现做理论铺垫。


第4章 渲染引擎总体架构设计

这一章的任务是把整个渲染引擎的组织方式讲清楚,重点回答系统如何分层、各模块职责如何划分、运行时与编辑器如何协同,以及体积渲染扩展应当放在什么位置。

4.1 引擎设计目标

建议写:

  1. 形成完整的渲染引擎工作框架。
  2. 建立稳定的基础场景渲染闭环。
  3. 兼顾运行时能力与编辑器工作流。
  4. 为高级渲染特性扩展预留架构空间。

4.2 引擎总体分层架构

建议配图,按层写:

  1. 平台层
  2. 图形接口抽象层
  3. 资源与场景层
  4. 渲染组织层
  5. 脚本与编辑器层

4.3 核心模块职责划分

建议围绕真实项目模块写其职责边界:

  1. RHI
  2. Rendering
  3. Resources / AssetDatabase
  4. Scene / Components
  5. Scripting
  6. Editor

4.4 模块协同与数据流

建议明确写清:

  1. 资源从工程目录进入运行时的路径
  2. 场景状态到渲染数据的转换关系
  3. 编辑器视口与渲染主链的接入关系
  4. 脚本更新、场景状态与渲染结果之间的联动

4.5 体积渲染模块在总体架构中的位置

这一节必须明确:

  1. 体积渲染作为高级渲染扩展的接入层次。
  2. 它对 RHI、资源系统、渲染主链与编辑器能力的依赖关系。
  3. 当前原型验证与后续正式集成之间的关系。

4.6 本章小结


第5章 渲染引擎核心模块设计与实现

这一章集中写引擎主体能力,把“引擎真正做出来了什么”放在一章里讲清楚。

5.1 RHI 抽象层设计与实现

建议写:

  1. 多后端抽象思路
  2. D3D12 / OpenGL / Vulkan 的统一封装
  3. Buffer、Texture、ResourceView、Pipeline 等关键对象

5.2 资源系统设计与实现

建议写:

  1. Assets + .meta + Library 组织方式
  2. AssetDatabase
  3. artifact 缓存与运行时加载

5.3 场景与组件系统设计与实现

建议写:

  1. Scene
  2. GameObject
  3. Component
  4. CameraComponent
  5. LightComponent
  6. MeshFilterComponent
  7. MeshRendererComponent

5.4 渲染主链设计与实现

建议写:

  1. SceneRenderer
  2. CameraRenderer
  3. RenderPipeline
  4. 渲染请求生成与执行流程

5.5 模型、材质与着色器系统

建议写:

  1. OBJ 模型加载
  2. Mesh / Material / Shader 的组织关系
  3. 材质参数与 shader 资源绑定

5.6 多光源与简单阴影实现

建议写:

  1. 主光与附加光组织方式
  2. 光照计算流程
  3. 当前简单阴影实现方式

5.7 C# 脚本系统设计与实现

建议写:

  1. ScriptEngine
  2. ScriptComponent
  3. 托管与原生运行时桥接
  4. 生命周期调度

5.8 本章小结


第6章 编辑器与引擎工作流设计与实现

这一章专门写引擎的可视化工作界面和工具链闭环,也是展示整个系统操作界面的主要章节。

6.1 编辑器在引擎中的定位

建议写:

  1. 编辑器是引擎工作流中的可视化工作界面
  2. 编辑器承担场景查看、资源管理、脚本调试和渲染验证等任务

6.2 编辑器界面总体布局设计

这里建议放整套界面截图,并说明:

  1. 菜单栏
  2. Hierarchy
  3. Inspector
  4. Project
  5. Console
  6. Scene / Game 视口

6.3 Scene 与 Game 视口实现

建议写:

  1. 离屏渲染目标
  2. 视口纹理接入方式
  3. Scene/Game 视口与引擎渲染主链的关系

6.4 编辑器交互与调试辅助能力

建议写:

  1. ObjectId Picking
  2. Outline
  3. Grid
  4. Gizmo 和辅助显示能力

6.5 资源与脚本工作流支撑

建议写:

  1. 资源重导入
  2. 脚本程序集重建
  3. 编辑器在资源与脚本调试中的作用

6.6 本章小结


第7章 基于 NanoVDB 的体积渲染模块设计与实现

这一章是体积渲染实现章节建立在第3章理论基础和前面引擎基础之上。

7.1 模块设计目标

建议写:

  1. 在现有渲染引擎基础上扩展体积渲染能力。
  2. 支持 NanoVDB 稀疏体数据。
  3. 构建可实时运行的体积渲染原型。
  4. 为后续正式并入主引擎提供实现基础。

7.2 NanoVDB 数据加载与 GPU 上传

建议写:

  1. .nvdb 文件读取流程
  2. CPU 侧元数据解析
  3. world bbox、voxel size 等信息提取
  4. 默认堆 GPU buffer 与上传流程

7.3 体积渲染核心流程实现

建议写:

  1. 相机光线构造
  2. 与体积包围盒求交
  3. 体积内部采样与累积
  4. 颜色与透明度输出

7.4 稀疏体数据访问与跳空优化

建议写:

  1. StructuredBuffer<uint> 的访问方式
  2. PNanoVDB 在 shader 中的使用
  3. HDDA 或层级访问带来的空域跳过

7.5 光照与体积阴影实现

建议写:

  1. 单次散射近似
  2. 沿光照方向的阴影积分
  3. 当前实现的近似性与局限性

7.6 当前实现状态分析

建议明确区分:

  1. 已完成部分
  2. 正在收尾部分
  3. 尚未正式并入主引擎主线的部分

7.7 本章小结


第8章 系统测试与结果分析

这一章要同时验证“渲染引擎主体”和“体积渲染模块”。

8.1 测试环境与实验配置

写:

  1. 硬件环境
  2. 软件环境
  3. 测试场景与测试数据

8.2 渲染引擎主体功能验证

建议写:

  1. 模型加载与渲染验证
  2. 材质系统验证
  3. 多光源与阴影验证
  4. 脚本系统验证
  5. 编辑器视口验证

8.3 体积渲染模块验证

建议写:

  1. NanoVDB 文件加载正确性
  2. GPU 数据访问正确性
  3. 步长、步数、阴影参数变化验证

8.4 效果与性能分析

建议写:

  1. 体积渲染结果展示
  2. 参数对效果与性能的影响
  3. 跳空优化的作用

8.5 本章小结


第9章 总结与展望

9.1 工作总结

建议分两部分总结:

  1. 渲染引擎主体完成情况
  2. 体积渲染模块完成情况

9.2 当前不足

建议诚实写:

  1. 体积渲染正式并入主引擎仍在推进
  2. 更完整的资源化与工具化仍待完善
  3. DXR 与更高质量体积光照仍可继续扩展

9.3 后续展望

建议写:

  1. 继续完善渲染引擎整体能力
  2. 推动体积渲染模块正式主线集成
  3. 完善编辑器工作流和高级渲染扩展

四、这一版大纲的关键点

  1. 渲染引擎是全文主体。
  2. 体积渲染理论单独成章。
  3. NanoVDB 体积渲染实现单独成章。
  4. 引擎主体与体积渲染扩展的关系在结构上是清楚分开的。