diff --git a/scripts/debug/debugger.gd b/scripts/debug/debugger.gd index cd20ffb..a82ef02 100644 --- a/scripts/debug/debugger.gd +++ b/scripts/debug/debugger.gd @@ -283,6 +283,11 @@ func _on_control_draw() -> void: _label3_text = "" _append_text("fps", Engine.get_frames_per_second() as int, 0) + _append_text( + "resolution", + Vector2i(get_viewport().size * get_viewport().scaling_3d_scale as Vector2), + 0 + ) if mode == Mode.PERFORMANCE: _set_label_texts() diff --git a/scripts/globals/settings.gd b/scripts/globals/settings.gd index 2bf388f..e631a5f 100644 --- a/scripts/globals/settings.gd +++ b/scripts/globals/settings.gd @@ -1,5 +1,7 @@ extends Node +enum AntiAliasingMode { DISABLED, FXAA, MSAA_2X, MSAA_4X, MSAA_8X, TAA, FSR2, SSAA } + const SETTING_USAGE_FLAG := PROPERTY_USAGE_SCRIPT_VARIABLE | PROPERTY_USAGE_EDITOR const CONFIG_PATH := "user://settings.cfg" @@ -46,6 +48,32 @@ const CONFIG_PATH := "user://settings.cfg" max_fps = value @export_subgroup("Quality") +@export var antialiasing: AntiAliasingMode = AntiAliasingMode.MSAA_4X: + set(value): + get_viewport().use_taa = false + get_viewport().msaa_3d = Viewport.MSAA_DISABLED + get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_DISABLED + + match value: + AntiAliasingMode.TAA: + get_viewport().use_taa = true + AntiAliasingMode.MSAA_2X: + get_viewport().msaa_3d = Viewport.MSAA_2X + AntiAliasingMode.MSAA_4X: + get_viewport().msaa_3d = Viewport.MSAA_4X + AntiAliasingMode.MSAA_8X: + get_viewport().msaa_3d = Viewport.MSAA_8X + AntiAliasingMode.FXAA: + get_viewport().screen_space_aa = Viewport.SCREEN_SPACE_AA_FXAA + AntiAliasingMode.FSR2: + filtering = Viewport.SCALING_3D_MODE_FSR2 + resolution_scale = 1 + AntiAliasingMode.SSAA: + filtering = Viewport.SCALING_3D_MODE_BILINEAR + resolution_scale = 2 + + antialiasing = value + @export var resolution_scale: float = 1: set(value): get_viewport().scaling_3d_scale = value