From 035e905a3eea78f873322ad18eaea695a5590c37 Mon Sep 17 00:00:00 2001 From: Bastiaan Olij Date: Sat, 13 Apr 2024 07:16:23 +1000 Subject: [PATCH] XR demos: Add check for VRS/foveation in start vr script, and enable foveation in project settings (#1022) Co-authored-by: Aaron Franke --- xr/openxr_character_centric_movement/.gitattributes | 2 -- xr/openxr_character_centric_movement/.gitignore | 3 --- xr/openxr_character_centric_movement/README.md | 2 +- xr/openxr_character_centric_movement/project.godot | 2 ++ xr/openxr_character_centric_movement/start_vr.gd | 6 ++++++ xr/openxr_origin_centric_movement/.gitattributes | 2 -- xr/openxr_origin_centric_movement/.gitignore | 3 --- xr/openxr_origin_centric_movement/README.md | 2 +- xr/openxr_origin_centric_movement/project.godot | 2 ++ xr/openxr_origin_centric_movement/start_vr.gd | 6 ++++++ 10 files changed, 18 insertions(+), 12 deletions(-) delete mode 100644 xr/openxr_character_centric_movement/.gitattributes delete mode 100644 xr/openxr_origin_centric_movement/.gitattributes diff --git a/xr/openxr_character_centric_movement/.gitattributes b/xr/openxr_character_centric_movement/.gitattributes deleted file mode 100644 index 8ad74f78..00000000 --- a/xr/openxr_character_centric_movement/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Normalize EOL for all files that Git considers text files. -* text=auto eol=lf diff --git a/xr/openxr_character_centric_movement/.gitignore b/xr/openxr_character_centric_movement/.gitignore index 0fc7efc9..43d618f6 100644 --- a/xr/openxr_character_centric_movement/.gitignore +++ b/xr/openxr_character_centric_movement/.gitignore @@ -1,5 +1,2 @@ -# Godot 4+ specific ignores -.godot/ - # Ignore our Android build folder, should be installed by user if needed android/ diff --git a/xr/openxr_character_centric_movement/README.md b/xr/openxr_character_centric_movement/README.md index 1679f7fb..546e4973 100644 --- a/xr/openxr_character_centric_movement/README.md +++ b/xr/openxr_character_centric_movement/README.md @@ -5,7 +5,7 @@ This is based on the [Character body centric solution as explained in the room s Language: GDScript -Renderer: compatibility +Renderer: Compatibility ## How does it work? diff --git a/xr/openxr_character_centric_movement/project.godot b/xr/openxr_character_centric_movement/project.godot index d02de0a4..c54914be 100644 --- a/xr/openxr_character_centric_movement/project.godot +++ b/xr/openxr_character_centric_movement/project.godot @@ -24,4 +24,6 @@ textures/vram_compression/import_etc2_astc=true [xr] openxr/enabled=true +openxr/foveation_level=3 +openxr/foveation_dynamic=true shaders/enabled=true diff --git a/xr/openxr_character_centric_movement/start_vr.gd b/xr/openxr_character_centric_movement/start_vr.gd index 56977c99..0fbb2ebe 100644 --- a/xr/openxr_character_centric_movement/start_vr.gd +++ b/xr/openxr_character_centric_movement/start_vr.gd @@ -23,6 +23,12 @@ func _ready(): # Make sure v-sync is off, v-sync is handled by OpenXR DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + # Enable VRS + if RenderingServer.get_rendering_device(): + vp.vrs_mode = Viewport.VRS_XR + elif int(ProjectSettings.get_setting("xr/openxr/foveation_level")) == 0: + push_warning("OpenXR: Recommend setting Foveation level to High in Project Settings") + # Connect the OpenXR events xr_interface.session_begun.connect(_on_openxr_session_begun) xr_interface.session_visible.connect(_on_openxr_visible_state) diff --git a/xr/openxr_origin_centric_movement/.gitattributes b/xr/openxr_origin_centric_movement/.gitattributes deleted file mode 100644 index 8ad74f78..00000000 --- a/xr/openxr_origin_centric_movement/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# Normalize EOL for all files that Git considers text files. -* text=auto eol=lf diff --git a/xr/openxr_origin_centric_movement/.gitignore b/xr/openxr_origin_centric_movement/.gitignore index 0fc7efc9..43d618f6 100644 --- a/xr/openxr_origin_centric_movement/.gitignore +++ b/xr/openxr_origin_centric_movement/.gitignore @@ -1,5 +1,2 @@ -# Godot 4+ specific ignores -.godot/ - # Ignore our Android build folder, should be installed by user if needed android/ diff --git a/xr/openxr_origin_centric_movement/README.md b/xr/openxr_origin_centric_movement/README.md index 5896fc23..33c604bb 100644 --- a/xr/openxr_origin_centric_movement/README.md +++ b/xr/openxr_origin_centric_movement/README.md @@ -5,7 +5,7 @@ This is based on the [Origin centric solution as explained in the room scale man Language: GDScript -Renderer: compatibility +Renderer: Compatibility ## How does it work? diff --git a/xr/openxr_origin_centric_movement/project.godot b/xr/openxr_origin_centric_movement/project.godot index 4ce7810f..e2ff76a5 100644 --- a/xr/openxr_origin_centric_movement/project.godot +++ b/xr/openxr_origin_centric_movement/project.godot @@ -24,4 +24,6 @@ textures/vram_compression/import_etc2_astc=true [xr] openxr/enabled=true +openxr/foveation_level=3 +openxr/foveation_dynamic=true shaders/enabled=true diff --git a/xr/openxr_origin_centric_movement/start_vr.gd b/xr/openxr_origin_centric_movement/start_vr.gd index 56977c99..0fbb2ebe 100644 --- a/xr/openxr_origin_centric_movement/start_vr.gd +++ b/xr/openxr_origin_centric_movement/start_vr.gd @@ -23,6 +23,12 @@ func _ready(): # Make sure v-sync is off, v-sync is handled by OpenXR DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + # Enable VRS + if RenderingServer.get_rendering_device(): + vp.vrs_mode = Viewport.VRS_XR + elif int(ProjectSettings.get_setting("xr/openxr/foveation_level")) == 0: + push_warning("OpenXR: Recommend setting Foveation level to High in Project Settings") + # Connect the OpenXR events xr_interface.session_begun.connect(_on_openxr_session_begun) xr_interface.session_visible.connect(_on_openxr_visible_state)