X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=gl_rmain.c;h=fe186d79b67fd36bba3114638f82e9b55258cb59;hb=01179863ff1eb63c5ff88c7019f9b3869ecbf2ff;hp=24c9baa056c896a373b90581408c14f15e44402c;hpb=105b92bbfd2a623a7bc6f59c4f7110c5b259c9b2;p=xonotic%2Fdarkplaces.git diff --git a/gl_rmain.c b/gl_rmain.c index 24c9baa0..fe186d79 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -52,7 +52,7 @@ unsigned short d_lightstylevalue[256]; cvar_t r_drawentities = {0, "r_drawentities","1"}; cvar_t r_drawviewmodel = {0, "r_drawviewmodel","1"}; cvar_t r_shadows = {CVAR_SAVE, "r_shadows", "1"}; -cvar_t r_staticworldlights = {0, "r_staticworldlights", "1"}; +cvar_t r_shadow_staticworldlights = {0, "r_shadow_staticworldlights", "1"}; cvar_t r_speeds = {0, "r_speeds","0"}; cvar_t r_fullbright = {0, "r_fullbright","0"}; cvar_t r_wateralpha = {CVAR_SAVE, "r_wateralpha","1"}; @@ -221,7 +221,7 @@ void GL_Main_Init(void) Cvar_RegisterVariable (&r_drawentities); Cvar_RegisterVariable (&r_drawviewmodel); Cvar_RegisterVariable (&r_shadows); - Cvar_RegisterVariable (&r_staticworldlights); + Cvar_RegisterVariable (&r_shadow_staticworldlights); Cvar_RegisterVariable (&r_speeds); Cvar_RegisterVariable (&r_fullbrights); Cvar_RegisterVariable (&r_wateralpha); @@ -577,6 +577,7 @@ int R_DrawBrushModelsSky (void) R_DrawViewModel ============= */ +/* void R_DrawViewModel (void) { entity_render_t *ent; @@ -593,6 +594,7 @@ void R_DrawViewModel (void) R_UpdateEntLights(ent); ent->model->Draw(ent); } +*/ void R_DrawNoModel(entity_render_t *ent); void R_DrawModels () @@ -603,7 +605,6 @@ void R_DrawModels () if (!r_drawentities.integer) return; - R_DrawViewModel(); for (i = 0;i < r_refdef.numentities;i++) { ent = r_refdef.entities[i]; @@ -890,10 +891,11 @@ void R_ShadowVolumeLighting (int visiblevolumes) if (!visiblevolumes) R_Shadow_Stage_ShadowVolumes(); - if (wl->shadowvolume && r_staticworldlights.integer) - R_Shadow_DrawWorldLightShadowVolume(&cl_entities[0].render.matrix, wl); + ent = &cl_entities[0].render; + if (wl->shadowvolume && r_shadow_staticworldlights.integer) + R_Shadow_DrawWorldLightShadowVolume(&ent->matrix, wl); else - R_TestAndDrawShadowVolume(&cl_entities[0].render, wl->origin, cullradius, lightradius, clipmins, clipmaxs); + R_TestAndDrawShadowVolume(ent, wl->origin, cullradius / ent->scale, lightradius / ent->scale, clipmins, clipmaxs); if (r_drawentities.integer) { for (i = 0;i < r_refdef.numentities;i++) @@ -903,7 +905,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) && ent->maxs[1] >= wl->mins[1] && ent->mins[1] <= wl->maxs[1] && ent->maxs[2] >= wl->mins[2] && ent->mins[2] <= wl->maxs[2] && !(ent->effects & EF_ADDITIVE) && ent->alpha == 1) - R_TestAndDrawShadowVolume(r_refdef.entities[i], wl->origin, cullradius, lightradius, clipmins, clipmaxs); + R_TestAndDrawShadowVolume(r_refdef.entities[i], wl->origin, cullradius / ent->scale, lightradius / ent->scale, clipmins, clipmaxs); } } @@ -918,7 +920,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) if (wl->numsurfaces) R_Model_Brush_DrawLightForSurfaceList(ent, relativelightorigin, relativeeyeorigin, lightradius, lightcolor, wl->surfaces, wl->numsurfaces); else - ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius, lightcolor); + ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius / ent->scale, lightcolor); } if (r_drawentities.integer) { @@ -933,27 +935,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) { Matrix4x4_Transform(&ent->inversematrix, wl->origin, relativelightorigin); Matrix4x4_Transform(&ent->inversematrix, r_origin, relativeeyeorigin); - ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius, lightcolor); - } - } - } - - if (R_Shadow_Stage_EraseShadowVolumes()) - { - if (wl->shadowvolume && r_staticworldlights.integer) - R_Shadow_DrawWorldLightShadowVolume(&cl_entities[0].render.matrix, wl); - else - R_TestAndDrawShadowVolume(&cl_entities[0].render, wl->origin, cullradius, lightradius, clipmins, clipmaxs); - if (r_drawentities.integer) - { - for (i = 0;i < r_refdef.numentities;i++) - { - ent = r_refdef.entities[i]; - if (ent->maxs[0] >= wl->mins[0] && ent->mins[0] <= wl->maxs[0] - && ent->maxs[1] >= wl->mins[1] && ent->mins[1] <= wl->maxs[1] - && ent->maxs[2] >= wl->mins[2] && ent->mins[2] <= wl->maxs[2] - && !(ent->effects & EF_ADDITIVE) && ent->alpha == 1) - R_TestAndDrawShadowVolume(r_refdef.entities[i], wl->origin, cullradius, lightradius, clipmins, clipmaxs); + ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius / ent->scale, lightcolor); } } } @@ -976,7 +958,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) if (!visiblevolumes) R_Shadow_Stage_ShadowVolumes(); - if (sl->shadowvolume && r_staticworldlights.integer) + if (sl->shadowvolume && r_shadow_staticworldlights.integer) R_DrawWorldLightShadowVolume(&cl_entities[0].render.matrix, sl->shadowvolume); else R_TestAndDrawShadowVolume(&cl_entities[0].render, sl->origin, cullradius, lightradius); @@ -1020,24 +1002,6 @@ void R_ShadowVolumeLighting (int visiblevolumes) } } } - - R_Shadow_Stage_EraseShadowVolumes(); - if (sl->shadowvolume && r_staticworldlights.integer) - R_DrawWorldLightShadowVolume(&cl_entities[0].render.matrix, sl->shadowvolume); - else - R_TestAndDrawShadowVolume(&cl_entities[0].render, sl->origin, cullradius, lightradius); - if (r_drawentities.integer) - { - for (i = 0;i < r_refdef.numentities;i++) - { - ent = r_refdef.entities[i]; - if (ent->maxs[0] >= sl->mins[0] && ent->mins[0] <= sl->maxs[0] - && ent->maxs[1] >= sl->mins[1] && ent->mins[1] <= sl->maxs[1] - && ent->maxs[2] >= sl->mins[2] && ent->mins[2] <= sl->maxs[2] - && !(ent->effects & EF_ADDITIVE) && ent->alpha == 1) - R_TestAndDrawShadowVolume(r_refdef.entities[i], sl->origin, cullradius, lightradius); - } - } } } */ @@ -1061,14 +1025,15 @@ void R_ShadowVolumeLighting (int visiblevolumes) if (!visiblevolumes) R_Shadow_Stage_ShadowVolumes(); - R_TestAndDrawShadowVolume(&cl_entities[0].render, rd->origin, cullradius, lightradius, clipmins, clipmaxs); + ent = &cl_entities[0].render; + R_TestAndDrawShadowVolume(ent, rd->origin, cullradius / ent->scale, lightradius / ent->scale, clipmins, clipmaxs); if (r_drawentities.integer) { for (i = 0;i < r_refdef.numentities;i++) { ent = r_refdef.entities[i]; if (ent != rd->ent && !(ent->effects & EF_ADDITIVE) && ent->alpha == 1) - R_TestAndDrawShadowVolume(ent, rd->origin, cullradius, lightradius, clipmins, clipmaxs); + R_TestAndDrawShadowVolume(ent, rd->origin, cullradius / ent->scale, lightradius / ent->scale, clipmins, clipmaxs); } } @@ -1080,7 +1045,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) { Matrix4x4_Transform(&ent->inversematrix, rd->origin, relativelightorigin); Matrix4x4_Transform(&ent->inversematrix, r_origin, relativeeyeorigin); - ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius, lightcolor); + ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius / ent->scale, lightcolor); } if (r_drawentities.integer) { @@ -1092,21 +1057,7 @@ void R_ShadowVolumeLighting (int visiblevolumes) { Matrix4x4_Transform(&ent->inversematrix, rd->origin, relativelightorigin); Matrix4x4_Transform(&ent->inversematrix, r_origin, relativeeyeorigin); - ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius, lightcolor); - } - } - } - - if (R_Shadow_Stage_EraseShadowVolumes()) - { - R_TestAndDrawShadowVolume(&cl_entities[0].render, rd->origin, cullradius, lightradius, clipmins, clipmaxs); - if (r_drawentities.integer) - { - for (i = 0;i < r_refdef.numentities;i++) - { - ent = r_refdef.entities[i]; - if (ent != rd->ent && !(ent->effects & EF_ADDITIVE) && ent->alpha == 1) - R_TestAndDrawShadowVolume(ent, rd->origin, cullradius, lightradius, clipmins, clipmaxs); + ent->model->DrawLight(ent, relativelightorigin, relativeeyeorigin, lightradius / ent->scale, lightcolor); } } }