Skip to content

Commit e49bd50

Browse files
committed
Add translucent solid option for showing cull bbox
Rename r_showEntityTransforms to r_showEntityBounds and add a new option (2) for showing the culling bounding boxes as a solid translucent surface, in addition to the old wireframe option. This makes it easier to see when the model is poking out of the box.
1 parent 03499db commit e49bd50

File tree

3 files changed

+15
-9
lines changed

3 files changed

+15
-9
lines changed

src/engine/renderer/tr_backend.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ backEndState_t backEnd;
3434

3535
static Cvar::Cvar<bool> r_clear( "r_clear", "Clear screen before painting over it on every frame", Cvar::NONE, false );
3636
Cvar::Cvar<bool> r_drawSky( "r_drawSky", "Draw the sky (clear the sky if disabled)", Cvar::NONE, true );
37+
static Cvar::Cvar<int> r_showEntityBounds(
38+
"r_showEntityBounds", "show bboxes used for culling (1: wireframe; 2: translucent solid", Cvar::CHEAT, 0);
3739

3840
void GL_Bind( image_t *image )
3941
{
@@ -1563,7 +1565,7 @@ static void RB_RenderDebugUtils()
15631565
{
15641566
GLIMP_LOGCOMMENT( "--- RB_RenderDebugUtils ---" );
15651567

1566-
if ( r_showEntityTransforms->integer )
1568+
if ( r_showEntityBounds.Get() )
15671569
{
15681570
trRefEntity_t *ent;
15691571
int i;
@@ -1577,13 +1579,14 @@ static void RB_RenderDebugUtils()
15771579
gl_genericShader->SetDepthFade( false );
15781580
gl_genericShader->BindProgram( 0 );
15791581

1580-
GL_State( GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
1582+
GL_State( r_showEntityBounds.Get() == 2 ? GLS_SRCBLEND_SRC_ALPHA | GLS_DSTBLEND_ONE_MINUS_SRC_ALPHA
1583+
: GLS_POLYMODE_LINE | GLS_DEPTHTEST_DISABLE );
15811584
GL_Cull( cullType_t::CT_TWO_SIDED );
15821585

15831586
// set uniforms
15841587
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
15851588
SetUniform_ColorModulateColorGen( gl_genericShader, colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
1586-
SetUniform_Color( gl_genericShader, Color::Black );
1589+
SetUniform_Color( gl_genericShader, Color::Color(0, 0, 0, 0) );
15871590

15881591
// bind u_ColorMap
15891592
gl_genericShader->SetUniform_ColorMapBindless(
@@ -1613,9 +1616,15 @@ static void RB_RenderDebugUtils()
16131616

16141617
Tess_Begin( Tess_StageIteratorDebug, nullptr, nullptr, true, -1, 0 );
16151618

1616-
Tess_AddCube( vec3_origin, ent->localBounds[ 0 ], ent->localBounds[ 1 ], Color::Blue );
1617-
1618-
Tess_AddCube( vec3_origin, mins, maxs,Color::White );
1619+
if ( r_showEntityBounds.Get() == 2)
1620+
{
1621+
Tess_AddCube( vec3_origin, ent->localBounds[ 0 ], ent->localBounds[ 1 ], Color::Color(0, 0, 0.5, 0.4) );
1622+
}
1623+
else
1624+
{
1625+
Tess_AddCube( vec3_origin, ent->localBounds[ 0 ], ent->localBounds[ 1 ], Color::Blue );
1626+
Tess_AddCube( vec3_origin, mins, maxs,Color::White );
1627+
}
16191628

16201629
Tess_End();
16211630
}

src/engine/renderer/tr_init.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,6 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
227227
cvar_t *r_showTris;
228228
cvar_t *r_showSky;
229229
cvar_t *r_showSkeleton;
230-
cvar_t *r_showEntityTransforms;
231230
cvar_t *r_showLightGrid;
232231
cvar_t *r_showLightTiles;
233232
cvar_t *r_showBatches;
@@ -1276,7 +1275,6 @@ ScreenshotCmd screenshotPNGRegistration("screenshotPNG", ssFormat_t::SSF_PNG, "p
12761275
r_showTris = Cvar_Get( "r_showTris", "0", CVAR_CHEAT );
12771276
r_showSky = Cvar_Get( "r_showSky", "0", CVAR_CHEAT );
12781277
r_showSkeleton = Cvar_Get( "r_showSkeleton", "0", CVAR_CHEAT );
1279-
r_showEntityTransforms = Cvar_Get( "r_showEntityTransforms", "0", CVAR_CHEAT );
12801278
r_showLightGrid = Cvar_Get( "r_showLightGrid", "0", CVAR_CHEAT );
12811279
r_showLightTiles = Cvar_Get("r_showLightTiles", "0", CVAR_CHEAT | CVAR_LATCH );
12821280
r_showBatches = Cvar_Get( "r_showBatches", "0", CVAR_CHEAT );

src/engine/renderer/tr_local.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2834,7 +2834,6 @@ enum class ssaoMode {
28342834
extern cvar_t *r_showTris; // enables wireframe rendering of the world
28352835
extern cvar_t *r_showSky; // forces sky in front of all surfaces
28362836
extern cvar_t *r_showSkeleton;
2837-
extern cvar_t *r_showEntityTransforms;
28382837
extern cvar_t *r_showLightGrid;
28392838
extern cvar_t *r_showLightTiles;
28402839
extern cvar_t *r_showBatches;

0 commit comments

Comments
 (0)