diff --git a/src/engine/renderer/tr_shade.cpp b/src/engine/renderer/tr_shade.cpp index dd4b4341b0..80c6b87a58 100644 --- a/src/engine/renderer/tr_shade.cpp +++ b/src/engine/renderer/tr_shade.cpp @@ -3053,7 +3053,10 @@ void Tess_End() // draw debugging stuff if ( r_showTris->integer || r_showBatches->integer || ( r_showLightBatches->integer && ( tess.stageIteratorFunc == Tess_StageIteratorLighting ) ) ) { - DrawTris(); + // Skybox triangle rendering is done in Tess_StageIteratorSky() + if ( tess.stageIteratorFunc != Tess_StageIteratorSky ) { + DrawTris(); + } } } } diff --git a/src/engine/renderer/tr_sky.cpp b/src/engine/renderer/tr_sky.cpp index 83e047e236..1a897dad6c 100644 --- a/src/engine/renderer/tr_sky.cpp +++ b/src/engine/renderer/tr_sky.cpp @@ -126,6 +126,23 @@ void Tess_StageIteratorSky() Tess_DrawElements(); } + if ( r_showTris->integer ) { + GL_State( GLS_POLYMODE_LINE | GLS_DEPTHFUNC_ALWAYS ); + + // bind u_ColorMap + gl_skyboxShader->SetUniform_ColorMapCubeBindless( + GL_BindToTMU( 0, tr.whiteCubeImage ) + ); + + // Only render the outer skybox outline at this stage + gl_skyboxShader->SetUniform_UseCloudMap( false ); + + // u_AlphaThreshold + gl_skyboxShader->SetUniform_AlphaTest( GLS_ATEST_NONE ); + + Tess_DrawElements(); + } + // Only render clouds at these stages gl_skyboxShader->SetUniform_UseCloudMap( true ); gl_skyboxShader->SetUniform_CloudHeight( tess.surfaceShader->sky.cloudHeight );