Refactor rendering frame execution contracts
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "Components/CameraComponent.h"
|
||||
#include "Components/GameObject.h"
|
||||
#include "Components/LightComponent.h"
|
||||
#include "Rendering/FrameData/RendererListUtils.h"
|
||||
#include "Rendering/Extraction/RenderSceneUtility.h"
|
||||
#include "Scene/Scene.h"
|
||||
|
||||
@@ -125,6 +126,21 @@ bool CompareVisibleGaussianSplats(
|
||||
return CompareVisibleGaussianSplatsStable(lhs, rhs);
|
||||
}
|
||||
|
||||
void BuildRendererLists(RenderSceneData& sceneData) {
|
||||
sceneData.cullingResults.Clear();
|
||||
sceneData.cullingResults.rendererLists.reserve(5u);
|
||||
sceneData.cullingResults.rendererLists.push_back(
|
||||
BuildRendererList(RendererListType::AllVisible, sceneData.visibleItems));
|
||||
sceneData.cullingResults.rendererLists.push_back(
|
||||
BuildRendererList(RendererListType::Opaque, sceneData.visibleItems));
|
||||
sceneData.cullingResults.rendererLists.push_back(
|
||||
BuildRendererList(RendererListType::Transparent, sceneData.visibleItems));
|
||||
sceneData.cullingResults.rendererLists.push_back(
|
||||
BuildRendererList(RendererListType::ShadowCaster, sceneData.visibleItems));
|
||||
sceneData.cullingResults.rendererLists.push_back(
|
||||
BuildRendererList(RendererListType::ObjectId, sceneData.visibleItems));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
RenderSceneData RenderSceneExtractor::Extract(
|
||||
@@ -165,6 +181,7 @@ RenderSceneData RenderSceneExtractor::Extract(
|
||||
sceneData.visibleVolumes.begin(),
|
||||
sceneData.visibleVolumes.end(),
|
||||
CompareVisibleVolumes);
|
||||
BuildRendererLists(sceneData);
|
||||
ExtractLighting(scene, cameraPosition, cullingMask, sceneData.lighting);
|
||||
|
||||
return sceneData;
|
||||
@@ -208,6 +225,7 @@ RenderSceneData RenderSceneExtractor::ExtractForCamera(
|
||||
sceneData.visibleVolumes.begin(),
|
||||
sceneData.visibleVolumes.end(),
|
||||
CompareVisibleVolumes);
|
||||
BuildRendererLists(sceneData);
|
||||
ExtractLighting(scene, cameraPosition, cullingMask, sceneData.lighting);
|
||||
|
||||
return sceneData;
|
||||
|
||||
Reference in New Issue
Block a user