ref: don't apply rendercolor to studio models where it's not needed

This commit is contained in:
Alibek Omarov 2023-01-13 15:25:58 +03:00
parent 10481a4ecc
commit 74ce7e9b10
2 changed files with 12 additions and 54 deletions

View File

@ -1744,48 +1744,20 @@ void R_LightLambert( vec4_t light[MAX_LOCALLIGHTS], vec3_t normal, vec3_t color,
out[2] = finalLight[2] * 255;
}
static void R_StudioSetColorBegin(short *ptricmds, vec3_t *pstudionorms )
{
float *lv = (float *)g_studio.lightvalues[ptricmds[1]];
rgba_t color;
if( g_studio.numlocallights )
{
color[3] = tr.blend * 255;
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
pglColor4ubv( color );
}
else
{
if( RI.currententity->curstate.rendermode == kRenderTransColor )
{
color[3] = tr.blend * 255;
VectorCopy( (byte*)&RI.currententity->curstate.rendercolor, color );
pglColor4ubv( color );
}
else pglColor4f( lv[0], lv[1], lv[2], tr.blend );
}
}
static void R_StudioSetColorArray(short *ptricmds, vec3_t *pstudionorms, byte *color )
{
float *lv = (float *)g_studio.lightvalues[ptricmds[1]];
color[3] = tr.blend * 255;
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
}
if( g_studio.numlocallights )
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
else
{
if( RI.currententity->curstate.rendermode == kRenderTransColor )
VectorCopy( (byte*)&RI.currententity->curstate.rendercolor, color );
else
{
color[0] = lv[0] * 255;
color[1] = lv[1] * 255;
color[2] = lv[2] * 255;
}
}
static void R_StudioSetColorBegin( short *ptricmds, vec3_t *pstudionorms )
{
rgba_t color;
R_StudioSetColorArray( ptricmds, pstudionorms, color );
pglColor4ubv( color );
}
/*

View File

@ -1752,24 +1752,10 @@ static void R_StudioSetColorBegin(short *ptricmds, vec3_t *pstudionorms )
float *lv = (float *)g_studio.lightvalues[ptricmds[1]];
rgba_t color;
if( g_studio.numlocallights )
{
color[3] = tr.blend * 255;
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
//pglColor4ubv( color );
TriColor4ub(color[0], color[1], color[2], color[3]);
}
else
{
if( RI.currententity->curstate.rendermode == kRenderTransColor )
{
color[3] = tr.blend * 255;
VectorCopy( (byte*)&RI.currententity->curstate.rendercolor, color );
//pglColor4ubv( color );
TriColor4ub(color[0], color[1], color[2], color[3]);
}
else _TriColor4f( lv[0], lv[1], lv[2], tr.blend );
}
color[3] = tr.blend * 255;
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
TriColor4ub( color[0], color[1], color[2], color[3] );
}