Read the clear color from the model if available

PiperOrigin-RevId: 875079722
Change-Id: Id5a9c359d19f46d1c0bb5fbf5043db0ee4b1b9b6
This commit is contained in:
Matija Kecman
2026-02-25 04:08:31 -08:00
committed by Copybara-Service
parent 84205f7dd0
commit 253494739a
@@ -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<SceneView>(engine_, object_manager_.get());