1.3 KiB
1.3 KiB
title, date, excerpt, tags, rating, status, destination, share, obsidianUIMode
title | date | excerpt | tags | rating | status | destination | share | obsidianUIMode |
---|---|---|---|---|---|---|---|---|
《鸣潮》中的光线追踪:用光线构建动漫风格开放世界 | 2025-08-22 16:35:32 | ⭐ | inprogress | false | source |
Rtx
实现功能
- Rtx反射
- RtxGI
- RtxShadow
选型&快速验证
需求 32km 32km 二次元 TOD 4060 2k 60fps
方案:
- ReSTIR
- Lumen(简略版,砍掉一些不需要的过程)
- GI
- Reflection
- 重新开发Clipmap Irradiance Cache来代替Surface Cache
ReSTIR
- 时间、空间重采样
- 计算光照
- 使用SHaRC、NRD降噪库。
SHaRC(Spatially Hashed Radiance Cache)
- 解决Multi-Bounce Problem
- 基于世界空间稀疏哈希的Radiance Cache
- 默认只有2次反射
NRD(Nvidia Real-time Denoising)
- 基于Spatio-Temporal的降噪器,开箱即用。
- 用于最终降噪输出。
- 性能消耗较高:4080 2k 2.3~3.0ms
缺点:
- 实现起来简单,光照效果好,但带宽性能压力大。
- 远处、边缘有噪点。
功能实现与迭代经验
ToonShading
案例1:角色自阴影
- 光栅化
- 场景:CSM
- 角色:PerObjectShadow
- Rtx
- 用剔除角色的InstanceMask做ToonShadowRay
if(IsToonShadingModel(ShadingModelID))
{
RayTracingMask |=RAY_TRACING_MASK_SHADOW_NOT_TOON;
}
案例2:角色接入GI
案例3:角色接入反射