vault backup: 2025-02-08 13:12:05

This commit is contained in:
BlueRose 2025-02-08 13:12:05 +08:00
parent 714b122948
commit b465ab62f5
2 changed files with 42 additions and 40 deletions

View File

@ -100,7 +100,9 @@ rating: ⭐⭐⭐
9. [ ] TODONanite模型支持。
10. [ ] TODO另一种思路定点内扩+Stencil的方式渲染内描边
4. [ ] TODORayTacing描边方法。
7. [ ] ToonPostProcess
7. [ ] ToonLighting
1. [ ] Cel
8. [ ] ToonPostProcess
1. [x] ToonBloom
2. [ ] ToonDiffusion对场景亮部进行降采样之后将亮度信息叠加到Toon物体的暗部上。
3. [ ] 晕染效果Background透过光功能。[[幻塔-Background透过光.png]]
@ -109,23 +111,23 @@ rating: ⭐⭐⭐
1. [ ] CCA Tonemapping
2. [ ] GT Tonemapping https://github.com/yaoling1997/GT-ToneMapping
3. [ ] AGX Tonemapping https://github.com/EaryChow/AgX
8. [ ] ToonRimLighting
9. [ ] ToonRimLighting
1. [ ] 后处理边缘光
2. [ ] Matcap
3. [ ] ASoul边缘光
9. [ ] Reflection控制
10. [ ] Toon GILumen)
10. [ ] Reflection控制
11. [ ] Toon GILumen)
1. [ ] 向下采样
2. [ ] 平滑法线采样
11. [ ] 阴影控制
12. [ ] 阴影控制
1. [x] 控制深度偏移
1. [x] 在材质中使用ShadowPassSwitch再对ViewSpace的Z轴方向使用DirectionalLightVector比较可以只对方向光进行偏移进行WPO偏移实现。
2. [ ] ContactShadow接触阴影实现衣服细节的DetailShadow
3. [x] 半程阴影DirectionOffsetToViewShadow
12. [ ] ToonTranslucent
3. [x] 半程阴影DirectionOffsetToViewShadow半分阴影[[幻塔-半程自阴影.png]]
13. [ ] ToonTranslucent
1. [ ] 通过模仿SingleLayerWater实现折射效果 https://zhuanlan.zhihu.com/p/657928532
2. [ ] 眉眼细节 [[幻塔-眉眼细节.png]]
13. [ ] 实现前向混合管线思路有21. Material直接计算光照结果。2. 自定义ToonBasePass到LightingPass后复制阴影贴图与Lumen渲染结果进行Composition。
14. [ ] 实现前向混合管线思路有21. Material直接计算光照结果。2. 自定义ToonBasePass到LightingPass后复制阴影贴图与Lumen渲染结果进行Composition。
1. 原神早期的方案:
1. 渲染地形(远景
2.
@ -136,39 +138,37 @@ rating: ⭐⭐⭐
6. 渲染深度与法线Buffer。
7. 渲染级联阴影。
8. 合成阴影与环境光照AO、环境探针
14. [ ] 云彩生成器
15. [ ] 云彩生成器
1. [ ] https://www.bilibili.com/video/BV1L5kdYFEXc/?spm_id_from=333.1007.tianma.4-1-11.click&vd_source=d47c0bb42f9c72fd7d74562185cee290
2. [ ] 风格化水面资产 https://item.taobao.com/item.htm?id=865360489543&pisk=gLHsX7NMiNb1gB7njFKURXly5Dwb5q9y1iZxqmBNDReTkigKDtQA6-FLJorOMSU2sqNju2VxQRoZRGDIPtWwSCmAh-yvzUJyUcman-Lyk8kOUGq4mNUAurCKv-rjPdNAXcmgnrIFkQlKjZg5RK5YDrKQpor7k-EYW9KQcuaYHPFAJ6E8JrexkSIdJuZ5MZCTHkKQju5OBoeYvMEaVtBtk-KIvyqxnDXQDCZ-fHz1qUDkpeKgJtBxdlNpTcUKrr-4i5TjbyXvy1Zg1coTRtBxKXkPllz9ZMz0QPDbfqvlIRFjTAVoQeBsl20KBSDp8B00QuV-MD-lTPDIQvFsCU1uCX3nd5DOWhqtsqDbQx71hDMb57HTOKx0CDEYdbneq6zidAkL1AT5ZPMiDjPItNTUuboEBWgJ89g0GXkgZA8dC4IyzTz7sJ5fA7XbAz-BAsf0xzPwqJ_edaNTxlTyAH_Gi5E3AmtBAsDg6kqF6HtCWc1..&spm=a21xtw.29178619.product_shelf.74.41727d6dRCDvul
15. [ ] 添加Debug View https://zhuanlan.zhihu.com/p/668782106
16. [ ] [_UE5_ Shader Print系统](https://zhuanlan.zhihu.com/p/637929634)
17. [ ] GBufferView实现。
18. [ ] Toon Debug模式可以让美术在材质进行进行简单的光照计算。
19. [ ] ToonShadow
16. [ ] 添加Debug View https://zhuanlan.zhihu.com/p/668782106
17. [ ] [_UE5_ Shader Print系统](https://zhuanlan.zhihu.com/p/637929634)
18. [ ] GBufferView实现。
19. [ ] Toon Debug模式可以让美术在材质进行进行简单的光照计算。
20. [ ] ToonShadow
1. ![[星穹铁道中下巴阴影处理.png]]
2. [ ] ToonSDFShadow
1. [ ] TODO: SDF贴图工具
3. [ ] ShadowPass https://zhuanlan.zhihu.com/p/619718145
1. [ ] 半分阴影[[幻塔-半程自阴影.png]]
20. [ ] LookDev场景
21. [ ] LookDev场景
1. [ ] https://zhuanlan.zhihu.com/p/394608910
21. [ ] 考虑往GBuffer中添加更多数据考虑Velocity以及SingleLayerWater
22. [ ] 考虑往GBuffer中添加更多数据考虑Velocity以及SingleLayerWater
1. ShaderMaterialDerivedHelpers.cppShader宏、GBufferInfo.cppGBuffer格式BasePassRendering.cpp950行SingleLayerWater写入GBuffer格式相关
2. 确定一下SingleLayerWater中VSMFiter与DistanceFieldShadow对渲染结果的影响之后在文档中说明。
22. [ ] 修复SIngleLayerWater的缩略图渲染渲染错误双击会有一瞬间的错误产生
23. [ ] 添加对应的Stat https://zhuanlan.zhihu.com/p/716644594
24. [ ] ToonLumen、GI以及晕染效果实现。![[卡通渲染晕染效果.mp4]]
25. [ ] 在材质中实现ToonEye相关效果
23. [ ] 修复SIngleLayerWater的缩略图渲染渲染错误双击会有一瞬间的错误产生
24. [ ] 添加对应的Stat https://zhuanlan.zhihu.com/p/716644594
25. [ ] ToonLumen、GI以及晕染效果实现。![[卡通渲染晕染效果.mp4]]
26. [ ] 在材质中实现ToonEye相关效果
1. 【二次元人物眼睛如何变形?】 https://www.bilibili.com/video/BV14M4m1y71A/?share_source=copy_web&vd_source=fe8142e8e12816535feaeabd6f6cdc8e
1. 原视频 https://www.youtube.com/watch?v=euIyX9v8rvw
2. 眼睛建模 https://youtu.be/s2_7Q2IIvNY?si=fWiYjqcLFXzdeQ-B&t=126
26. 尝试实现Forward+
27. 尝试实现Forward+
1. BasePass https://zhuanlan.zhihu.com/p/618698467
27. DX11问题修复
28. DX11问题修复
1. [x] ToonOutline SceneColorTexture为空的问题。 **DX11限制必须CopyTexture**
28. 卡通渲染针对TAA的优化思路 https://zhuanlan.zhihu.com/p/678876237
29. 卡通渲染针对TAA的优化思路 https://zhuanlan.zhihu.com/p/678876237
1. https://www.bilibili.com/video/BV1BK411v7FY/?spm_id_from=333.788&vd_source=ea6df38502a795b7533aa33b78bf1159
2. https://zhuanlan.zhihu.com/p/20786650
29. [ ] Unreal Engine 5.4 Scene Extension https://zhuanlan.zhihu.com/p/706268007
30. [ ] Unreal Engine 5.4 Scene Extension https://zhuanlan.zhihu.com/p/706268007
1. [ ] 通过SceneExtension改进ToonObjectID这样可以减少对应ToonBuffer的精度来存其他数据。
2. [ ] https://www.bilibili.com/video/BV1fM4m1U7Tp/

View File

@ -459,21 +459,24 @@ FDirectLighting ToonBxDF(FGBufferData GBuffer, half3 N, half3 V, half3 L, float
```c++
...   
float3 LightColorAndAttenuation = AreaLight.FalloffColor * MooaToonContext.LightColor * Falloff;
    ColorSaturationPowerAndScale(LightColorAndAttenuation, View.MooaLightSaturationScale);
...
...
float DiffuseColorRampU = min3(saturate(Shadow.SurfaceShadow + HairShadowOffset), GBuffer.GBufferAO, ShadowGradient);
half4 DiffuseColorRamp = SampleGlobalRamp(View.MooaGlobalDiffuseColorRampAtlas, DiffuseColorRampU, ToonGBuffer.DiffuseColorRampIndex, View.MooaGlobalDiffuseColorRampAtlasHeight);
Shadow.SurfaceShadow = DiffuseColorRampU;
half3 ToonDiffuseColor = GBuffer.DiffuseColor;
half3 ToonShadowColor = ToonGBuffer.MainLightShadowColor * (1 - GBuffer.Metallic) * GetShadowColorIntensity(MooaToonContext);
#if USE_DEVELOPMENT_SHADERS
ToonShadowColor *= View.DiffuseOverrideParameter.w + View.DiffuseOverrideParameter.xyz;
#endif
ToonDiffuseColor = lerp(ToonShadowColor, ToonDiffuseColor, DiffuseColorRamp.a);
Lighting.Diffuse = Diffuse_Lambert(ToonDiffuseColor) * DiffuseColorRamp.rgb * LightColorAndAttenuation;
// Diffuse
BRANCH if (Context.IsMainLight)
{
Shadow.SurfaceShadow = saturate(Shadow.SurfaceShadow + HairShadowValueOffset + MooaToonData.MainLightShadowValueOffset * 2.0f - 1.0f);
LightColorAndAttenuation *= Shadow.SurfaceShadow;
float3 MainLightShadowColor = MooaToonData.MainLightShadowColor * lerp(1, Context.LightColor, MooaToonData.MainLightShadowApplyLightColor) * View.MooaIsGlobalIlluminationEnabled;
Lighting.Diffuse = lerp(MainLightShadowColor, GBuffer.BaseColor * Context.LightColor, Shadow.SurfaceShadow) * PI_INV;
}
else
{
float OtherLightShadowValue = ToonStep(halfNoL, MooaToonData.OtherLightDiffuseFeather, MooaToonData.OtherLightDiffuseThreshold);
// Non-Directional light's SurfaceShadow contains distance attenuation, not just shadowmap
Shadow.SurfaceShadow *= saturate(OtherLightShadowValue + HairShadowValueOffset);
LightColorAndAttenuation *= Shadow.SurfaceShadow;
Lighting.Diffuse = GBuffer.BaseColor * LightColorAndAttenuation * PI_INV;
}
```
# 实用函数
@ -495,4 +498,3 @@ void GetDistanceFieldFacialShadow(FGBufferData GBuffer, FToonGBufferData ToonGBu
}
```