2
0
Fork 0

Batching - prevent joining of lightmasked items

It turns out lights masking misbehaves when items that are masked are joined. This PR simply disables joining in this case.
3.3
lawnjelly 2021-02-18 09:57:02 +07:00
parent 4384605cb1
commit 389dd6704e
2 changed files with 12 additions and 2 deletions

@ -1277,7 +1277,12 @@ bool RasterizerCanvasGLES2::try_join_item(Item *p_ci, RenderItemState &r_ris, bo
r_batch_break = false;
bool join = true;
// light_masked may possibly need state checking here. Check for regressions!
// light_masked objects we just don't currently support for joining
// (this could possibly be improved at a later date)
if (p_ci->light_masked) {
join = false;
r_batch_break = true;
}
// we will now allow joining even if final modulate is different
// we will instead bake the final modulate into the vertex colors

@ -1678,7 +1678,12 @@ bool RasterizerCanvasGLES3::try_join_item(Item *p_ci, RenderItemState &r_ris, bo
r_batch_break = false;
bool join = true;
// light_masked may possibly need state checking here. Check for regressions!
// light_masked objects we just don't currently support for joining
// (this could possibly be improved at a later date)
if (p_ci->light_masked) {
join = false;
r_batch_break = true;
}
// we will now allow joining even if final modulate is different
// we will instead bake the final modulate into the vertex colors