refactor(rendering): treat object id as top-level tooling pass
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
#include "Rendering/Execution/Internal/CameraFrameGraph/Executor.h"
|
||||
#include "Rendering/GraphicsSettingsState.h"
|
||||
#include "Rendering/Internal/RenderPipelineFactory.h"
|
||||
#include "Rendering/Passes/BuiltinObjectIdPass.h"
|
||||
#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h"
|
||||
#include "Rendering/RenderPipelineAsset.h"
|
||||
#include "Rendering/RenderSurface.h"
|
||||
@@ -29,6 +30,14 @@ bool IsManagedPipelineAsset(
|
||||
pipelineAsset.get()) != nullptr;
|
||||
}
|
||||
|
||||
void ConfigureTopLevelToolingPasses(RenderPipeline& pipeline) {
|
||||
// Object-id is a tooling/editor request. It should live on the
|
||||
// top-level pipeline used by CameraRenderer, not on a scene backend.
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ObjectId,
|
||||
std::make_unique<Passes::BuiltinObjectIdPass>());
|
||||
}
|
||||
|
||||
RenderPipelineStageSupportContext BuildStageSupportContext(
|
||||
const CameraFramePlan& plan,
|
||||
CameraFrameStage stage) {
|
||||
@@ -124,6 +133,10 @@ void CameraRenderer::ResetPipeline(std::unique_ptr<RenderPipeline> pipeline) {
|
||||
&m_pipelineAsset);
|
||||
}
|
||||
|
||||
if (m_pipeline != nullptr) {
|
||||
ConfigureTopLevelToolingPasses(*m_pipeline);
|
||||
}
|
||||
|
||||
m_managedPipelineEnvironmentGeneration =
|
||||
UsesManagedPipelineBinding()
|
||||
? GetGraphicsSettingsState().GetEnvironmentGeneration()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include "Rendering/Features/BuiltinGaussianSplatPass.h"
|
||||
#include "Rendering/Features/BuiltinVolumetricPass.h"
|
||||
#include "Rendering/Passes/BuiltinDepthOnlyPass.h"
|
||||
#include "Rendering/Passes/BuiltinObjectIdPass.h"
|
||||
#include "Rendering/Passes/BuiltinShadowCasterPass.h"
|
||||
#include "Rendering/Pipelines/BuiltinForwardPipeline.h"
|
||||
|
||||
@@ -18,9 +17,6 @@ namespace {
|
||||
|
||||
void ConfigureBuiltinForwardStandalonePasses(
|
||||
BuiltinForwardPipeline& pipeline) {
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::ObjectId,
|
||||
std::make_unique<Passes::BuiltinObjectIdPass>());
|
||||
pipeline.SetCameraFrameStandalonePass(
|
||||
CameraFrameStage::DepthOnly,
|
||||
std::make_unique<Passes::BuiltinDepthOnlyPass>());
|
||||
|
||||
Reference in New Issue
Block a user