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

Method Prepare

Hydrogent/src/Tasks/HnRenderEnvMapTask.cpp:129–192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127}
128
129void HnRenderEnvMapTask::Prepare(pxr::HdTaskContext* TaskCtx,
130 pxr::HdRenderIndex* RenderIndex)
131{
132 m_RenderIndex = RenderIndex;
133
134 HnRenderDelegate* pRenderDelegate = static_cast<HnRenderDelegate*>(m_RenderIndex->GetRenderDelegate());
135
136 if (!m_EnvMapRenderer)
137 {
138 if (HnRenderPassState* RenderPassState = GetRenderPassState(TaskCtx, m_RenderPassName))
139 {
140 EnvMapRenderer::CreateInfo EnvMapRndrCI;
141 EnvMapRndrCI.pDevice = pRenderDelegate->GetDevice();
142 EnvMapRndrCI.pCameraAttribsCB = pRenderDelegate->GetFrameAttribsCB();
143 EnvMapRndrCI.PackMatrixRowMajor = true;
144 EnvMapRndrCI.NumRenderTargets = RenderPassState->GetNumRenderTargets();
145 for (Uint32 rt = 0; rt < EnvMapRndrCI.NumRenderTargets; ++rt)
146 EnvMapRndrCI.RTVFormats[rt] = RenderPassState->GetRenderTargetFormat(rt);
147 EnvMapRndrCI.DSVFormat = RenderPassState->GetDepthStencilFormat();
148
149 const std::string PSMain = GetEnvMapPSMain(EnvMapRndrCI.pDevice->GetDeviceInfo().IsGLDevice() ||
150 EnvMapRndrCI.pDevice->GetDeviceInfo().IsVulkanDevice() ||
151 EnvMapRndrCI.pDevice->GetDeviceInfo().IsWebGPUDevice());
152
153 EnvMapRndrCI.PSMainSource = PSMain.c_str();
154
155 m_EnvMapRenderer = std::make_unique<EnvMapRenderer>(EnvMapRndrCI);
156 }
157 else
158 {
159 UNEXPECTED("Render pass state is not set in the task context");
160 }
161 }
162
163 auto USDRenderer = pRenderDelegate->GetUSDRenderer();
164 if (!USDRenderer)
165 {
166 UNEXPECTED("USD renderer is not initialized");
167 return;
168 }
169
170 auto* pEnvMapSRV = USDRenderer->GetPrefilteredEnvMapSRV();
171 if (pEnvMapSRV == nullptr)
172 return;
173
174 Diligent::HLSL::ToneMappingAttribs TMAttribs;
175 // Tone mapping is performed in the post-processing pass
176 TMAttribs.iToneMappingMode = TONE_MAPPING_MODE_NONE;
177 TMAttribs.bAutoExposure = 0;
178 TMAttribs.fMiddleGray = 0.18f;
179 TMAttribs.bLightAdaptation = 0;
180 TMAttribs.fWhitePoint = 3.0f;
181 TMAttribs.fLuminanceSaturation = 1.0;
182
183 EnvMapRenderer::RenderAttribs EnvMapAttribs;
184 EnvMapAttribs.pEnvMap = pEnvMapSRV;
185 EnvMapAttribs.AverageLogLum = 0.3f;
186 EnvMapAttribs.MipLevel = 1;

Callers

nothing calls this directly

Calls 9

GetEnvMapPSMainFunction · 0.85
GetFrameAttribsCBMethod · 0.80
GetNumRenderTargetsMethod · 0.80
GetRenderTargetFormatMethod · 0.80
GetDepthStencilFormatMethod · 0.80
GetUSDRendererMethod · 0.80
GetDeviceContextMethod · 0.80
GetDeviceMethod · 0.45

Tested by

no test coverage detected