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.
This commit is contained in:
lawnjelly 2021-02-18 09:57:02 +00:00
parent 4384605cb1
commit 389dd6704e
2 changed files with 12 additions and 2 deletions

View file

@ -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

View file

@ -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