allow more light contributions to the grid; remove a weird fudge
git-svn-id: svn://svn.icculus.org/netradiant/trunk@396 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
857830098f
commit
cf98832704
|
|
@ -1260,7 +1260,7 @@ grid samples are for quickly determining the lighting
|
||||||
of dynamically placed entities in the world
|
of dynamically placed entities in the world
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MAX_CONTRIBUTIONS 1024
|
#define MAX_CONTRIBUTIONS 32768
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
@ -1449,6 +1449,7 @@ void TraceGrid( int num )
|
||||||
|
|
||||||
/* now that we have identified the primary light direction,
|
/* now that we have identified the primary light direction,
|
||||||
go back and separate all the light into directed and ambient */
|
go back and separate all the light into directed and ambient */
|
||||||
|
|
||||||
numStyles = 1;
|
numStyles = 1;
|
||||||
for( i = 0; i < numCon; i++ )
|
for( i = 0; i < numCon; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -1491,15 +1492,30 @@ void TraceGrid( int num )
|
||||||
/* (Hobbes: always setting it to .25 is hardly any better) */
|
/* (Hobbes: always setting it to .25 is hardly any better) */
|
||||||
d = 0.25f * (1.0f - d);
|
d = 0.25f * (1.0f - d);
|
||||||
VectorMA( gp->ambient[ j ], d, contributions[ i ].color, gp->ambient[ j ] );
|
VectorMA( gp->ambient[ j ], d, contributions[ i ].color, gp->ambient[ j ] );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* div0:
|
||||||
|
* the total light average = ambient value + 0.25 * sum of all directional values
|
||||||
|
* we can also get the total light average as 0.25 * the sum of all contributions
|
||||||
|
*
|
||||||
|
* 0.25 * sum(contribution_i) == ambient + 0.25 * sum(d_i contribution_i)
|
||||||
|
*
|
||||||
|
* THIS YIELDS:
|
||||||
|
* ambient == 0.25 * sum((1 - d_i) contribution_i)
|
||||||
|
*
|
||||||
|
* So, 0.25f * (1.0f - d) IS RIGHT. If you want to tune it, tune d BEFORE.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* store off sample */
|
/* store off sample */
|
||||||
for( i = 0; i < MAX_LIGHTMAPS; i++ )
|
for( i = 0; i < MAX_LIGHTMAPS; i++ )
|
||||||
{
|
{
|
||||||
|
#if 0
|
||||||
/* do some fudging to keep the ambient from being too low (2003-07-05: 0.25 -> 0.125) */
|
/* do some fudging to keep the ambient from being too low (2003-07-05: 0.25 -> 0.125) */
|
||||||
if( !bouncing )
|
if( !bouncing )
|
||||||
VectorMA( gp->ambient[ i ], 0.125f, gp->directed[ i ], gp->ambient[ i ] );
|
VectorMA( gp->ambient[ i ], 0.125f, gp->directed[ i ], gp->ambient[ i ] );
|
||||||
|
#endif
|
||||||
|
|
||||||
/* set minimum light and copy off to bytes */
|
/* set minimum light and copy off to bytes */
|
||||||
VectorCopy( gp->ambient[ i ], color );
|
VectorCopy( gp->ambient[ i ], color );
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user