mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 23:32:09 +00:00
[scene] Improve directional light handling
While it wasn't the root cause of the disappearing lights (even after sorting out the light limit issue), because the cause of that was everything working as designed, I suspect sunlight wasn't reaching as far as it should. Even it it was, this should be slightly faster (especially for larger maps) as leafs can be tested 32 or 64 at a time rather than individually.
This commit is contained in:
parent
775f3b87a8
commit
d3965af2ae
1 changed files with 7 additions and 7 deletions
|
@ -132,14 +132,13 @@ Light_FindVisibleLights (lightingdata_t *ldata)
|
|||
|
||||
if (leaf == model->brush.leafs) {
|
||||
set_everything (ldata->pvs);
|
||||
flags = SURF_DRAWSKY;
|
||||
} else {
|
||||
Mod_LeafPVS_set (leaf, model, 0, ldata->pvs);
|
||||
expand_pvs (ldata->pvs, model);
|
||||
}
|
||||
for (unsigned i = 0; i < model->brush.visleafs; i++) {
|
||||
if (set_is_member (ldata->pvs, i)) {
|
||||
flags |= model->brush.leaf_flags[i + 1];
|
||||
if (set_is_intersecting (ldata->pvs, ldata->sun_pvs)) {
|
||||
flags |= SURF_DRAWSKY;
|
||||
}
|
||||
expand_pvs (ldata->pvs, model);
|
||||
}
|
||||
ldata->leaf = leaf;
|
||||
|
||||
|
@ -156,7 +155,8 @@ Light_FindVisibleLights (lightingdata_t *ldata)
|
|||
visible++;
|
||||
}
|
||||
}
|
||||
//Sys_Printf ("find_visible_lights: %d / %zd visible\n", visible,
|
||||
// ldata->lightvis.size);
|
||||
Sys_MaskPrintf (SYS_lighting,
|
||||
"find_visible_lights: %d / %zd visible\n", visible,
|
||||
ldata->lightvis.size);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue