lightgrid search fix; increase max vertices of poly
git-svn-id: svn://svn.icculus.org/netradiant/trunk@398 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
714c463815
commit
ee71ec8dcb
|
|
@ -26,7 +26,7 @@ typedef struct
|
||||||
vec3_t p[4]; // variable sized
|
vec3_t p[4]; // variable sized
|
||||||
} winding_t;
|
} winding_t;
|
||||||
|
|
||||||
#define MAX_POINTS_ON_WINDING 64
|
#define MAX_POINTS_ON_WINDING 512
|
||||||
|
|
||||||
// you can define on_epsilon in the makefile as tighter
|
// you can define on_epsilon in the makefile as tighter
|
||||||
#ifndef ON_EPSILON
|
#ifndef ON_EPSILON
|
||||||
|
|
|
||||||
|
|
@ -1274,7 +1274,7 @@ void TraceGrid( int num )
|
||||||
{
|
{
|
||||||
int i, j, x, y, z, mod, step, numCon, numStyles;
|
int i, j, x, y, z, mod, step, numCon, numStyles;
|
||||||
float d;
|
float d;
|
||||||
vec3_t baseOrigin, cheapColor, color;
|
vec3_t baseOrigin, cheapColor, color, thisdir;
|
||||||
rawGridPoint_t *gp;
|
rawGridPoint_t *gp;
|
||||||
bspGridPoint_t *bgp;
|
bspGridPoint_t *bgp;
|
||||||
contribution_t contributions[ MAX_CONTRIBUTIONS ];
|
contribution_t contributions[ MAX_CONTRIBUTIONS ];
|
||||||
|
|
@ -1311,25 +1311,25 @@ void TraceGrid( int num )
|
||||||
{
|
{
|
||||||
/* try to nudge the origin around to find a valid point */
|
/* try to nudge the origin around to find a valid point */
|
||||||
VectorCopy( trace.origin, baseOrigin );
|
VectorCopy( trace.origin, baseOrigin );
|
||||||
for( step = 9; step <= 18; step += 9 )
|
for( step = 0.05; step <= 0.5; step += 0.05 )
|
||||||
{
|
{
|
||||||
for( i = 0; i < 8; i++ )
|
for( i = 0; i < 8; i++ )
|
||||||
{
|
{
|
||||||
VectorCopy( baseOrigin, trace.origin );
|
VectorCopy( baseOrigin, trace.origin );
|
||||||
if( i & 1 )
|
if( i & 1 )
|
||||||
trace.origin[ 0 ] += step;
|
trace.origin[ 0 ] += step * gridSize[0];
|
||||||
else
|
else
|
||||||
trace.origin[ 0 ] -= step;
|
trace.origin[ 0 ] -= step * gridSize[0];
|
||||||
|
|
||||||
if( i & 2 )
|
if( i & 2 )
|
||||||
trace.origin[ 1 ] += step;
|
trace.origin[ 1 ] += step * gridSize[1];
|
||||||
else
|
else
|
||||||
trace.origin[ 1 ] -= step;
|
trace.origin[ 1 ] -= step * gridSize[1];
|
||||||
|
|
||||||
if( i & 4 )
|
if( i & 4 )
|
||||||
trace.origin[ 2 ] += step;
|
trace.origin[ 2 ] += step * gridSize[2];
|
||||||
else
|
else
|
||||||
trace.origin[ 2 ] -= step;
|
trace.origin[ 2 ] -= step * gridSize[2];
|
||||||
|
|
||||||
/* ydnar: changed to find cluster num */
|
/* ydnar: changed to find cluster num */
|
||||||
trace.cluster = ClusterForPointExt( trace.origin, VERTEX_EPSILON );
|
trace.cluster = ClusterForPointExt( trace.origin, VERTEX_EPSILON );
|
||||||
|
|
@ -1342,7 +1342,7 @@ void TraceGrid( int num )
|
||||||
}
|
}
|
||||||
|
|
||||||
/* can't find a valid point at all */
|
/* can't find a valid point at all */
|
||||||
if( step > 18 )
|
if( step > 0.5 )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1445,7 +1445,7 @@ void TraceGrid( int num )
|
||||||
/////////////////////
|
/////////////////////
|
||||||
|
|
||||||
/* normalize to get primary light direction */
|
/* normalize to get primary light direction */
|
||||||
VectorNormalize( gp->dir, gp->dir );
|
VectorNormalize( gp->dir, thisdir );
|
||||||
|
|
||||||
/* 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 */
|
||||||
|
|
@ -1454,7 +1454,7 @@ void TraceGrid( int num )
|
||||||
for( i = 0; i < numCon; i++ )
|
for( i = 0; i < numCon; i++ )
|
||||||
{
|
{
|
||||||
/* get relative directed strength */
|
/* get relative directed strength */
|
||||||
d = DotProduct( contributions[ i ].dir, gp->dir );
|
d = DotProduct( contributions[ i ].dir, thisdir );
|
||||||
/* we map 1 to gridDirectionality, and 0 to gridAmbientDirectionality */
|
/* we map 1 to gridDirectionality, and 0 to gridAmbientDirectionality */
|
||||||
d = gridAmbientDirectionality + d * (gridDirectionality - gridAmbientDirectionality);
|
d = gridAmbientDirectionality + d * (gridDirectionality - gridAmbientDirectionality);
|
||||||
if( d < 0.0f )
|
if( d < 0.0f )
|
||||||
|
|
@ -1540,8 +1540,7 @@ void TraceGrid( int num )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* store direction */
|
/* store direction */
|
||||||
if( !bouncing )
|
NormalToLatLong( thisdir, bgp->latLong );
|
||||||
NormalToLatLong( gp->dir, bgp->latLong );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2003,7 +2002,7 @@ int LightMain( int argc, char **argv )
|
||||||
else if( !strcmp( argv[ i ], "-gridambientdirectionality" ) )
|
else if( !strcmp( argv[ i ], "-gridambientdirectionality" ) )
|
||||||
{
|
{
|
||||||
f = atof( argv[ i + 1 ] );
|
f = atof( argv[ i + 1 ] );
|
||||||
if(f > gridDirectionality) f = gridDirectionality
|
if(f > gridDirectionality) f = gridDirectionality;
|
||||||
if(f > 1) f = 1;
|
if(f > 1) f = 1;
|
||||||
Sys_Printf( "Grid ambient directionality is %f\n", f );
|
Sys_Printf( "Grid ambient directionality is %f\n", f );
|
||||||
gridAmbientDirectionality *= f;
|
gridAmbientDirectionality *= f;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user