vault backup: 2025-02-08 13:12:05
This commit is contained in:
parent
714b122948
commit
b465ab62f5
@ -100,7 +100,9 @@ rating: ⭐⭐⭐
|
||||
9. [ ] TODO:Nanite模型支持。
|
||||
10. [ ] TODO:另一种思路定点内扩+Stencil的方式渲染内描边?
|
||||
4. [ ] TODO:RayTacing描边方法。
|
||||
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 GI(Lumen)
|
||||
10. [ ] Reflection控制
|
||||
11. [ ] Toon GI(Lumen)
|
||||
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. [ ] 实现前向混合管线?思路有2:1. Material直接计算光照结果。2. 自定义ToonBasePass到LightingPass后,复制阴影贴图与Lumen渲染结果进行Composition。
|
||||
14. [ ] 实现前向混合管线?思路有2:1. 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.cpp(Shader宏)、GBufferInfo.cpp(GBuffer格式)BasePassRendering.cpp(950行,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/
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user