Skip to content

af8a2a/VividRP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

753 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VividRP

English | 简体中文

VividRP 是一个面向 Unity 6 的实验性 Scriptable Render Pipeline(SRP)包。它以可视化、数据驱动的 RenderGraph 工作流为核心,并在此基础上探索延迟渲染、GPU Driven、Bindless、Ray Tracing、参考路径追踪、体积雾、虚拟纹理和时域超分辨率等高端渲染方向。

Important

  • 当前开发基线为 Unity 6000.7.0a3(提交 b08e599c)。package.json 的最低兼容声明仍为 6000.6.0a3;使用新功能时请以 6000.7.0a3 为准。
  • 当前最可靠的运行环境是 Windows + DirectX 12;Bindless 与 Ray Tracing 流程依赖 DX12 / DXR 能力。
  • VividRP 正在积极开发中。部分子系统是实验性实现,不承诺跨平台、生产就绪或向后兼容。
  • 本仓库不再与旧版 VividRP 的功能清单一一对应;请以当前源码、本文档和 Documentation~ 为准。

核心工作流

VividRP 的主要内容由 .vrdg 图资产描述:

  1. 在 Project 窗口中选择 Assets/Create/VividRP/Standard Render Graph 创建可运行的模板图,或选择 Assets/Create/VividRP/Render Graph 创建空图。
  2. 双击 .vrdg,在基于 com.unity.graphtoolkit 的编辑器中配置 Pass 与资源连接。
  3. 导入器会将图编译为运行时的 RenderGraphData
  4. 将生成的 RenderGraphData 指定给 VividRenderPipelineAssetRender Graph Asset 字段。

Pass 通过 [RenderGraphResource] 标记的字段自动生成端口。运行时使用 PassRecorder 调度三类标准 Pass:

  • RasterPass:光栅化渲染;
  • ComputePass:Compute Shader 调度;
  • UnsafePass:需要原生 CommandBuffer 访问的场景。

图编辑器支持 Texture、Buffer、Render List、History、Preview 和 Acceleration Structure 资源,以及 Local Subgraph 形式的 SubSystem。资源端口、依赖关系、Pass Culling 和图校验均由编译流程处理。

已包含的能力

下列模块已在当前包中提供实现;可用性仍取决于项目配置、平台和硬件能力。

领域 主要内容
基础渲染 预深度、GBuffer、延迟光照、Motion Vector、HZB、通用物体绘制、Color Pyramid
阴影与光照 CSM / PCSS、簇状光照、方向光 DXR 阴影与 SIGMA 降噪、天空与大气散射
后处理 自动曝光、Bloom、色彩分级、景深、GTAO、镜头光晕、SSR(含 ReBlur)、局部曝光、最终合成
抗锯齿与超分 CMAA2、TAA、TSR、FSR3;DLSS Super Resolution / Ray Reconstruction 需额外插件集成
体积效果 全局及局部体积雾、VBuffer、体积光照和 Max-Z 生成
GPU Driven Meshlet 导入与渲染、Visibility Buffer、对象调度、调试 Overlay、Bindless 描述符支持
Ray Tracing 可序列化 RTAS 描述符、RTAS 构建、方向光光追阴影与相关调试 Pass
参考路径追踪 基于 OpenPBR 的多反弹 DXR 原型、累积、Ray Tracing GBuffer、NRD REBLUR 预览降噪,以及 Unity Open Image Denoise 后端
资源与子系统 虚拟纹理(含 SVT)、DBuffer Decal、LTC 面光源、反射探针图集、ReGIR、天空管理
Per-Object Buffer 不依赖 MaterialPropertyBlock 的逐 Renderer Shader 数据、集中生成的 HLSL 布局、颜色示例与 MPB CPU 对比基准
实验性粒子 基于 ECS 页式存储的粒子模拟、裁剪、排序、Billboard / Mesh / Stretch 渲染、Trail、碰撞和子发射器
编辑器与测试 RenderGraph 编辑、图导入/编译/校验、节点注册生成、资源描述符 Drawer,以及 EditMode 测试套件

材质侧提供 StandardLitSimpleLitSimpleForwardStandardLayeredLit 等 Shader,并包含 URP Lit 与 HDRP Lit 的材质转换工具。相机、灯光、反射探针及多数 Volume 设置均配有 VividRP 的附加组件或自定义 Inspector。

快速开始

  1. 使用 Unity 6000.7.0a3 或兼容的 6000.7 版本打开项目。
  2. 通过 Package Manager 将本包作为嵌入式包或本地包加入项目。
  3. 选择 Assets/Create/VividRP/Vivid Render Pipeline 创建 VividRenderPipelineAsset
  4. Project Settings > Graphics 中将该资产指定为当前 Render Pipeline。
  5. 创建并编辑一个 Standard Render Graph,将其生成的 RenderGraphData 赋给管线资产。
  6. 如需后处理或全局渲染设置,在管线资产 Inspector 中初始化 Default Volume,或在场景中创建 Volume Profile。
  7. 如需时域抗锯齿,在相机上添加 VividAdditionalCameraData 并选择对应模式。

可选:GPU Driven、Bindless 与 Ray Tracing

  • 在管线资产 Inspector 中启用 GPU Driven
  • Bindless 需要在项目根目录执行下列脚本,然后重启 Unity:
powershell -ExecutionPolicy Bypass -File .\Packages\VividRP\Setup-Bindless.ps1
  • Ray Tracing 需要 DXR 兼容硬件及 DX12。请在 Volume Profile 中添加 VividRP/Ray Tracing/Settings 并按项目需求配置。
  • DLSS 需要安装 NVIDIA 相关依赖,并定义 DLSS_PLUGIN_INTEGRATE 脚本符号。
  • 参考路径追踪使用独立的 .vrdg 和管线资产,面向受控场景的验证,不以实时性能或完整 ground truth 为目标。当前支持范围以 StandardLit 的不透明 / Alpha Test 材质为主;OIDN 后端仅在 Editor 或 64 位 Standalone 且 com.unity.rendering.denoising 可用时启用。

目录导览

  • Runtime/RenderPipeline:管线、管线资产、全局设置与 Volume 集成。
  • Runtime/RenderGraph:运行时图数据、资源描述符、History / Preview、Pass Recorder 和 Frame Context。
  • Runtime/RenderPass:Core、Debug 与 Example Pass。
  • Runtime/SubSystem:GPU Driven、Virtual Texture、Volumetric、Sky、Decal、Reflection、DLSS 等子系统。
  • Runtime/ComponentData:相机、灯光和反射探针附加数据。
  • Runtime/PerObjectBuffer:逐 Renderer Shader 数据系统及示例。
  • Runtime/Experiment/Particle:实验性 ECS 粒子系统。
  • Editor/RenderGraph:图编辑器、导入器、编译器、校验与节点注册生成。
  • Editor/PipelineResource[PipelineResource] 的资源回收与同步工具。
  • Shaders:包内 Shader 及其程序集。
  • Documentation~:具体工作流、限制和设计说明。
  • Tests/Editor:EditMode 测试。

资源同步与开发提示

  • .vrdg 是 RenderGraph 的源文件;不要手动维护导入生成的 RenderGraphData 内容。
  • 不要手动编辑 Editor/RenderGraph/GeneratedRenderPassNodes.g.csRuntime/Resources/PipelineResources.asset。前者由节点注册生成器维护,后者应通过资源回收流程更新。
  • 修改 [PipelineResource][ResourcePath] 声明后,选择 Runtime/Resources/PipelineResources.asset,在 Inspector 中执行 Recollect Engine Resources
  • RenderGraph Pass 的资源字段名是端口、预览和已编译绑定的契约;变更前请一并检查图资产与测试。

文档与路线图

About

Scriptable Render Pipeline (SRP) featuring modern high fidelity rendering techniques

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages