This commit is contained in:
Rudolf Polzer 2010-07-30 16:02:39 +02:00
parent 49908637c3
commit fa0fce3cfa

View File

@ -1535,56 +1535,56 @@ void TraceGrid( int num )
/////// Floodlighting for point ////////////////// /////// Floodlighting for point //////////////////
//do our floodlight ambient occlusion loop, and add a single contribution based on the brightest dir //do our floodlight ambient occlusion loop, and add a single contribution based on the brightest dir
if( floodlighty ) if( floodlighty )
{ {
int k; int k;
float addSize, f; float addSize, f;
vec3_t dir = { 0, 0, 1 }; vec3_t dir = { 0, 0, 1 };
float ambientFrac = 0.25f; float ambientFrac = 0.25f;
trace.testOcclusion = qtrue; trace.testOcclusion = qtrue;
trace.forceSunlight = qfalse; trace.forceSunlight = qfalse;
trace.inhibitRadius = DEFAULT_INHIBIT_RADIUS; trace.inhibitRadius = DEFAULT_INHIBIT_RADIUS;
trace.testAll = qtrue; trace.testAll = qtrue;
for( k = 0; k < 2; k++ ) for( k = 0; k < 2; k++ )
{ {
if( k == 0 ) // upper hemisphere if( k == 0 ) // upper hemisphere
{ {
trace.normal[0] = 0; trace.normal[0] = 0;
trace.normal[1] = 0; trace.normal[1] = 0;
trace.normal[2] = 1; trace.normal[2] = 1;
} }
else //lower hemisphere else //lower hemisphere
{ {
trace.normal[0] = 0; trace.normal[0] = 0;
trace.normal[1] = 0; trace.normal[1] = 0;
trace.normal[2] = -1; trace.normal[2] = -1;
} }
f = FloodLightForSample( &trace, floodlightDistance, floodlight_lowquality ); f = FloodLightForSample( &trace, floodlightDistance, floodlight_lowquality );
/* add a fraction as pure ambient, half as top-down direction */ /* add a fraction as pure ambient, half as top-down direction */
contributions[ numCon ].color[0]= floodlightRGB[0] * floodlightIntensity * f * ( 1.0f - ambientFrac ); contributions[ numCon ].color[0]= floodlightRGB[0] * floodlightIntensity * f * ( 1.0f - ambientFrac );
contributions[ numCon ].color[1]= floodlightRGB[1] * floodlightIntensity * f * ( 1.0f - ambientFrac ); contributions[ numCon ].color[1]= floodlightRGB[1] * floodlightIntensity * f * ( 1.0f - ambientFrac );
contributions[ numCon ].color[2]= floodlightRGB[2] * floodlightIntensity * f * ( 1.0f - ambientFrac ); contributions[ numCon ].color[2]= floodlightRGB[2] * floodlightIntensity * f * ( 1.0f - ambientFrac );
contributions[ numCon ].ambient[0]= floodlightRGB[0] * floodlightIntensity * f * ambientFrac; contributions[ numCon ].ambient[0]= floodlightRGB[0] * floodlightIntensity * f * ambientFrac;
contributions[ numCon ].ambient[1]= floodlightRGB[1] * floodlightIntensity * f * ambientFrac; contributions[ numCon ].ambient[1]= floodlightRGB[1] * floodlightIntensity * f * ambientFrac;
contributions[ numCon ].ambient[2]= floodlightRGB[2] * floodlightIntensity * f * ambientFrac; contributions[ numCon ].ambient[2]= floodlightRGB[2] * floodlightIntensity * f * ambientFrac;
contributions[ numCon ].dir[0] = dir[0]; contributions[ numCon ].dir[0] = dir[0];
contributions[ numCon ].dir[1] = dir[1]; contributions[ numCon ].dir[1] = dir[1];
contributions[ numCon ].dir[2] = dir[2]; contributions[ numCon ].dir[2] = dir[2];
contributions[ numCon ].style = 0; contributions[ numCon ].style = 0;
/* push average direction around */ /* push average direction around */
addSize = VectorLength( contributions[ numCon ].color ); addSize = VectorLength( contributions[ numCon ].color );
VectorMA( gp->dir, addSize, dir, gp->dir ); VectorMA( gp->dir, addSize, dir, gp->dir );
numCon++; numCon++;
} }
} }
///////////////////// /////////////////////