45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: RenderLights
							 | 
						||
| 
								 | 
							
								date: 2023-04-09 10:23:21
							 | 
						||
| 
								 | 
							
								excerpt: 
							 | 
						||
| 
								 | 
							
								tags: 
							 | 
						||
| 
								 | 
							
								rating: ⭐
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								# 关键函数
							 | 
						||
| 
								 | 
							
								取得所有ShadowMap的投影信息
							 | 
						||
| 
								 | 
							
								```c++
							 | 
						||
| 
								 | 
							
								const FVisibleLightInfo& VisibleLightInfo = VisibleLightInfos[LightSceneInfo->Id];  
							 | 
						||
| 
								 | 
							
								const TArray<FProjectedShadowInfo*, SceneRenderingAllocator>& ShadowMaps = VisibleLightInfo.ShadowsToProject;  
							 | 
						||
| 
								 | 
							
								for (int32 ShadowIndex = 0; ShadowIndex < ShadowMaps.Num(); ShadowIndex++)  
							 | 
						||
| 
								 | 
							
								{  
							 | 
						||
| 
								 | 
							
								   const FProjectedShadowInfo* ProjectedShadowInfo = ShadowMaps[ShadowIndex];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 透明体积图元渲染
							 | 
						||
| 
								 | 
							
								## InjectSimpleTranslucencyLightingVolumeArray
							 | 
						||
| 
								 | 
							
								插入简单透明体积物体渲染。应该是根据3D贴图渲染体积效果。默认状态下不运行。
							 | 
						||
| 
								 | 
							
								- InjectSimpleLightsTranslucentLighting
							 | 
						||
| 
								 | 
							
								- InjectSimpleTranslucentLightArray 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## InjectTranslucencyLightingVolume
							 | 
						||
| 
								 | 
							
								在收集用于渲染透明体积的灯光代理信息后进行渲染,主要用于云的渲染。
							 | 
						||
| 
								 | 
							
								- InjectTranslucencyLightingVolume
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# 直接光照
							 | 
						||
| 
								 | 
							
								## RenderVirtualShadowMapProjectionMaskBits
							 | 
						||
| 
								 | 
							
								- VirtualShadowMapProjectionMaskBits
							 | 
						||
| 
								 | 
							
								- VirtualShadowMapProjection(RayCount:%u(%s),SamplesPerRay:%u,Input:%s%s)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								输出到名为`Shadow.Virtual.MaskBits`与`Shadow.Virtual.MaskBits(HairStrands)`的UAV。
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## AddClusteredDeferredShadingPass
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## RenderSimpleLightsStandardDeferred
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## RenderLight
							 | 
						||
| 
								 | 
							
								针对每个灯在ShadowProjectionOnOpaque渲染ShadowMask
							 | 
						||
| 
								 | 
							
								- VirualShadowMapProjection
							 | 
						||
| 
								 | 
							
								- CompositeVirtualShadowMapMask
							 | 
						||
| 
								 | 
							
								
							 |