Hello everybody,
I discovered recently the deluxemap, and I want to use it.
However, my video card does not support glsl or arb shaders, then I tried the dot3 method to make bumpmapping in quake3 ( qfusion exactly ).
Actually, deluxemap light vector colors are not calculed from the surface ( the bumpmapped one ) space, but from the world space.
I made some test on a simple cube room map :
I have this :

Whereas I want that :

My modifications in q3map2 does not work totaly correctly, and make me this :

The code :
in light_ydnar.c@IlluminateRawLightmap:1666
[...]
/* add to light direction map (fixme: use luxel normal as starting point for deluxel?) */
if( deluxemap )
{
/* color to grayscale (photoshop rgb weighting) */
brightness = trace.color[ 0 ] * 0.3f + trace.color[ 1 ] * 0.59f + trace.color[ 2 ] * 0.11f;
brightness *= (1.0 / 255.0);
trace.direction[0] -= trace.normal[0] - 0; // add
trace.direction[1] -= trace.normal[1] - 0; // add
trace.direction[2] -= trace.normal[2] - 1; // add
VectorNormalize( trace.direction, trace.direction ); // add
VectorScale( trace.direction, brightness, trace.direction );
VectorAdd( deluxel, trace.direction, deluxel );
}
[...]
The -0 -0 -1 thing is the default normal of the world, ie Vector( 0,0,1 ).
Thus I would like success to make correct deluxemap calculated from surface space.
I hope all that can help you to help me ;).
Thanks !