Use LOD_0, not LAST_LOD, for instance count updates

This commit is contained in:
aidandavey 2025-11-05 18:26:34 +00:00
parent 99da7a703d
commit e2073d5639
1 changed files with 2 additions and 2 deletions

View File

@ -220,7 +220,7 @@ void Terrain3DInstancer::_update_mmi_by_region(const Terrain3DRegion *p_region,
if (modified || !mm.is_valid() || if (modified || !mm.is_valid() ||
lod == Terrain3DMeshAsset::SHADOW_LOD_ID) { lod == Terrain3DMeshAsset::SHADOW_LOD_ID) {
// Subtract previous instance count for this cell // Subtract previous instance count for this cell
if (mm.is_valid() && lod == ma->get_last_lod()) { if (mm.is_valid() && lod == 0) {
ma->update_instance_count(-RS->multimesh_get_instance_count(mm)); ma->update_instance_count(-RS->multimesh_get_instance_count(mm));
} }
if (lod == Terrain3DMeshAsset::SHADOW_LOD_ID) { if (lod == Terrain3DMeshAsset::SHADOW_LOD_ID) {
@ -416,7 +416,7 @@ void Terrain3DInstancer::_destroy_mmi_by_cell(const Vector2i &p_region_loc, cons
RID &mmi = cell_mmi_dict[p_cell].first; RID &mmi = cell_mmi_dict[p_cell].first;
RID &mm = cell_mmi_dict[p_cell].second; RID &mm = cell_mmi_dict[p_cell].second;
if (ma.is_valid() && mm.is_valid()) { if (ma.is_valid() && mm.is_valid()) {
if (lod == ma->get_last_lod()) { if (lod == 0) {
ma->update_instance_count(-RS->multimesh_get_instance_count(mm)); ma->update_instance_count(-RS->multimesh_get_instance_count(mm));
} }
} }