Use bulbradius as the vsm_blur_width as well.

PiperOrigin-RevId: 937286692
Change-Id: I03502da45951f90979b8f8d58915c80656a5eac7
This commit is contained in:
Haroon Qureshi
2026-06-24 05:59:39 -07:00
committed by Copybara-Service
parent 38956ed95c
commit 3d09a46d61
2 changed files with 3 additions and 4 deletions
+3 -3
View File
@@ -78,8 +78,6 @@ LightManager::LightManager(mjrfContext* ctx, mjrfScene* scene,
const mjModel* model = model_objects->GetModel();
default_shadow_map_size_ = ReadElement(
model, "filament.shadows.map_size", default_shadow_map_size_);
default_vsm_blur_width_ = ReadElement(
model, "filament.shadows.vsm_blur_width", default_vsm_blur_width_);
fallback_head_light_intensity_ =
ReadElement(model, "filament.fallback.head_light_intensity",
fallback_head_light_intensity_);
@@ -129,11 +127,13 @@ void LightManager::Prepare() {
params.color[2] = model->light_diffuse[2];
params.type = (mjtLightType)model->light_type[i];
params.cast_shadows = model->light_castshadow[i];
// The bulb_radius is only used by DPCF or PCSS shadows. For VSM shadows,
// we use light_bulbradius to control the blur width.
params.bulb_radius = model->light_bulbradius[i];
params.vsm_blur_width = model->light_bulbradius[i];
params.range = model->light_range[i];
params.intensity = model->light_intensity[i];
params.shadow_map_size = default_shadow_map_size_;
params.vsm_blur_width = default_vsm_blur_width_;
if (params.type == mjLIGHT_SPOT) {
params.spot_cone_angle = model->light_cutoff[i];
}
@@ -51,7 +51,6 @@ class LightManager {
UniquePtr<mjrfTexture> fallback_ibl_texture_{nullptr, nullptr};
std::vector<UniquePtr<mjrfLight>> lights_;
int default_shadow_map_size_ = 2048;
float default_vsm_blur_width_ = 0.0f;
float fallback_head_light_intensity_ = 0.f;
float fallback_scene_light_intensity_ = 80'000.f;
float fallback_environment_light_intensity_ = 5'000.f;