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:角色接入反射
|
||
|
||
|