From: havoc Date: Tue, 16 Mar 2004 00:30:49 +0000 (+0000) Subject: doubled brightness of most dlights, and halved brightness of lightmap dlight renderin... X-Git-Tag: xonotic-v0.1.0preview~5982 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bee7c1d0045261aadc4f9a94bde6ac7243016640;p=xonotic%2Fdarkplaces.git doubled brightness of most dlights, and halved brightness of lightmap dlight rendering, this should make dlights and rtlights look mostly the same git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4028 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cl_main.c b/cl_main.c index e98a9321..d7d62bcd 100644 --- a/cl_main.c +++ b/cl_main.c @@ -659,44 +659,44 @@ void CL_LinkNetworkEntity(entity_t *e) if (gamemode == GAME_NEXUIZ) { dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.390625f; - dlightcolor[1] += 0.781250f; - dlightcolor[2] += 1.562500f; + dlightcolor[0] += 0.75f; + dlightcolor[1] += 1.50f; + dlightcolor[2] += 3.00f; trailtype = 8; } else CL_EntityParticles(e); } if (e->render.effects & EF_MUZZLEFLASH) - e->persistent.muzzleflash = 100.0f; + e->persistent.muzzleflash = 1.0f; if (e->render.effects & EF_DIMLIGHT) { dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.781250f; - dlightcolor[1] += 0.781250f; - dlightcolor[2] += 0.781250f; + dlightcolor[0] += 1.50f; + dlightcolor[1] += 1.50f; + dlightcolor[2] += 1.50f; } if (e->render.effects & EF_BRIGHTLIGHT) { dlightradius = max(dlightradius, 400); - dlightcolor[0] += 1.562500f; - dlightcolor[1] += 1.562500f; - dlightcolor[2] += 1.562500f; + dlightcolor[0] += 3.00f; + dlightcolor[1] += 3.00f; + dlightcolor[2] += 3.00f; } // LordHavoc: more effects if (e->render.effects & EF_RED) // red { dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.781250f; - dlightcolor[1] += 0.078125f; - dlightcolor[2] += 0.078125f; + dlightcolor[0] += 1.50f; + dlightcolor[1] += 0.15f; + dlightcolor[2] += 0.15f; } if (e->render.effects & EF_BLUE) // blue { dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.078125f; - dlightcolor[1] += 0.078125f; - dlightcolor[2] += 0.781250f; + dlightcolor[0] += 0.15f; + dlightcolor[1] += 0.15f; + dlightcolor[2] += 1.50f; } if (e->render.effects & EF_FLAME) { @@ -711,9 +711,9 @@ void CL_LinkNetworkEntity(entity_t *e) CL_FlameCube(mins, maxs, temp); d = lhrandom(0.75f, 1); dlightradius = max(dlightradius, 200); - dlightcolor[0] += d * 1.0f; - dlightcolor[1] += d * 0.7f; - dlightcolor[2] += d * 0.3f; + dlightcolor[0] += d * 2.0f; + dlightcolor[1] += d * 1.5f; + dlightcolor[2] += d * 0.5f; } if (e->render.effects & EF_STARDUST) { @@ -726,11 +726,10 @@ void CL_LinkNetworkEntity(entity_t *e) // how many particles to make temp = (int) (cl.time * 200) - (int) (cl.oldtime * 200); CL_Stardust(mins, maxs, temp); - d = 0.390625f; dlightradius = max(dlightradius, 200); - dlightcolor[0] += d * 1.0f; - dlightcolor[1] += d * 0.7f; - dlightcolor[2] += d * 0.3f; + dlightcolor[0] += 1.0f; + dlightcolor[1] += 0.7f; + dlightcolor[2] += 0.3f; } } // muzzleflash fades over time, and is offset a bit @@ -742,8 +741,8 @@ void CL_LinkNetworkEntity(entity_t *e) tempmatrix.m[0][3] = v[0]; tempmatrix.m[1][3] = v[1]; tempmatrix.m[2][3] = v[2]; - CL_AllocDlight(NULL, &tempmatrix, e->persistent.muzzleflash, 1, 1, 1, 0, 0, 0, 0, true, 0); - e->persistent.muzzleflash -= cl.frametime * 1000; + CL_AllocDlight(NULL, &tempmatrix, 100, e->persistent.muzzleflash, e->persistent.muzzleflash, e->persistent.muzzleflash, 0, 0, 0, 0, true, 0); + e->persistent.muzzleflash -= cl.frametime * 10; } // LordHavoc: if the model has no flags, don't check each if (e->render.model && e->render.model->flags && (!e->state_current.tagentity && !(e->render.flags & RENDER_VIEWMODEL))) @@ -756,25 +755,25 @@ void CL_LinkNetworkEntity(entity_t *e) { trailtype = 3; dlightradius = max(dlightradius, 100); - dlightcolor[0] += 0.060000f; - dlightcolor[1] += 0.250000f; - dlightcolor[2] += 0.062500f; + dlightcolor[0] += 0.12f; + dlightcolor[1] += 0.50f; + dlightcolor[2] += 0.12f; } else if (e->render.model->flags & EF_TRACER2) { trailtype = 5; dlightradius = max(dlightradius, 100); - dlightcolor[0] += 0.312500f; - dlightcolor[1] += 0.187500f; - dlightcolor[2] += 0.062500f; + dlightcolor[0] += 0.50f; + dlightcolor[1] += 0.30f; + dlightcolor[2] += 0.10f; } else if (e->render.model->flags & EF_ROCKET) { trailtype = 0; dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.781250f; - dlightcolor[1] += 0.625000f; - dlightcolor[2] += 0.312500f; + dlightcolor[0] += 1.50f; + dlightcolor[1] += 1.20f; + dlightcolor[2] += 0.60f; } else if (e->render.model->flags & EF_GRENADE) { @@ -785,9 +784,9 @@ void CL_LinkNetworkEntity(entity_t *e) { trailtype = 6; dlightradius = max(dlightradius, 200); - dlightcolor[0] += 0.312500f; - dlightcolor[1] += 0.125000f; - dlightcolor[2] += 0.250000f; + dlightcolor[0] += 0.60f; + dlightcolor[1] += 0.25f; + dlightcolor[2] += 0.50f; } } // LordHavoc: customizable glow @@ -814,8 +813,8 @@ void CL_LinkNetworkEntity(entity_t *e) { dlightmatrix = e->render.matrix; // hack to make glowing player light shine on their gun - if ((e - cl_entities) == cl.viewentity/* && !chase_active.integer*/) - dlightmatrix.m[2][3] += 30; + //if ((e - cl_entities) == cl.viewentity/* && !chase_active.integer*/) + // dlightmatrix.m[2][3] += 30; CL_AllocDlight(&e->render, &dlightmatrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, e->state_current.skin >= 16 ? e->state_current.skin : 0, e->state_current.lightstyle, !(e->state_current.lightpflags & PFLAGS_NOSHADOW), (e->state_current.lightpflags & PFLAGS_FULLDYNAMIC) ? ((e->state_current.lightpflags & PFLAGS_CORONA) != 0) : 1); } // trails need the previous frame diff --git a/cl_parse.c b/cl_parse.c index 46065b14..88042842 100644 --- a/cl_parse.c +++ b/cl_parse.c @@ -1037,7 +1037,7 @@ void CL_ParseTempEntity(void) MSG_ReadVector(pos); CL_FindNonSolidLocation(pos, pos, 4); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 150, 0.25f, 1.00f, 0.25f, 250, 0.2, 0, 0, false, 1); + CL_AllocDlight(NULL, &tempmatrix, 100, 0.12f, 0.50f, 0.12f, 500, 0.2, 0, 0, false, 1); CL_RunParticleEffect(pos, vec3_origin, 20, 30); S_StartSound(-1, 0, cl_sfx_wizhit, pos, 1, 1); break; @@ -1047,7 +1047,7 @@ void CL_ParseTempEntity(void) MSG_ReadVector(pos); CL_FindNonSolidLocation(pos, pos, 4); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 150, 1.0f, 0.60f, 0.20f, 250, 0.2, 0, 0, false, 1); + CL_AllocDlight(NULL, &tempmatrix, 100, 0.50f, 0.30f, 0.10f, 500, 0.2, 0, 0, false, 1); CL_RunParticleEffect(pos, vec3_origin, 226, 20); S_StartSound(-1, 0, cl_sfx_knighthit, pos, 1, 1); break; @@ -1078,7 +1078,7 @@ void CL_ParseTempEntity(void) // LordHavoc: changed to spark shower CL_SparkShower(pos, vec3_origin, 15); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); if (rand() % 5) S_StartSound(-1, 0, cl_sfx_tink1, pos, 1, 1); @@ -1119,7 +1119,7 @@ void CL_ParseTempEntity(void) // LordHavoc: changed to dust shower CL_SparkShower(pos, vec3_origin, 30); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1); if (rand() % 5) S_StartSound(-1, 0, cl_sfx_tink1, pos, 1, 1); else @@ -1216,7 +1216,7 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 4); CL_SparkShower(pos, vec3_origin, 15); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 200, 0.1f, 0.1f, 1.0f, 1000, 0.2, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 100, 0.15f, 0.15f, 1.5f, 500, 0.2, 0, 0, true, 1); break; case TE_EXPLOSION: @@ -1226,7 +1226,7 @@ void CL_ParseTempEntity(void) CL_ParticleExplosion(pos); // LordHavoc: boosted color from 1.0, 0.8, 0.4 to 1.25, 1.0, 0.5 Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 350, 1.25f, 1.0f, 0.5f, 700, 0.5, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 350, 2.5f, 2.0f, 1.0f, 700, 0.5, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); break; @@ -1236,7 +1236,7 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 10); CL_ParticleExplosion(pos); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 600, 0.5f, 0.4f, 1.0f, 1200, 0.5, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 350, 2.5f, 2.0f, 4.0f, 700, 0.5, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); break; @@ -1246,7 +1246,10 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 10); CL_ParticleExplosion(pos); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 350, MSG_ReadCoord(), MSG_ReadCoord(), MSG_ReadCoord(), 700, 0.5, 0, 0, true, 1); + color[0] = MSG_ReadCoord() * (2.0f / 1.0f); + color[1] = MSG_ReadCoord() * (2.0f / 1.0f); + color[2] = MSG_ReadCoord() * (2.0f / 1.0f); + CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); break; @@ -1255,9 +1258,9 @@ void CL_ParseTempEntity(void) MSG_ReadVector(pos); CL_FindNonSolidLocation(pos, pos, 10); CL_ParticleExplosion(pos); - color[0] = MSG_ReadByte() * (1.0 / 255.0); - color[1] = MSG_ReadByte() * (1.0 / 255.0); - color[2] = MSG_ReadByte() * (1.0 / 255.0); + color[0] = MSG_ReadByte() * (2.0f / 255.0f); + color[1] = MSG_ReadByte() * (2.0f / 255.0f); + color[2] = MSG_ReadByte() * (2.0f / 255.0f); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); @@ -1272,14 +1275,14 @@ void CL_ParseTempEntity(void) S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 600, 0.8f, 0.4f, 1.0f, 1200, 0.5, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 600, 1.6f, 0.8f, 2.0f, 1200, 0.5, 0, 0, true, 1); break; case TE_SMALLFLASH: MSG_ReadVector(pos); CL_FindNonSolidLocation(pos, pos, 10); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 200, 1, 1, 1, 1000, 0.2, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 200, 2, 2, 2, 1000, 0.2, 0, 0, true, 1); break; case TE_CUSTOMFLASH: @@ -1287,9 +1290,9 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 4); radius = MSG_ReadByte() * 8; velspeed = (MSG_ReadByte() + 1) * (1.0 / 256.0); - color[0] = MSG_ReadByte() * (1.0 / 255.0); - color[1] = MSG_ReadByte() * (1.0 / 255.0); - color[2] = MSG_ReadByte() * (1.0 / 255.0); + color[0] = MSG_ReadByte() * (2.0f / 255.0f); + color[1] = MSG_ReadByte() * (2.0f / 255.0f); + color[2] = MSG_ReadByte() * (2.0f / 255.0f); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); CL_AllocDlight(NULL, &tempmatrix, radius, color[0], color[1], color[2], radius / velspeed, velspeed, 0, 0, true, 1); break; @@ -1356,8 +1359,11 @@ void CL_ParseTempEntity(void) colorLength = MSG_ReadByte(); CL_ParticleExplosion2(pos, colorStart, colorLength); tempcolor = (qbyte *)&palette_complete[(rand()%colorLength) + colorStart]; + color[0] = tempcolor[0] * (2.0f / 255.0f); + color[1] = tempcolor[1] * (2.0f / 255.0f); + color[2] = tempcolor[2] * (2.0f / 255.0f); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 350, tempcolor[0] * (1.0f / 255.0f), tempcolor[1] * (1.0f / 255.0f), tempcolor[2] * (1.0f / 255.0f), 700, 0.5, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); break; @@ -1382,7 +1388,7 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 10); CL_ParticleExplosion(pos); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 500, 1.25f, 1.0f, 0.5f, 500, 9999, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 500, 2.5f, 2.0f, 1.0f, 500, 9999, 0, 0, true, 1); S_StartSound(-1, 0, cl_sfx_r_exp3, pos, 1, 1); break; @@ -1393,7 +1399,7 @@ void CL_ParseTempEntity(void) CL_FindNonSolidLocation(pos, pos, 5); CL_Tei_PlasmaHit(pos, dir, count); Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]); - CL_AllocDlight(NULL, &tempmatrix, 500, 0.3, 0.6, 1.0f, 2000, 9999, 0, 0, true, 1); + CL_AllocDlight(NULL, &tempmatrix, 500, 0.6, 1.2, 2.0f, 2000, 9999, 0, 0, true, 1); break; default: diff --git a/r_shadow.c b/r_shadow.c index f81399d9..2ca6d594 100644 --- a/r_shadow.c +++ b/r_shadow.c @@ -1910,7 +1910,7 @@ void R_RTLight_UpdateFromDLight(rtlight_t *rtlight, const dlight_t *light, int i rtlight->lightmap_cullradius = bound(0, rtlight->radius, 2048.0f); rtlight->lightmap_cullradius2 = rtlight->lightmap_cullradius * rtlight->lightmap_cullradius; - VectorScale(rtlight->color, rtlight->radius * d_lightstylevalue[rtlight->style] * 0.25f, rtlight->lightmap_light); + VectorScale(rtlight->color, rtlight->radius * d_lightstylevalue[rtlight->style] * 0.125f, rtlight->lightmap_light); rtlight->lightmap_subtract = 1.0f / rtlight->lightmap_cullradius2; } @@ -2158,6 +2158,9 @@ void R_DrawRTLight(rtlight_t *rtlight, int visiblevolumes) if (!(ent->flags & RENDER_SHADOW) || !ent->model || !ent->model->DrawShadowVolume) continue; Matrix4x4_Transform(&ent->inversematrix, rtlight->shadoworigin, relativelightorigin); + // light emitting entities should not cast their own shadow + if (VectorLength2(relativelightorigin) < 0.1) + continue; ent->model->DrawShadowVolume(ent, relativelightorigin, rtlight->radius, ent->model->numsurfaces, ent->model->surfacelist); } } diff --git a/todo b/todo index ec0b9243..2c074b7c 100644 --- a/todo +++ b/todo @@ -46,6 +46,8 @@ d darkplaces: typing ip in join game menu should show 'trying' and 'no response' -n dpmod: make grapple off-hand (joe hill) -n darkplaces: add DP_SV_ROTATINGBMODEL extension to explain that MOVETYPE_PUSH/SOLID_BSP support rotation in darkplaces and a demonstration of how to use it without qc modifications (Uffe, Supajoe) d darkplaces: fix 2D attenuation texturing which is all black +3 darkplaces: add clientside entity prediction similar to qw based on ping, and add cl_prediction and cl_prediction_lockping +3 darkplaces: make server send player ping times to client for scoreboard 2 dpmod: write a readme for the menu progs code to get people started with it, and know what is and is not possible, what builtins do, etc (Urre) 0 darkplaces: allow typing characters > 128 into console to allow Latin1 fonts to be used properly, already works in text messages (Urre) 0 darkplaces: make sure the engine uses only the first 32 special chars, so the high set can be replaced, this means player messages should not be shifted up, and the 'shift down' printing in dedicated server consoles should be removed, etc (Urre)