Automatically update the editor viewport when 3D scaling options are changed

This allows for previewing the effects of the various 3D scaling
project settings without having to restart the editor.
This commit is contained in:
Hugo Locurcio 2022-06-19 01:05:17 +02:00
parent 4366f8bcd4
commit 2651e88b05
No known key found for this signature in database
GPG Key ID: 39E8F8BE30B0A49C
2 changed files with 16 additions and 4 deletions

View File

@ -2412,6 +2412,18 @@ void Node3DEditorViewport::_project_settings_changed() {
const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels"); const float mesh_lod_threshold = GLOBAL_GET("rendering/mesh_lod/lod_change/threshold_pixels");
viewport->set_mesh_lod_threshold(mesh_lod_threshold); viewport->set_mesh_lod_threshold(mesh_lod_threshold);
const Viewport::Scaling3DMode scaling_3d_mode = Viewport::Scaling3DMode(int(GLOBAL_GET("rendering/scaling_3d/mode")));
viewport->set_scaling_3d_mode(scaling_3d_mode);
const float scaling_3d_scale = GLOBAL_GET("rendering/scaling_3d/scale");
viewport->set_scaling_3d_scale(scaling_3d_scale);
const float fsr_sharpness = GLOBAL_GET("rendering/scaling_3d/fsr_sharpness");
viewport->set_fsr_sharpness(fsr_sharpness);
const float fsr_mipmap_bias = GLOBAL_GET("rendering/scaling_3d/fsr_mipmap_bias");
viewport->set_fsr_mipmap_bias(fsr_mipmap_bias);
} }
void Node3DEditorViewport::_notification(int p_what) { void Node3DEditorViewport::_notification(int p_what) {

View File

@ -2934,10 +2934,10 @@ void RenderingServer::init() {
ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/amount", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01")); ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/amount", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/amount", PROPERTY_HINT_RANGE, "0.01,4.0,0.01"));
ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/limit", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01")); ProjectSettings::get_singleton()->set_custom_property_info("rendering/anti_aliasing/screen_space_roughness_limiter/limit", PropertyInfo(Variant::FLOAT, "rendering/anti_aliasing/screen_space_roughness_limiter/limit", PROPERTY_HINT_RANGE, "0.01,1.0,0.01"));
GLOBAL_DEF_RST("rendering/scaling_3d/mode", 0); GLOBAL_DEF("rendering/scaling_3d/mode", 0);
GLOBAL_DEF_RST("rendering/scaling_3d/scale", 1.0); GLOBAL_DEF("rendering/scaling_3d/scale", 1.0);
GLOBAL_DEF_RST("rendering/scaling_3d/fsr_sharpness", 0.2f); GLOBAL_DEF("rendering/scaling_3d/fsr_sharpness", 0.2f);
GLOBAL_DEF_RST("rendering/scaling_3d/fsr_mipmap_bias", 0.0f); GLOBAL_DEF("rendering/scaling_3d/fsr_mipmap_bias", 0.0f);
ProjectSettings::get_singleton()->set_custom_property_info("rendering/scaling_3d/mode", ProjectSettings::get_singleton()->set_custom_property_info("rendering/scaling_3d/mode",
PropertyInfo(Variant::INT, PropertyInfo(Variant::INT,
"rendering/scaling_3d/mode", "rendering/scaling_3d/mode",