From d712a83c691bc4342a61944948634f2d98f20a6c Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 31 Aug 2022 19:40:13 +0200 Subject: [PATCH] Fix invisible static model if model is loaded but not yet streamed --- Source/Engine/Level/Actors/StaticModel.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Level/Actors/StaticModel.cpp b/Source/Engine/Level/Actors/StaticModel.cpp index f5d9b68c2..26eb1fc44 100644 --- a/Source/Engine/Level/Actors/StaticModel.cpp +++ b/Source/Engine/Level/Actors/StaticModel.cpp @@ -520,9 +520,19 @@ void StaticModel::OnTransformChanged() void StaticModel::OnEnable() { - if (_scene && _sceneRenderingKey == -1 && !_residencyChangedModel && Model && Model->IsLoaded() && Model->GetLoadedLODs() != 0) + // If model is set and loaded but we still don't have residency registered do it here (eg. model is streaming LODs right now) + if (_scene && _sceneRenderingKey == -1 && !_residencyChangedModel && Model && Model->IsLoaded()) { - GetSceneRendering()->AddActor(this, _sceneRenderingKey); + // Register for rendering but once the model has any LOD loaded + if (Model->GetLoadedLODs() == 0) + { + _residencyChangedModel = Model; + _residencyChangedModel->ResidencyChanged.Bind(this); + } + else + { + GetSceneRendering()->AddActor(this, _sceneRenderingKey); + } } // Skip ModelInstanceActor (add to SceneRendering manually)