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