diff --git a/src/experimental/filament/filament/filament_context.cc b/src/experimental/filament/filament/filament_context.cc index e02defb9..844d3cf1 100644 --- a/src/experimental/filament/filament/filament_context.cc +++ b/src/experimental/filament/filament/filament_context.cc @@ -40,6 +40,7 @@ #include "experimental/filament/filament/gui_view.h" #include "experimental/filament/filament/imgui_editor.h" #include "experimental/filament/filament/object_manager.h" +#include "experimental/filament/filament/model_util.h" #include "experimental/filament/filament/scene_view.h" #include "experimental/filament/filament/texture_util.h" #include "experimental/filament/render_context_filament.h" @@ -91,30 +92,29 @@ FilamentContext::FilamentContext(const mjrFilamentConfig* config, filament::Renderer::ClearOptions opts; opts.clear = true; opts.discard = true; - opts.clearColor = {0, 0, 0, 1}; + opts.clearColor = ReadElement(model_, "filament.clearColor", + filament::math::float4(0, 0, 0, 1)); renderer_->setClearOptions(opts); // Copy parameters from model to context. - if (model_) { - context_->shadowClip = model_->stat.extent * model_->vis.map.shadowclip; - context_->shadowScale = model_->vis.map.shadowscale; - context_->offWidth = model_->vis.global.offwidth; - context_->offHeight = model_->vis.global.offheight; - context_->offSamples = model_->vis.quality.offsamples; - context_->fogStart = - (float)(model_->stat.extent * model_->vis.map.fogstart); - context_->fogEnd = (float)(model_->stat.extent * model_->vis.map.fogend); - context_->fogRGBA[0] = model_->vis.rgba.fog[0]; - context_->fogRGBA[1] = model_->vis.rgba.fog[1]; - context_->fogRGBA[2] = model_->vis.rgba.fog[2]; - context_->fogRGBA[3] = model_->vis.rgba.fog[3]; - context_->lineWidth = model_->vis.global.linewidth; - context_->shadowSize = model_->vis.quality.shadowsize; - context_->readPixelFormat = 0x1907; // 0x1907 = GL_RGB; - context_->ntexture = model_->ntex; - for (int i = 0; i < model_->ntex; ++i) { - context_->textureType[i] = model_->tex_type[i]; - } + context_->shadowClip = model_->stat.extent * model_->vis.map.shadowclip; + context_->shadowScale = model_->vis.map.shadowscale; + context_->offWidth = model_->vis.global.offwidth; + context_->offHeight = model_->vis.global.offheight; + context_->offSamples = model_->vis.quality.offsamples; + context_->fogStart = + (float)(model_->stat.extent * model_->vis.map.fogstart); + context_->fogEnd = (float)(model_->stat.extent * model_->vis.map.fogend); + context_->fogRGBA[0] = model_->vis.rgba.fog[0]; + context_->fogRGBA[1] = model_->vis.rgba.fog[1]; + context_->fogRGBA[2] = model_->vis.rgba.fog[2]; + context_->fogRGBA[3] = model_->vis.rgba.fog[3]; + context_->lineWidth = model_->vis.global.linewidth; + context_->shadowSize = model_->vis.quality.shadowsize; + context_->readPixelFormat = 0x1907; // 0x1907 = GL_RGB; + context_->ntexture = model_->ntex; + for (int i = 0; i < model_->ntex; ++i) { + context_->textureType[i] = model_->tex_type[i]; } scene_view_ = std::make_unique(engine_, object_manager_.get());