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