@@ -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