MCPcopy Create free account
hub / github.com/DiligentGraphics/DiligentFX / HnBeginFrameTask

Method HnBeginFrameTask

Hydrogent/src/Tasks/HnBeginFrameTask.cpp:72–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70}
71
72HnBeginFrameTask::HnBeginFrameTask(pxr::HdSceneDelegate* ParamsDelegate, const pxr::SdfPath& Id) :
73 HnTask{Id}
74{
75 if (ParamsDelegate == nullptr)
76 {
77 UNEXPECTED("ParamsDelegate is null");
78 return;
79 }
80 pxr::HdRenderIndex& RenderIndex = ParamsDelegate->GetRenderIndex();
81
82 // Insert empty Bprims for offscreen render targets into the render index.
83 // The render targets will be created when Prepare() is called and the
84 // dimensions of the final color target are known.
85 auto InitBrim = [&](const pxr::TfToken& Name) {
86 pxr::SdfPath Id = GetId().AppendChild(Name);
87 RenderIndex.InsertBprim(pxr::HdPrimTypeTokens->renderBuffer, ParamsDelegate, Id);
88 return Id;
89 };
90
91 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_SCENE_COLOR] = InitBrim(HnRenderResourceTokens->offscreenColorTarget);
92 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MESH_ID] = InitBrim(HnRenderResourceTokens->meshIdTarget);
93 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MOTION_VECTOR] = InitBrim(HnRenderResourceTokens->motionVectorsTarget);
94 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_NORMAL] = InitBrim(HnRenderResourceTokens->normalTarget);
95 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_BASE_COLOR] = InitBrim(HnRenderResourceTokens->baseColorTarget);
96 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_MATERIAL] = InitBrim(HnRenderResourceTokens->materialDataTarget);
97 m_GBufferTargetIds[HnFrameRenderTargets::GBUFFER_TARGET_IBL] = InitBrim(HnRenderResourceTokens->iblTarget);
98 static_assert(HnFrameRenderTargets::GBUFFER_TARGET_COUNT == 7, "Please initialize GBuffer BPrims.");
99
100 m_SelectionDepthBufferId = InitBrim(HnRenderResourceTokens->selectionDepthBuffer);
101 m_DepthBufferId[0] = InitBrim(HnRenderResourceTokens->depthBuffer0);
102 m_DepthBufferId[1] = InitBrim(HnRenderResourceTokens->depthBuffer1);
103 m_ClosestSelLocnTargetId[0] = InitBrim(HnRenderResourceTokens->closestSelectedLocation0Target);
104 m_ClosestSelLocnTargetId[1] = InitBrim(HnRenderResourceTokens->closestSelectedLocation1Target);
105 m_JitteredFinalColorTargetId = InitBrim(HnRenderResourceTokens->jitteredFinalColorTarget);
106}
107
108HnBeginFrameTask::~HnBeginFrameTask()
109{

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected