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