From 96b2470f251327834f758c63df30046c914a7e0f Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Thu, 27 Mar 2025 22:45:49 +0800 Subject: [PATCH] vault backup: 2025-03-27 22:45:49 --- .../Lumen_SHData.png | 3 +++ .../卡通渲染相关资料/卡通渲染开发总览.md | 15 +++++++++----- .../{Toon ToneMapping.md => ToonToneMapping.md} | 0 .../渲染功能/ShaderModel/Toon多光源参考.md | 1 + .../渲染功能/ToonReflection&GI控制/Toon GI & Lumen.md | 20 +++++++++++++++++-- 5 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 02-Note/演讲与教程笔记/虚幻开放日2024/用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线/Lumen_SHData.png rename 03-UnrealEngine/卡通渲染相关资料/渲染功能/PostProcess/{Toon ToneMapping.md => ToonToneMapping.md} (100%) diff --git a/02-Note/演讲与教程笔记/虚幻开放日2024/用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线/Lumen_SHData.png b/02-Note/演讲与教程笔记/虚幻开放日2024/用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线/Lumen_SHData.png new file mode 100644 index 0000000..05ab6e1 --- /dev/null +++ b/02-Note/演讲与教程笔记/虚幻开放日2024/用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线/Lumen_SHData.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc80a75d89bf7a45fffaf294047b69d1e4abcbe35eac14b2c012a42a522e261e +size 352928 diff --git a/03-UnrealEngine/卡通渲染相关资料/卡通渲染开发总览.md b/03-UnrealEngine/卡通渲染相关资料/卡通渲染开发总览.md index 97bbff0..c409805 100644 --- a/03-UnrealEngine/卡通渲染相关资料/卡通渲染开发总览.md +++ b/03-UnrealEngine/卡通渲染相关资料/卡通渲染开发总览.md @@ -119,7 +119,8 @@ rating: ⭐⭐⭐ 1. [x] CCA Tonemapping 2. [x] GT Tonemapping https://github.com/yaoling1997/GT-ToneMapping 3. [x] AGX Tonemapping https://github.com/EaryChow/AgX - 6. [ ] Tonemapping不够用了: Local Tonemapping方案总结 https://zhuanlan.zhihu.com/p/519457212 + 4. [ ] 其他Tonemapping: Local Tonemapping方案总结 https://zhuanlan.zhihu.com/p/519457212 + 5. [ ] ***Fix 运行的时候出现的渲染错误***。 9. [ ] ToonRimLighting 1. [x] 材质边缘光(位于引擎插件/ToonUtility/MaterialFunction/MF_RimLighting) 2. [ ] 后处理边缘光 @@ -128,14 +129,18 @@ rating: ⭐⭐⭐ 10. [ ] Reflection控制 1. [x] ReflectionAlpha实现。 2. [ ] Matcap Reflection实现。 + 3. [ ] 对Reflection Texture进行Kuawahara处理,之后根据亮度抽象成第二高光(提取亮度之后,乘以高光颜色) + 1. 【[UFSH2024]用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 | 晨风 Neverwind 完美世界游戏】 【精准空降到 14:24】 https://www.bilibili.com/video/BV1rW2LYvEox/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=864 11. [ ] Toon GI(Lumen) 1. [ ] 向下采样 - 2. [ ] 平滑法线采样 + 2. [ ] 平滑法线 => 平滑饱和度 1. [ ] 使用哪个https://zhuanlan.zhihu.com/p/25839790454 - 2. [ ] 尝试抹平Lumen法线。 + 2. [ ] 尝试使用高斯模糊Lumen法线。 3. [ ] 尝试使用ViewVector来平滑法线。 1. 用相机方向的话,随着相机绕角色旋转,角色身上亮度变化会比较明显,所以视频里用的是把平滑度乘在Lumen的1-2阶球谐上 - 2. 伪代码 OutSH = SH0 + (SH1 + SH2) * Smoothness; + 4. [ ] 尝试平滑二阶、三阶球谐,来使得Lumen效果低频化 + 1. 伪代码 OutSH = SH0 + (SH1 + SH2) * Smoothness; + 5. [ ] Cel适配,需要实现[[Toon多光源参考|Toon多光源后处理Pass]] 12. [ ] 阴影控制 1. [x] 控制深度偏移 1. [x] 在材质中使用ShadowPassSwitch再对ViewSpace的Z轴方向(使用DirectionalLightVector比较可以只对方向光进行偏移)进行WPO偏移实现。 @@ -153,7 +158,7 @@ rating: ⭐⭐⭐ 15. [ ] TSR 1. [ ] [UE TAAU详细解析](https://zhuanlan.zhihu.com/p/681910495) 2. [ ] [UE TSR详细解析](https://zhuanlan.zhihu.com/p/682350835) -16. [ ] [[Toon多光源参考]] +16. [ ] [[Toon多光源参考|Toon多光源后处理Pass]] 17. [ ] [【虚幻5】UE_动画变形工具(晶格变形)](https://www.bilibili.com/video/BV1DsR3YoEML/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e) 18. [ ] 月下幻影的掰法线思路:`N = _Scale * NoL * L + N`尝试找到使用场景。资产路径`/Game/ToonContentExample/MaterialUtility/NormalOffsetToDirectionalLight/M_NormalOffsetToDirectionalLight` 19. [ ] RGS 光线追踪与路径追踪支持。 diff --git a/03-UnrealEngine/卡通渲染相关资料/渲染功能/PostProcess/Toon ToneMapping.md b/03-UnrealEngine/卡通渲染相关资料/渲染功能/PostProcess/ToonToneMapping.md similarity index 100% rename from 03-UnrealEngine/卡通渲染相关资料/渲染功能/PostProcess/Toon ToneMapping.md rename to 03-UnrealEngine/卡通渲染相关资料/渲染功能/PostProcess/ToonToneMapping.md diff --git a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/Toon多光源参考.md b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/Toon多光源参考.md index 2ce967e..be6dd00 100644 --- a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/Toon多光源参考.md +++ b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ShaderModel/Toon多光源参考.md @@ -10,6 +10,7 @@ rating: ⭐ - DirectionalLight - 主要是通过判断所有灯光的Forward Shading Priority与亮度,取得主光。 - 之后在FDeferredLightPS中添加一个判断是否是主光的变体,并进行设置即可。 + - 也可以通过FlattenNormal来减少高频信息。 - PointLight - 可以通过FlattenNormal(ShadingModels.ush)来减少点光源计算中的高频细节 - YivanLee的多光源方案 diff --git a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/Toon GI & Lumen.md b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/Toon GI & Lumen.md index 315a986..a550837 100644 --- a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/Toon GI & Lumen.md +++ b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/Toon GI & Lumen.md @@ -6,7 +6,10 @@ tags: rating: ⭐ --- # Toon Lumen -抹平法线思路: +## 抹平法线思路 +### ViewVector Fix WorldNormal +参考: +- [【UE5】环境光与GI 2:抹平法线](https://zhuanlan.zhihu.com/p/25839790454) 在`LumenScreenProbeGather.usf`中对法线进行抹平处理。其Pass位于 - DiffuseIndirectAndAO @@ -38,7 +41,16 @@ if (IsValid(Material)) 该方法存在一些问题:**当相机围绕角色旋转时,角色身上的 GI变化会比较明显**。 -# Spherical Harmonics +### 低频化WorldNormal & Spherical Harmonics +参考: +- [[UFSH2024]用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 | 晨风 Neverwind 完美世界游戏】【精准空降到 12:55】](https://www.bilibili.com/video/BV1rW2LYvEox/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=775) +- [[UFSH2024]用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 | 晨风 Neverwind 完美世界游戏】 【精准空降到 36:52】](https://www.bilibili.com/video/BV1rW2LYvEox/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=2212) + - [ ] 需要实现:法线平滑 => 饱和度平滑。(没说细节,不清楚算法) +- [[UFSH2024]用虚幻引擎5为《幻塔》定制高品质动画流程风格化渲染管线 | 晨风 Neverwind 完美世界游戏】【精准空降到 35:09】](https://www.bilibili.com/video/BV1rW2LYvEox/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e&t=2109) + - [ ] 小于等于High存储的是一个八面体,提前加一个Pass进行平滑:采样法线方向半球面的平均数值。 + - [ ] 大于等于Epic存储的是一个三阶球谐,保持1阶球谐数值不变,对2~3阶球谐按照系数进行平滑。并且添加能量补偿,大致与PBR的结果接近。 +![[Lumen_SHData.png|800]] + UE5中采样球谐贴图方法(ReflectionEnvironmentShared.ush): ```c++ /** @@ -67,3 +79,7 @@ float3 GetSkySHDiffuse(float3 Normal) } ``` +## Cel适配 +需要实现Cel多光源方案。 + +大致的思路就是Copy Lumen结果,之后在[[Toon多光源参考|Toon多光源Pass]]中提取亮度,再根据亮度采样Ramp计算光影结果。 \ No newline at end of file