Skip to content

Commit 2d6cd5a

Browse files
authored
Added an editor setting to change reflection probe scale (#584)
1 parent 3ab747a commit 2d6cd5a

6 files changed

Lines changed: 16 additions & 4 deletions

File tree

Sources/Overload/OvEditor/include/OvEditor/Settings/EditorSettings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ namespace OvEditor::Settings
9090
inline static Property<bool> EditorFrustumLightCulling = { true };
9191
inline static Property<bool> DebugFrustumCulling = { false };
9292
inline static Property<float> LightBillboardScale = { 0.5f };
93+
inline static Property<float> ReflectionProbeScale = { 0.5f };
9394
inline static Property<float> TranslationSnapUnit = { 1.0f };
9495
inline static Property<float> RotationSnapUnit = { 15.0f };
9596
inline static Property<float> ScalingSnapUnit = { 1.0f };

Sources/Overload/OvEditor/src/OvEditor/Panels/MenuBar.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ void OvEditor::Panels::MenuBar::InitializeSettingsMenu()
155155
auto& lightBillboardScaleSlider = sceneViewBillboardScaleMenu.CreateWidget<Sliders::SliderInt>(0, 100, static_cast<int>(Settings::EditorSettings::LightBillboardScale * 100.0f), OvUI::Widgets::Sliders::ESliderOrientation::HORIZONTAL, "Lights");
156156
lightBillboardScaleSlider.ValueChangedEvent += [this](int p_value) { Settings::EditorSettings::LightBillboardScale = p_value / 100.0f; };
157157
lightBillboardScaleSlider.format = "%d %%";
158+
auto& reflectionProbesScaleSlider = sceneViewBillboardScaleMenu.CreateWidget<Sliders::SliderInt>(0, 100, static_cast<int>(Settings::EditorSettings::ReflectionProbeScale * 100.0f), OvUI::Widgets::Sliders::ESliderOrientation::HORIZONTAL, "Reflection Probes");
159+
reflectionProbesScaleSlider.ValueChangedEvent += [this](int p_value) { Settings::EditorSettings::ReflectionProbeScale = p_value / 100.0f; };
160+
reflectionProbesScaleSlider.format = "%d %%";
158161

159162
auto& snappingMenu = m_settingsMenu->CreateWidget<MenuList>("Snapping");
160163
snappingMenu.CreateWidget<Drags::DragFloat>(0.001f, 999999.0f, Settings::EditorSettings::TranslationSnapUnit, 0.05f, "Translation Unit").ValueChangedEvent += [this](float p_value) { Settings::EditorSettings::TranslationSnapUnit = p_value; };

Sources/Overload/OvEditor/src/OvEditor/Rendering/DebugSceneRenderer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ class DebugReflectionProbesRenderPass : public OvRendering::Core::ARenderPass
228228
CalculateUnscaledModelMatrix(actor),
229229
reflectionProbe->GetCapturePosition()
230230
),
231-
{ 0.5f, 0.5f, 0.5f }
231+
OvMaths::FVector3::One * OvEditor::Settings::EditorSettings::ReflectionProbeScale
232232
);
233233

234234
reflectionRenderFeature.PrepareProbe(*reflectionProbe);

Sources/Overload/OvEditor/src/OvEditor/Rendering/OutlineRenderFeature.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,9 @@ void OvEditor::Rendering::OutlineRenderFeature::DrawActorToStencil(OvRendering::
109109
reflectionProbeComponent->GetCapturePosition()
110110
);
111111
const auto rotation = OvMaths::FQuaternion::ToMatrix4(p_actor.transform.GetWorldRotation());
112-
const auto scale = OvMaths::FMatrix4::Scaling({ 0.5f, 0.5f, 0.5f });
112+
const auto scale = OvMaths::FMatrix4::Scaling(
113+
OvMaths::FVector3::One * OvEditor::Settings::EditorSettings::ReflectionProbeScale
114+
);
113115
const auto model = translation * rotation * scale;
114116
DrawModelToStencil(p_pso, model, *EDITOR_CONTEXT(editorResources)->GetModel("Sphere"));
115117
}
@@ -158,7 +160,9 @@ void OvEditor::Rendering::OutlineRenderFeature::DrawActorOutline(
158160
reflectionProbeComponent->GetCapturePosition()
159161
);
160162
const auto rotation = OvMaths::FQuaternion::ToMatrix4(p_actor.transform.GetWorldRotation());
161-
const auto scale = OvMaths::FMatrix4::Scaling({ 0.5f, 0.5f, 0.5f });
163+
const auto scale = OvMaths::FMatrix4::Scaling(
164+
OvMaths::FVector3::One * OvEditor::Settings::EditorSettings::ReflectionProbeScale
165+
);
162166
const auto model = translation * rotation * scale;
163167
DrawModelOutline(p_pso, model, *EDITOR_CONTEXT(editorResources)->GetModel("Sphere"), p_color);
164168
}

Sources/Overload/OvEditor/src/OvEditor/Rendering/PickingRenderPass.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,9 @@ void OvEditor::Rendering::PickingRenderPass::DrawPickableReflectionProbes(OvRend
233233
reflectionProbe->GetCapturePosition()
234234
);
235235
const auto rotation = OvMaths::FQuaternion::ToMatrix4(actor.transform.GetWorldRotation());
236-
const auto scaling = OvMaths::FMatrix4::Scaling({ 0.5f, 0.5f, 0.5f });
236+
const auto scaling = OvMaths::FMatrix4::Scaling(
237+
OvMaths::FVector3::One * OvEditor::Settings::EditorSettings::ReflectionProbeScale
238+
);
237239
auto modelMatrix = translation * rotation * scaling;
238240

239241
m_renderer.GetFeature<DebugModelRenderFeature>()

Sources/Overload/OvEditor/src/OvEditor/Settings/EditorSettings.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ void OvEditor::Settings::EditorSettings::Save()
3939
iniFile.Add("editor_frustum_geometry_culling", EditorFrustumGeometryCulling.Get());
4040
iniFile.Add("editor_frustum_light_culling", EditorFrustumLightCulling.Get());
4141
iniFile.Add("light_billboard_scale", LightBillboardScale.Get());
42+
iniFile.Add("reflection_probe_scale", ReflectionProbeScale.Get());
4243
iniFile.Add("translation_snap_unit", TranslationSnapUnit.Get());
4344
iniFile.Add("rotation_snap_unit", RotationSnapUnit.Get());
4445
iniFile.Add("scaling_snap_unit", ScalingSnapUnit.Get());
@@ -56,6 +57,7 @@ void OvEditor::Settings::EditorSettings::Load()
5657
LoadIniEntry<bool>(iniFile, "show_geometry_frustum_culling_in_scene_view", EditorFrustumGeometryCulling);
5758
LoadIniEntry<bool>(iniFile, "show_light_frustum_culling_in_scene_view", EditorFrustumLightCulling);
5859
LoadIniEntry<float>(iniFile, "light_billboard_scale", LightBillboardScale);
60+
LoadIniEntry<float>(iniFile, "reflection_probe_scale", ReflectionProbeScale);
5961
LoadIniEntry<float>(iniFile, "translation_snap_unit", TranslationSnapUnit);
6062
LoadIniEntry<float>(iniFile, "rotation_snap_unit", RotationSnapUnit);
6163
LoadIniEntry<float>(iniFile, "scaling_snap_unit", ScalingSnapUnit);

0 commit comments

Comments
 (0)