diff --git a/03-UnrealEngine/Rendering/RenderingPipeline/GPUScene.md b/03-UnrealEngine/Rendering/RenderingPipeline/GPUScene.md new file mode 100644 index 0000000..c9eef69 --- /dev/null +++ b/03-UnrealEngine/Rendering/RenderingPipeline/GPUScene.md @@ -0,0 +1,35 @@ +--- +title: Untitled +date: 2024-08-15 12:02:42 +excerpt: +tags: +rating: ⭐ +--- +# 前言 +- [UE5渲染--GPUScene与合并绘制](https://zhuanlan.zhihu.com/p/614758211) + +# 相关类型 +- Primitive: + - C++的数据类型_FPrimitiveUniformShaderParameters_(PrimitiveUniformShaderParameters.h) + - Shader的数据FPrimitiveSceneData(SceneData.ush); +- Instance: + - C++的数据类型FInstanceSceneShaderData(InstanceUniformShaderParameters.h) + - Shader的数据FInstanceSceneData(SceneData.ush); +- Payload: + - C++数据类型FPackedBatch、FPackedItem(InstanceCullingLoadBalancer.h) + - Shader的数据类型FPackedInstanceBatch、FPackedInstanceBatchItem(InstanceCullingLoadBalancer.ush) + +# DeferredShadingRenderer.cpp +```c++ +Scene->GPUScene.Update(GraphBuilder, GetSceneUniforms(), *Scene, ExternalAccessQueue); + +for (int32 ViewIndex = 0; ViewIndex < Views.Num(); ViewIndex++) +{ + FViewInfo& View = Views[ViewIndex]; + RDG_GPU_MASK_SCOPE(GraphBuilder, View.GPUMask); + + Scene->GPUScene.UploadDynamicPrimitiveShaderDataForView(GraphBuilder, *Scene, View, ExternalAccessQueue); + + Scene->GPUScene.DebugRender(GraphBuilder, *Scene, GetSceneUniforms(), View); +} +``` \ No newline at end of file