Browse Source

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

pull/2/head
Alibek Omarov 2 years ago
parent
commit
74ce7e9b10
  1. 42
      ref/gl/gl_studio.c
  2. 22
      ref/soft/r_studio.c

42
ref/gl/gl_studio.c

@ -1744,48 +1744,20 @@ void R_LightLambert( vec4_t light[MAX_LOCALLIGHTS], vec3_t normal, vec3_t color, @@ -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 )
static void R_StudioSetColorArray(short *ptricmds, vec3_t *pstudionorms, byte *color )
{
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 );
}
color[3] = tr.blend * 255;
R_LightLambert( g_studio.lightpos[ptricmds[0]], pstudionorms[ptricmds[1]], lv, color );
}
static void R_StudioSetColorArray(short *ptricmds, vec3_t *pstudionorms, byte *color )
static void R_StudioSetColorBegin( short *ptricmds, vec3_t *pstudionorms )
{
float *lv = (float *)g_studio.lightvalues[ptricmds[1]];
color[3] = tr.blend * 255;
rgba_t 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;
}
}
R_StudioSetColorArray( ptricmds, pstudionorms, color );
pglColor4ubv( color );
}
/*

22
ref/soft/r_studio.c

@ -1752,24 +1752,10 @@ static void R_StudioSetColorBegin(short *ptricmds, vec3_t *pstudionorms ) @@ -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] );
}

Loading…
Cancel
Save