Set MMI AABB, not MM AABB, for shadow imposter

This commit is contained in:
aidandavey 2025-11-05 18:31:22 +00:00
parent e2073d5639
commit f98a34691c
1 changed files with 4 additions and 5 deletions

View File

@ -265,7 +265,7 @@ void Terrain3DInstancer::_update_mmi_by_region(const Terrain3DRegion *p_region,
CellMMIDict &cell_mmi_dict = mesh_mmi_dict[mesh_key];
RID &mmi = cell_mmi_dict[cell].first;
RID &mm = cell_mmi_dict[cell].second;
if (mm.is_valid()) {
if (mm.is_valid() && mmi.is_valid()) {
if (lod == 0) {
mm_custom_aabb = RS->multimesh_get_aabb(mm);
} else {
@ -277,10 +277,9 @@ void Terrain3DInstancer::_update_mmi_by_region(const Terrain3DRegion *p_region,
if (ma->get_shadow_impostor() > 0) {
Vector2i mesh_key(p_mesh_id, Terrain3DMeshAsset::SHADOW_LOD_ID);
CellMMIDict &cell_mmi_dict = mesh_mmi_dict[mesh_key];
//RID &mmi = cell_mmi_dict[cell].first;
RID &mm = cell_mmi_dict[cell].second;
if (mm.is_valid()) {
RS->multimesh_set_custom_aabb(mm, mm_custom_aabb);
RID &mmi = cell_mmi_dict[cell].first;
if (mmi.is_valid()) {
RS->instance_set_custom_aabb(mmi, mm_custom_aabb);
}
}
}