/*
==============
RB_AddCoronaFlares
==============
*/
void RB_AddCoronaFlares( void ) {
	corona_t        *cor;
	int i, j, k;
	fog_t           *fog;

	if ( r_flares->integer != 1 && r_flares->integer != 3 ) {
		return;
	}

	if ( !( tr.world ) ) { // (SA) possible currently at the player model selection menu
		return;
	}

	cor = backEnd.refdef.coronas;
	fog = tr.world->fogs;
	for ( i = 0 ; i < backEnd.refdef.num_coronas ; i++, cor++ ) {

		// find which fog volume the corona is in
		for ( j = 1 ; j < tr.world->numfogs ; j++ ) {
			fog = &tr.world->fogs[j];
			for ( k = 0 ; k < 3 ; k++ ) {
				if ( cor->origin[k] < fog->bounds[0][k] || cor->origin[k] > fog->bounds[1][k] ) {
					break;
				}
			}
			if ( k == 3 ) {
				break;
			}
		}
		if ( j == tr.world->numfogs ) {
			j = 0;
		}
		RB_AddFlare( (void *)cor, j, cor->origin, cor->color, cor->scale, NULL, cor->id, cor->visible );
	}
}
Exemple #2
0
/*
==================
RB_AddDlightFlares
==================
*/
void RB_AddDlightFlares( void ) {
	dlight_t		*l;
	int				i, j, k;
	fog_t			*fog;

	if ( !r_flares->integer ) {
		return;
	}

	l = backEnd.refdef.dlights;
	fog = tr.world->fogs;
	for (i=0 ; i<backEnd.refdef.num_dlights ; i++, l++) {

		// find which fog volume the light is in 
		for ( j = 1 ; j < tr.world->numfogs ; j++ ) {
			fog = &tr.world->fogs[j];
			for ( k = 0 ; k < 3 ; k++ ) {
				if ( l->origin[k] < fog->bounds[0][k] || l->origin[k] > fog->bounds[1][k] ) {
					break;
				}
			}
			if ( k == 3 ) {
				break;
			}
		}
		if ( j == tr.world->numfogs ) {
			j = 0;
		}

		RB_AddFlare( (void *)l, j, l->origin, l->color, NULL, 1.0f );
	}
}
Exemple #3
0
static void RB_AddDlightFlares() {
	if ( r_flares->integer < 2 ) {
		return;
	}

	int id = 0;
	dlight_t* l = backEnd.refdef.dlights;
	mbrush46_fog_t* fog = tr.world->fogs;
	for ( int i = 0; i < backEnd.refdef.num_dlights; i++, l++ ) {
		// find which fog volume the light is in
		int j;
		for ( j = 1; j < tr.world->numfogs; j++ ) {
			fog = &tr.world->fogs[ j ];
			int k;
			for ( k = 0; k < 3; k++ ) {
				if ( l->origin[ k ] < fog->bounds[ 0 ][ k ] || l->origin[ k ] > fog->bounds[ 1 ][ k ] ) {
					break;
				}
			}
			if ( k == 3 ) {
				break;
			}
		}
		if ( j == tr.world->numfogs ) {
			j = 0;
		}

		RB_AddFlare( ( void* )l, j, l->origin, l->color, 1.0f, NULL, id++, true );
	}
}
Exemple #4
0
/*
==============
RB_AddCoronaFlares
==============
*/
void RB_AddCoronaFlares( void ) {
	corona_t	*cor;
	int			i;
 
	if ( r_flares->integer != 1 && r_flares->integer != 3 ) {
		return;
	}

	cor = backEnd.refdef.coronas;
	for ( i = 0 ; i < backEnd.refdef.num_coronas ; i++, cor++ ) {
		RB_AddFlare( (void *)cor, R_PointFogNum( &backEnd.refdef, cor->origin, 0 ), cor->origin, cor->color, cor->scale, NULL, cor->id, cor->visible, cor->shader );
	}
}
Exemple #5
0
/*
==================
RB_AddDlightFlares
==================
*/
void RB_AddDlightFlares( void ) {
	dlight_t		*l;
	int				i;
	int				id = 0;

	if ( r_flares->integer < 2 ) {
		return;
	}

	l = backEnd.refdef.dlights;

	for (i=0 ; i<backEnd.refdef.num_dlights ; i++, l++) {
		RB_AddFlare( (void *)l, R_PointFogNum( &backEnd.refdef, l->origin, 0 ), l->origin, l->color, 1.0f, NULL, id++, qtrue, tr.flareShader );
	}
}
Exemple #6
0
/*
==================
RB_AddLightFlares
==================
*/
void RB_AddLightFlares(void)
{
	trRefLight_t   *l;
	int             i;

	if(!r_flares->integer)
		return;

	l = backEnd.refdef.lights;
	for(i = 0; i < backEnd.refdef.numLights; i++, l++)
	{
		if(!l->isStatic)
			continue;

		RB_AddFlare((void *)l, l->l.origin, l->l.color, NULL);
	}
}
/*
==================
RB_AddDlightFlares
==================
*/
void RB_AddDlightFlares( void ) {
	dlight_t        *l;
	int i, j, k;
	int id = 0;
	fog_t           *fog = NULL;

	if ( r_flares->integer < 2 ) {
		return;
	}

	l = backEnd.refdef.dlights;

	if(tr.world)
		fog = tr.world->fogs;

	for ( i = 0 ; i < backEnd.refdef.num_dlights ; i++, l++ ) {

		// find which fog volume the light is in
		if(fog)
		{
			// find which fog volume the light is in 
			for ( j = 1 ; j < tr.world->numfogs ; j++ ) {
				fog = &tr.world->fogs[j];
				for ( k = 0 ; k < 3 ; k++ ) {
					if ( l->origin[k] < fog->bounds[0][k] || l->origin[k] > fog->bounds[1][k] ) {
						break;
					}
				}
				if ( k == 3 ) {
					break;
				}
			}
			if ( j == tr.world->numfogs ) {
				j = 0;
			}
		}
		else
			j = 0;

		RB_AddFlare( (void *)l, j, l->origin, l->color, 1.0f, NULL, id++, qtrue );  //----(SA)	also set scale
	}
}
Exemple #8
0
/*
==================
RB_AddLightFlares
==================
*/
void RB_AddLightFlares(void)
{
	int             i, j, k;
	trRefLight_t   *l;
	fog_t          *fog;

	if(!r_flares->integer)
		return;

	l = backEnd.refdef.lights;
	fog = tr.world->fogs;

	for(i = 0; i < backEnd.refdef.numLights; i++, l++)
	{
		if(!l->isStatic)
			continue;

		// find which fog volume the light is in 
		for(j = 1; j < tr.world->numFogs; j++)
		{
			fog = &tr.world->fogs[j];
			for(k = 0; k < 3; k++)
			{
				if(l->l.origin[k] < fog->bounds[0][k] || l->l.origin[k] > fog->bounds[1][k])
				{
					break;
				}
			}
			if(k == 3)
			{
				break;
			}
		}
		
		if(j == tr.world->numFogs)
		{
			j = 0;
		}

		RB_AddFlare((void *)l, j, l->l.origin, l->l.color, NULL);
	}
}
Exemple #9
0
/*
==================
RB_AddDlightFlares
==================
*/
void RB_AddDlightFlares( void ) {
	dlight_t		*l;
	int				i, j, k;
	fog_t			*fog = NULL;

	if ( !r_flaresDlight->integer ) {	// leilei - dynamic light flares will be separate from flares
		return;
	}

	l = backEnd.refdef.dlights;

	if(tr.world)
		fog = tr.world->fogs;


	for (i=0 ; i<backEnd.refdef.num_dlights ; i++, l++) {

		if(fog)
		{
			// find which fog volume the light is in 
			for ( j = 1 ; j < tr.world->numfogs ; j++ ) {
				fog = &tr.world->fogs[j];
				for ( k = 0 ; k < 3 ; k++ ) {
					if ( l->origin[k] < fog->bounds[0][k] || l->origin[k] > fog->bounds[1][k] ) {
						break;
					}
				}
				if ( k == 3 ) {
					break;
				}
			}
			if ( j == tr.world->numfogs ) {
				j = 0;
			}
		}
		else
			j = 0;

		RB_AddFlare( (void *)l, j, l->origin, l->color, NULL, l->radius * 0.6, r_flaresDlight->integer, 1.0f, 1);
	}
}
Exemple #10
0
static void Tess_SurfaceFlare( srfFlare_t *surf )
{
	vec3_t dir;
	vec3_t origin;
	float  d;

	GLimp_LogComment( "--- Tess_SurfaceFlare ---\n" );

	Tess_CheckVBOAndIBO( tess.vbo, tess.ibo );

	VectorMA( surf->origin, 2.0, surf->normal, origin );
	VectorSubtract( origin, backEnd.viewParms.orientation.origin, dir );
	VectorNormalize( dir );
	d = -DotProduct( dir, surf->normal );
	VectorMA( origin, r_ignore->value, dir, origin );

	if ( d < 0 )
	{
		return;
	}

	RB_AddFlare( ( void * ) surf, tess.fogNum, origin, surf->color, surf->normal );
}
Exemple #11
0
static void RB_SurfaceFlare(srfFlare_t *surf)
{
	if (r_flares->integer)
		RB_AddFlare(surf, tess.fogNum, surf->origin, surf->color, surf->normal);
}