vault backup: 2025-02-11 15:54:25

This commit is contained in:
BlueRose 2025-02-11 15:54:25 +08:00
parent 1f4ea24133
commit 4a14e94fe5
3 changed files with 24 additions and 3 deletions

View File

@ -7,7 +7,6 @@ rating: ⭐
--- ---
# FSortedLightSetSceneInfo # FSortedLightSetSceneInfo
有序的光源集合相关定义: 有序的光源集合相关定义:
```c++ ```c++
/** Data for a simple dynamic light. */ /** Data for a simple dynamic light. */
@ -158,7 +157,14 @@ void FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate& RHICmdList)
} }
``` ```
## PS. 简单光源都可以被分块或分簇渲染,但对于非简单光源,只有满足以下条件的光源才可被分块或分簇渲染:
- 没有使用光源的附加特性TextureProfile、LightFunction、LightingChannel
- 没有开启阴影。
- 非平行光或矩形光。
另外,是否支持分块渲染,还需要光源场景代理的`IsTiledDeferredLightingSupported`返回true长度为0的点光源才支持分块渲染。
## GatherLightsAndComputeLightGrid
```c++ ```c++
FComputeLightGridOutput FDeferredShadingSceneRenderer::GatherLightsAndComputeLightGrid(FRDGBuilder& GraphBuilder, bool bNeedLightGrid, FSortedLightSetSceneInfo& SortedLightSet) FComputeLightGridOutput FDeferredShadingSceneRenderer::GatherLightsAndComputeLightGrid(FRDGBuilder& GraphBuilder, bool bNeedLightGrid, FSortedLightSetSceneInfo& SortedLightSet)
{ {
@ -199,4 +205,11 @@ FComputeLightGridOutput FDeferredShadingSceneRenderer::GatherLightsAndComputeLig
return Result; return Result;
} }
``` ```
- GatherAndSortLights收集与排序当前场景中所有的可见光源当前View
- ComputeLightGrid是在锥体空间frustum space裁剪局部光源和反射探针到3D格子中构建每个视图相关的光源列表和格子。
# RenderLights() -> RenderLight()
## InternalRenderLight()

View File

@ -99,6 +99,7 @@ rating: ⭐⭐⭐
8. [ ] TODO确认VR中的运行结果是否正确 8. [ ] TODO确认VR中的运行结果是否正确
9. [ ] TODONanite模型支持。 9. [ ] TODONanite模型支持。
10. [ ] TODO另一种思路定点内扩+Stencil的方式渲染内描边 10. [ ] TODO另一种思路定点内扩+Stencil的方式渲染内描边
11. [ ] TODO顶点法线工具开发 https://tajourney.games/7689/
4. [ ] TODORayTacing描边方法。 4. [ ] TODORayTacing描边方法。
7. [ ] ToonLighting 7. [ ] ToonLighting
1. [ ] Cel 1. [ ] Cel

View File

@ -0,0 +1,7 @@
# 前言
- https://tajourney.games/7872/
- Renderdoc: https://github.com/baldurk/renderdoc
采用本地编译Renderdoc尝试。
**Renderdoc注入的原理是拦截应用程序对图形 API 的调用来捕获帧,在应用程序调用图形 API 函数插入自己的代码这一过程就是hook,所以本地修改的关键就是修改hook相关函数编译自己的注入器。**