float angle;
float add;
float dist;
- float addDeluxe = 0.0f, addDeluxeBounceScale = 0.25f;\r
- qboolean angledDeluxe = qfalse;\r
+ float addDeluxe = 0.0f, addDeluxeBounceScale = 0.25f;
+ qboolean angledDeluxe = qfalse;
float colorBrightness;
/* get light */
/* clear color */
VectorClear( trace->color );
VectorClear( trace->colorNoShadow );
- VectorClear( trace->directionContribution );\r
-\r
+ VectorClear( trace->directionContribution );
+
colorBrightness = RGBTOGRAY( light->color ) * ( 1.0f/255.0f );
/* ydnar: early out */
add = light->photons / (dist * dist) * angle;
- if( deluxemap )\r
- {\r
- if( angledDeluxe )\r
- addDeluxe = light->photons / (dist * dist) * angle;\r
- else\r
- addDeluxe = light->photons / (dist * dist);\r
+ if( deluxemap )
+ {
+ if( angledDeluxe )
+ addDeluxe = light->photons / (dist * dist) * angle;
+ else
+ addDeluxe = light->photons / (dist * dist);
}
}
else
/* ydnar: moved to here */
add = factor * light->add;
- if( deluxemap )\r
+ if( deluxemap )
addDeluxe = add;
}
}
if( add < 0.0f )
add = 0.0f;
- if( deluxemap )\r
- {\r
- if( angledDeluxe )\r
- addDeluxe = angle * light->photons * linearScale - (dist * light->fade);\r
- else\r
- addDeluxe = light->photons * linearScale - (dist * light->fade);\r
-\r
- if( addDeluxe < 0.0f )\r
- addDeluxe = 0.0f;\r
+ if( deluxemap )
+ {
+ if( angledDeluxe )
+ addDeluxe = angle * light->photons * linearScale - (dist * light->fade);
+ else
+ addDeluxe = light->photons * linearScale - (dist * light->fade);
+
+ if( addDeluxe < 0.0f )
+ addDeluxe = 0.0f;
}
}
else
{
add = (light->photons / (dist * dist)) * angle;
- if( add < 0.0f )\r
- add = 0.0f;\r
-\r
- if( deluxemap )\r
- {\r
- if( angledDeluxe )\r
- addDeluxe = (light->photons / (dist * dist)) * angle;\r
- else\r
- addDeluxe = (light->photons / (dist * dist));\r
- }\r
-\r
- if( addDeluxe < 0.0f )\r
+ if( add < 0.0f )
+ add = 0.0f;
+
+ if( deluxemap )
+ {
+ if( angledDeluxe )
+ addDeluxe = (light->photons / (dist * dist)) * angle;
+ else
+ addDeluxe = (light->photons / (dist * dist));
+ }
+
+ if( addDeluxe < 0.0f )
addDeluxe = 0.0f;
}
if( sampleRadius > (radiusAtDist - 32.0f) )
{
add *= ((radiusAtDist - sampleRadius) / 32.0f);
- if( add < 0.0f )\r
- add = 0.0f;\r
-\r
- addDeluxe *= ((radiusAtDist - sampleRadius) / 32.0f);\r
-\r
- if( addDeluxe < 0.0f )\r
+ if( add < 0.0f )
+ add = 0.0f;
+
+ addDeluxe *= ((radiusAtDist - sampleRadius) / 32.0f);
+
+ if( addDeluxe < 0.0f )
addDeluxe = 0.0f;
}
}
/* attenuate */
add = light->photons * angle;
- if( deluxemap )\r
- {\r
- if( angledDeluxe )\r
- addDeluxe = light->photons * angle;\r
- else\r
- addDeluxe = light->photons;\r
-\r
- if( addDeluxe < 0.0f )\r
- addDeluxe = 0.0f;\r
+ if( deluxemap )
+ {
+ if( angledDeluxe )
+ addDeluxe = light->photons * angle;
+ else
+ addDeluxe = light->photons;
+
+ if( addDeluxe < 0.0f )
+ addDeluxe = 0.0f;
}
if( add <= 0.0f )
/* VorteX: set noShadow color */
VectorScale(light->color, add, trace->colorNoShadow);
- addDeluxe *= colorBrightness;\r
-\r
- if( bouncing )\r
- {\r
- addDeluxe *= addDeluxeBounceScale;\r
- if( addDeluxe < 0.00390625f )\r
- addDeluxe = 0.00390625f;\r
- }\r
-\r
+ addDeluxe *= colorBrightness;
+
+ if( bouncing )
+ {
+ addDeluxe *= addDeluxeBounceScale;
+ if( addDeluxe < 0.00390625f )
+ addDeluxe = 0.00390625f;
+ }
+
VectorScale( trace->direction, addDeluxe, trace->directionContribution );
/* setup trace */
if( add <= 0.0f || (add <= light->falloffTolerance && (light->flags & LIGHT_FAST_ACTUAL)) )
return 0;
- addDeluxe *= colorBrightness;\r
-\r
- /* hack land: scale down the radiosity contribution to light directionality.\r
- Deluxemaps fusion many light directions into one. In a rtl process all lights\r
- would contribute individually to the bump map, so several light sources together\r
- would make it more directional (example: a yellow and red lights received from\r
- opposing sides would light one side in red and the other in blue, adding\r
- the effect of 2 directions applied. In the deluxemapping case, this 2 lights would\r
- neutralize each other making it look like having no direction.\r
- Same thing happens with radiosity. In deluxemapping case the radiosity contribution\r
- is modifying the direction applied from directional lights, making it go closer and closer\r
- to the surface normal the bigger is the amount of radiosity received.\r
- So, for preserving the directional lights contributions, we scale down the radiosity\r
- contribution. It's a hack, but there's a reason behind it */\r
- if( bouncing )\r
- {\r
- addDeluxe *= addDeluxeBounceScale;\r
- if( addDeluxe < 0.00390625f )\r
- addDeluxe = 0.00390625f;\r
- }\r
-\r
+ addDeluxe *= colorBrightness;
+
+ /* hack land: scale down the radiosity contribution to light directionality.
+ Deluxemaps fusion many light directions into one. In a rtl process all lights
+ would contribute individually to the bump map, so several light sources together
+ would make it more directional (example: a yellow and red lights received from
+ opposing sides would light one side in red and the other in blue, adding
+ the effect of 2 directions applied. In the deluxemapping case, this 2 lights would
+ neutralize each other making it look like having no direction.
+ Same thing happens with radiosity. In deluxemapping case the radiosity contribution
+ is modifying the direction applied from directional lights, making it go closer and closer
+ to the surface normal the bigger is the amount of radiosity received.
+ So, for preserving the directional lights contributions, we scale down the radiosity
+ contribution. It's a hack, but there's a reason behind it */
+ if( bouncing )
+ {
+ addDeluxe *= addDeluxeBounceScale;
+ if( addDeluxe < 0.00390625f )
+ addDeluxe = 0.00390625f;
+ }
+
VectorScale( trace->direction, addDeluxe, trace->directionContribution );
/* setup trace */
if( trace->passSolid || trace->opaque )
{
VectorClear( trace->color );
- VectorClear( trace->directionContribution );\r
+ VectorClear( trace->directionContribution );
return -1;
}
}
}
- noDirty = qfalse;\r
- for( i = 0; i < trace.numSurfaces; i++ )\r
- {\r
- /* get surface */\r
- info = &surfaceInfos[ trace.surfaces[ i ] ];\r
-\r
- /* check twosidedness */\r
- if( info->si->noDirty )\r
- {\r
- noDirty = qtrue;\r
- break;\r
- }\r
+ noDirty = qfalse;
+ for( i = 0; i < trace.numSurfaces; i++ )
+ {
+ /* get surface */
+ info = &surfaceInfos[ trace.surfaces[ i ] ];
+
+ /* check twosidedness */
+ if( info->si->noDirty )
+ {
+ noDirty = qtrue;
+ break;
+ }
}
/* gather dirt */
if( *cluster < 0 )
continue;
- /* don't apply dirty on this surface */\r
- if( noDirty )\r
- {\r
- *dirt = 1.0f;\r
- continue;\r
+ /* don't apply dirty on this surface */
+ if( noDirty )
+ {
+ *dirt = 1.0f;
+ continue;
}
/* copy to trace */
LightContributionToSample( &trace );
VectorCopy( trace.color, lightLuxel );
- /* add the contribution to the deluxemap */\r
- if( deluxemap )\r
+ /* add the contribution to the deluxemap */
+ if( deluxemap )
VectorAdd( deluxel, trace.directionContribution, deluxel );
/* add to count */
rawLightmap_t *lm;
bspDrawVert_t *verts;
trace_t trace;
- float floodLightAmount;\r
+ float floodLightAmount;
vec3_t floodColor;
dirt = 1.0f;
/* jal: floodlight */
- floodLightAmount = 0.0f;\r
- VectorClear( floodColor );\r
- if( floodlighty && !bouncing )\r
- {\r
- floodLightAmount = floodlightIntensity * FloodLightForSample( &trace, floodlightDistance, floodlight_lowquality );\r
- VectorScale( floodlightRGB, floodLightAmount, floodColor );\r
+ floodLightAmount = 0.0f;
+ VectorClear( floodColor );
+ if( floodlighty && !bouncing )
+ {
+ floodLightAmount = floodlightIntensity * FloodLightForSample( &trace, floodlightDistance, floodlight_lowquality );
+ VectorScale( floodlightRGB, floodLightAmount, floodColor );
}
/* trace */
if (luxel[3]==0) luxel[3]=1;
/* add to deluxemap */
- if (deluxemap && floodlight[3] > 0)\r
+ if (deluxemap && floodlight[3] > 0)
{
- vec3_t lightvector;\r
-\r
+ vec3_t lightvector;
+
normal = SUPER_NORMAL( x, y );
- brightness = RGBTOGRAY( floodlight ) * ( 1.0f/255.0f ) * floodlight[3];\r
-\r
- // use AT LEAST this amount of contribution from ambient for the deluxemap, fixes points that receive ZERO light\r
- if(brightness < 0.00390625f)\r
- brightness = 0.00390625f;\r
-\r
+ brightness = RGBTOGRAY( floodlight ) * ( 1.0f/255.0f ) * floodlight[3];
+
+ // use AT LEAST this amount of contribution from ambient for the deluxemap, fixes points that receive ZERO light
+ if(brightness < 0.00390625f)
+ brightness = 0.00390625f;
+
VectorScale( normal, brightness, lightvector );
VectorAdd( deluxel, lightvector, deluxel );
}