diff --git a/src/experimental/filament/filament/scene_view.cc b/src/experimental/filament/filament/scene_view.cc index 35911dc6..a954f6da 100644 --- a/src/experimental/filament/filament/scene_view.cc +++ b/src/experimental/filament/filament/scene_view.cc @@ -327,8 +327,10 @@ void SceneView::PrepareLights() { SetFallbackEnvironmentLight(kFallbackEnvironmentLightIntensityCandela); const float intensity = kTotalSceneLightIntensityCandela / lights_.size(); for (auto& light : lights_) { - light->SetIntensity(light->IsHeadlight() ? kHeadlightIntensityCandela - : intensity); + if (light) { + light->SetIntensity(light->IsHeadlight() ? kHeadlightIntensityCandela + : intensity); + } } } } @@ -381,9 +383,11 @@ void SceneView::UpdateScene(const mjrContext* context, const mjvScene* scene) { continue; } else if (scene_light.id < lights_.size() - 1) { std::unique_ptr& light = lights_[scene_light.id]; - light->SetColor(ReadFloat3(scene_light.diffuse)); - light->SetTransform(ReadFloat3(scene_light.pos), - ReadFloat3(scene_light.dir)); + if (light) { + light->SetColor(ReadFloat3(scene_light.diffuse)); + light->SetTransform(ReadFloat3(scene_light.pos), + ReadFloat3(scene_light.dir)); + } } else { mju_error("Unexpected light id: %d", scene_light.id); }