mirror of
https://github.com/ioquake/ioq3.git
synced 2025-05-31 00:51:17 +00:00
Don't scale shadow multipliers by overbrightbits, and improve documentation.
This commit is contained in:
parent
feb012152c
commit
8270d54a25
6 changed files with 52 additions and 26 deletions
|
@ -3277,7 +3277,8 @@ void RE_LoadWorldMap( const char *name ) {
|
|||
}
|
||||
|
||||
// set default map light scale
|
||||
tr.mapLightScale = 1.0f;
|
||||
tr.mapLightScale = 1.0f;
|
||||
tr.sunShadowScale = 0.5f;
|
||||
|
||||
// set default sun direction to be used if it isn't
|
||||
// overridden by a shader
|
||||
|
|
|
@ -1198,7 +1198,7 @@ void R_Register( void )
|
|||
r_forceSun = ri.Cvar_Get( "r_forceSun", "0", CVAR_CHEAT );
|
||||
r_forceSunMapLightScale = ri.Cvar_Get( "r_forceSunMapLightScale", "1.0", CVAR_CHEAT );
|
||||
r_forceSunLightScale = ri.Cvar_Get( "r_forceSunLightScale", "1.0", CVAR_CHEAT );
|
||||
r_forceSunAmbientScale = ri.Cvar_Get( "r_forceSunAmbientScale", "0.75", CVAR_CHEAT );
|
||||
r_forceSunAmbientScale = ri.Cvar_Get( "r_forceSunAmbientScale", "0.5", CVAR_CHEAT );
|
||||
r_drawSunRays = ri.Cvar_Get( "r_drawSunRays", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_sunlightMode = ri.Cvar_Get( "r_sunlightMode", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
|
||||
|
|
|
@ -1789,10 +1789,10 @@ typedef struct {
|
|||
int viewCluster;
|
||||
|
||||
float mapLightScale;
|
||||
float sunShadowScale;
|
||||
|
||||
qboolean sunShadows;
|
||||
vec3_t sunLight; // from the sky shader for this level
|
||||
vec3_t sunAmbient;
|
||||
vec3_t sunDirection;
|
||||
|
||||
frontEndCounters_t pc;
|
||||
|
|
|
@ -360,19 +360,34 @@ void RE_RenderScene( const refdef_t *fd ) {
|
|||
VectorSet(tr.refdef.sunCol, 0, 0, 0);
|
||||
VectorSet(tr.refdef.sunAmbCol, 0, 0, 0);
|
||||
}
|
||||
else if (r_forceSun->integer == 1)
|
||||
{
|
||||
float scale = pow(2, r_mapOverBrightBits->integer - tr.overbrightBits - 8);
|
||||
tr.refdef.colorScale = r_forceSunMapLightScale->value;
|
||||
VectorScale(tr.sunLight, scale * r_forceSunLightScale->value, tr.refdef.sunCol);
|
||||
VectorScale(tr.sunLight, scale * r_forceSunAmbientScale->value, tr.refdef.sunAmbCol);
|
||||
}
|
||||
else
|
||||
{
|
||||
float scale = pow(2, r_mapOverBrightBits->integer - tr.overbrightBits - 8);
|
||||
tr.refdef.colorScale = tr.mapLightScale;
|
||||
VectorScale(tr.sunLight, scale, tr.refdef.sunCol);
|
||||
VectorScale(tr.sunAmbient, scale, tr.refdef.sunAmbCol);
|
||||
tr.refdef.colorScale = r_forceSun->integer ? r_forceSunMapLightScale->value : tr.mapLightScale;
|
||||
|
||||
if (r_sunlightMode->integer == 1)
|
||||
{
|
||||
tr.refdef.sunCol[0] =
|
||||
tr.refdef.sunCol[1] =
|
||||
tr.refdef.sunCol[2] = 1.0f;
|
||||
|
||||
tr.refdef.sunAmbCol[0] =
|
||||
tr.refdef.sunAmbCol[1] =
|
||||
tr.refdef.sunAmbCol[2] = r_forceSun->integer ? r_forceSunAmbientScale->value : tr.sunShadowScale;
|
||||
}
|
||||
else
|
||||
{
|
||||
float scale = pow(2, r_mapOverBrightBits->integer - tr.overbrightBits - 8);
|
||||
if (r_forceSun->integer)
|
||||
{
|
||||
VectorScale(tr.sunLight, scale * r_forceSunLightScale->value, tr.refdef.sunCol);
|
||||
VectorScale(tr.sunLight, scale * r_forceSunAmbientScale->value, tr.refdef.sunAmbCol);
|
||||
}
|
||||
else
|
||||
{
|
||||
VectorScale(tr.sunLight, scale, tr.refdef.sunCol);
|
||||
VectorScale(tr.sunLight, scale * tr.sunShadowScale, tr.refdef.sunAmbCol);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (r_forceAutoExposure->integer)
|
||||
|
|
|
@ -1636,8 +1636,6 @@ static qboolean ParseShader( char **text )
|
|||
a = atof( token );
|
||||
VectorScale( tr.sunLight, a, tr.sunLight);
|
||||
|
||||
VectorSet( tr.sunAmbient, 0.0f, 0.0f, 0.0f);
|
||||
|
||||
token = COM_ParseExt( text, qfalse );
|
||||
a = atof( token );
|
||||
a = a / 180 * M_PI;
|
||||
|
@ -1656,7 +1654,7 @@ static qboolean ParseShader( char **text )
|
|||
tr.mapLightScale = atof(token);
|
||||
|
||||
token = COM_ParseExt( text, qfalse );
|
||||
VectorScale( tr.sunLight, atof(token), tr.sunAmbient );
|
||||
tr.sunShadowScale = atof(token);
|
||||
}
|
||||
|
||||
SkipRestOfLine( text );
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue