mirror of
https://github.com/w23/xash3d-fwgs
synced 2025-01-18 23:00:01 +01:00
ref_soft: clamp alpha values
This commit is contained in:
parent
500ff629bf
commit
338b404055
11
r_edge.c
11
r_edge.c
@ -996,6 +996,8 @@ Normal surface cached, texture mapped surface
|
|||||||
*/
|
*/
|
||||||
void D_AlphaSurf (surf_t *s)
|
void D_AlphaSurf (surf_t *s)
|
||||||
{
|
{
|
||||||
|
int alpha;
|
||||||
|
|
||||||
d_zistepu = s->d_zistepu;
|
d_zistepu = s->d_zistepu;
|
||||||
d_zistepv = s->d_zistepv;
|
d_zistepv = s->d_zistepv;
|
||||||
d_ziorigin = s->d_ziorigin;
|
d_ziorigin = s->d_ziorigin;
|
||||||
@ -1052,13 +1054,16 @@ void D_AlphaSurf (surf_t *s)
|
|||||||
miplevel = D_MipLevelForScale(s->nearzi * scale_for_mip * pface->texinfo->mipadjust);
|
miplevel = D_MipLevelForScale(s->nearzi * scale_for_mip * pface->texinfo->mipadjust);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
alpha = RI.currententity->curstate.renderamt * 7 / 255;
|
||||||
|
if( alpha <= 0 && RI.currententity->curstate.renderamt > 0 )
|
||||||
|
alpha = 1;
|
||||||
|
|
||||||
if (s->flags & SURF_DRAWTURB )
|
if (s->flags & SURF_DRAWTURB )
|
||||||
{
|
{
|
||||||
cacheblock = R_GetTexture(pface->texinfo->texture->gl_texturenum)->pixels[0];
|
cacheblock = R_GetTexture(pface->texinfo->texture->gl_texturenum)->pixels[0];
|
||||||
cachewidth = 64;
|
cachewidth = 64;
|
||||||
D_CalcGradients (pface);
|
D_CalcGradients (pface);
|
||||||
TurbulentZ8( s->spans, RI.currententity->curstate.renderamt * 7 / 255 );
|
TurbulentZ8( s->spans, alpha);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1070,12 +1075,14 @@ void D_AlphaSurf (surf_t *s)
|
|||||||
|
|
||||||
D_CalcGradients (pface);
|
D_CalcGradients (pface);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if( RI.currententity->curstate.rendermode == kRenderTransAlpha )
|
if( RI.currententity->curstate.rendermode == kRenderTransAlpha )
|
||||||
D_AlphaSpans16(s->spans);
|
D_AlphaSpans16(s->spans);
|
||||||
else if( RI.currententity->curstate.rendermode == kRenderTransAdd )
|
else if( RI.currententity->curstate.rendermode == kRenderTransAdd )
|
||||||
D_AddSpans16(s->spans);
|
D_AddSpans16(s->spans);
|
||||||
else
|
else
|
||||||
D_BlendSpans16(s->spans, RI.currententity->curstate.renderamt * 7 / 255 );
|
D_BlendSpans16(s->spans, alpha );
|
||||||
}
|
}
|
||||||
|
|
||||||
VectorCopy (world_transformed_modelorg,
|
VectorCopy (world_transformed_modelorg,
|
||||||
|
@ -231,6 +231,13 @@ void R_BuildBlendMaps()
|
|||||||
r = r1 * (7 - a) / 7 + (r2 << 2 | BIT(2)) * a / 7;
|
r = r1 * (7 - a) / 7 + (r2 << 2 | BIT(2)) * a / 7;
|
||||||
g = g1 * (7 - a) / 7 + (g2 << 3 | MASK(2)) * a / 7;
|
g = g1 * (7 - a) / 7 + (g2 << 3 | MASK(2)) * a / 7;
|
||||||
b = b1 * (7 - a) / 7 + (b2 << 3 | MASK(2)) * a / 7;
|
b = b1 * (7 - a) / 7 + (b2 << 3 | MASK(2)) * a / 7;
|
||||||
|
if( r > MASK(5) )
|
||||||
|
r = MASK(5);
|
||||||
|
if( g > MASK(6) )
|
||||||
|
g = MASK(6);
|
||||||
|
if( b > MASK(5) )
|
||||||
|
b = MASK(5);
|
||||||
|
|
||||||
|
|
||||||
ASSERT( b < 32 );
|
ASSERT( b < 32 );
|
||||||
major = (((r >> 2) & MASK(3)) << 5) |( (( (g >> 3) & MASK(3)) << 2 ) )| (((b >> 3) & MASK(2)));
|
major = (((r >> 2) & MASK(3)) << 5) |( (( (g >> 3) & MASK(3)) << 2 ) )| (((b >> 3) & MASK(2)));
|
||||||
|
10
r_scan.c
10
r_scan.c
@ -297,6 +297,11 @@ void TurbulentZ8 (espan_t *pspan, int alpha1)
|
|||||||
float sdivz16stepu, tdivz16stepu, zi16stepu;
|
float sdivz16stepu, tdivz16stepu, zi16stepu;
|
||||||
alpha = alpha1;
|
alpha = alpha1;
|
||||||
|
|
||||||
|
if( alpha > 7 )
|
||||||
|
alpha = 7;
|
||||||
|
if( alpha == 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
r_turb_turb = sintable + ((int)(gpGlobals->time*SPEED)&(CYCLE-1));
|
r_turb_turb = sintable + ((int)(gpGlobals->time*SPEED)&(CYCLE-1));
|
||||||
|
|
||||||
r_turb_sstep = 0; // keep compiler happy
|
r_turb_sstep = 0; // keep compiler happy
|
||||||
@ -960,6 +965,11 @@ void D_BlendSpans16 (espan_t *pspan, int alpha)
|
|||||||
int izi, izistep;
|
int izi, izistep;
|
||||||
short *pz;
|
short *pz;
|
||||||
|
|
||||||
|
if( alpha > 7 )
|
||||||
|
alpha = 7;
|
||||||
|
if( alpha == 0 )
|
||||||
|
return;
|
||||||
|
|
||||||
sstep = 0; // keep compiler happy
|
sstep = 0; // keep compiler happy
|
||||||
tstep = 0; // ditto
|
tstep = 0; // ditto
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user