Optimize Scene Rendering (cache drawable bounds and layers for culling with less cache misses)

This commit is contained in:
Wojtek Figat
2021-06-28 22:04:25 +02:00
parent e61ebaa71b
commit d7332509f7
26 changed files with 335 additions and 130 deletions

View File

@@ -31,9 +31,15 @@ MaterialInstance* ModelInstanceActor::CreateAndSetVirtualMaterialInstance(int32
return result;
}
void ModelInstanceActor::OnLayerChanged()
{
if (_sceneRenderingKey != -1)
GetSceneRendering()->UpdateGeometry(this, _sceneRenderingKey);
}
void ModelInstanceActor::OnEnable()
{
GetSceneRendering()->AddGeometry(this);
_sceneRenderingKey = GetSceneRendering()->AddGeometry(this);
// Base
Actor::OnEnable();
@@ -41,7 +47,7 @@ void ModelInstanceActor::OnEnable()
void ModelInstanceActor::OnDisable()
{
GetSceneRendering()->RemoveGeometry(this);
GetSceneRendering()->RemoveGeometry(this, _sceneRenderingKey);
// Base
Actor::OnDisable();