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