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
|
||
|
|