Skip to content

Commit 0d5f855

Browse files
Hydrogent: disable MeshID output in translucent pass when OIT is enabled
1 parent 7de39a9 commit 0d5f855

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

Hydrogent/src/Tasks/HnTaskManager.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,11 @@ HnTaskManager::HnTaskManager(pxr::HdRenderIndex& RenderIndex,
205205
USD_Renderer::USD_PSO_FLAG_ENABLE_ALL_OUTPUTS,
206206
});
207207

208-
const USD_Renderer& Renderer = *static_cast<const HnRenderDelegate*>(GetRenderIndex().GetRenderDelegate())->GetUSDRenderer();
209-
if (Renderer.GetSettings().OITLayerCount > 0)
208+
const USD_Renderer& Renderer = *static_cast<const HnRenderDelegate*>(GetRenderIndex().GetRenderDelegate())->GetUSDRenderer();
209+
const bool OITEnabled = Renderer.GetSettings().OITLayerCount > 0;
210+
211+
USD_Renderer::USD_PSO_FLAGS TranslucentPassOutputs = USD_Renderer::USD_PSO_FLAG_ENABLE_ALL_OUTPUTS;
212+
if (OITEnabled)
210213
{
211214
CreateBeginOITPassTask();
212215
CreateRenderRprimsTask(HnMaterialTagTokens->translucent,
@@ -218,6 +221,8 @@ HnTaskManager::HnTaskManager(pxr::HdRenderIndex& RenderIndex,
218221
USD_Renderer::USD_PSO_FLAG_ENABLE_ALL_OUTPUTS,
219222
});
220223
CreateEndOITPassTask();
224+
// We will write mesh ID and depth in a separate pass
225+
TranslucentPassOutputs &= ~USD_Renderer::USD_PSO_FLAG_ENABLE_MESH_ID_OUTPUT;
221226
}
222227

223228
CreateRenderRprimsTask(HnMaterialTagTokens->translucent,
@@ -226,7 +231,7 @@ HnTaskManager::HnTaskManager(pxr::HdRenderIndex& RenderIndex,
226231
HnRenderResourceTokens->renderPass_TransparentAll,
227232
HnRenderPassParams::SelectionType::All,
228233
USD_Renderer::RenderPassType::Main,
229-
USD_Renderer::USD_PSO_FLAG_ENABLE_ALL_OUTPUTS,
234+
TranslucentPassOutputs,
230235
});
231236

232237
// Transparent selected RPrims -> {0 + SelectionDepth}

0 commit comments

Comments
 (0)