Jump to content

Change SteamVR resolution for the application


photo

Recommended Posts

Posted

Здравствуйте!

Могу ли я в коде или настройках своего проекта изменить разрешение, которое выставляется в SteamVR для скомпилированного приложений (SyeamVR -> Настройки -> Изображение -> Настройки видео для приложения). Т.к. по умолчанию выставляется разрешение больше, чем поддерживает шлем и на которое рассчитано приложение и, как следствие, частота кадров падает в 2 раза. Например, для теста из редактора выставлено 2000 на 2364 и тут все работает стабильно хорошо, но для готового проекта выставляется 3432 на 4052 и вот тут уже начинаются сильные просадки по FPS и изменение этого параметра непосредственно влияет на частоту кадров. Но вот изменение разрешения для STEAMVR HOME не влияет на производительность домашней сцены. Попробовал добавить следующие параметры в файл  unigine_projec_VRt_2.exe.lconfig:

"-openvr_render_width",
"2880",
"-openvr_render_height",
"1600"

Но это не помогло.

Screenshot_3.jpg

Screenshot_4.jpg

Screenshot_5.jpg

Posted

Добрый день!

22 hours ago, sityrax said:

Например, для теста из редактора выставлено 2000 на 2364 и тут все работает стабильно хорошо

Не могли бы вы уточнить, каким именно способом выставляется указанное разрешение в редакторе? Также, укажите, пожалуйста, какое используется оборудование?

Кроме того, обратите внимание, что параметры openvr_render_width и openvr_render_height задаются для одного глаза, как указано в нашей документации:

Quote

openvr_render_width and openvr_render_height - set a resolution for each eye. The default resolution for one eye is set equal to recommended value by SteamVR.

Спасибо!

Posted (edited)
8 hours ago, bmyagkov said:

Не могли бы вы уточнить, каким именно способом выставляется указанное разрешение в редакторе? 

Не знаю как именно оно выставилось, но допускаю, что сделал это сам напрямую в SteamVR некоторое время назад.

8 hours ago, bmyagkov said:

Также, укажите, пожалуйста, какое используется оборудование?

HTC Vive Cosmos Elite.

8 hours ago, bmyagkov said:

Кроме того, обратите внимание, что параметры openvr_render_width и openvr_render_height задаются для одного глаза, как указано в нашей

Попробовал выставить разрешение 1440x1700 через параметры -openvr_render_width и -openvr_render_height. Но на итоговое разрешение в SteamVR и на производительность это не влияет.

Edited by sityrax
Posted
On 1/17/2025 at 5:53 PM, sityrax said:

Не знаю как именно оно выставилось, но допускаю, что сделал это сам напрямую в SteamVR некоторое время назад.

On 1/16/2025 at 3:57 PM, sityrax said:

Например, для теста из редактора выставлено 2000 на 2364 и тут все работает стабильно хорошо

Не могли бы вы прикрепить скриншот, на котором будут видны параметры, с которыми вы запускаете проект из редактора? Хотелось бы увидеть не только разрешение, но и общую картину настроек для случая, когда приложение запускается с необходимыми параметрами и ожидаемой производительностью.

Спасибо!

Posted

Уточню, что в редакторе я нашел где выставляется разрешение только для окна приложения, а оно на разрешение в самом шлеме не влияет. 

Скриншот настроек в SteamVR для отладки из редактора я отправлял выше:

Screenshot_3.jpg

Здесь параметр "Пользовательский множитель разрешения" установлен в оптимальное для моего приложения значение и задержка между кадрами составляет около 9 мс. Но для готового приложения (скриншот в первом сообщении для UNIGINE_PROJEC_VRT_2_X64) SteamVR думает, что мне лучше поставить разрешение 3432 на 4052, при котором задержка составляет 25-30 мс. Т.е. если я вручную изменю это разрешение и перезапущу проект, то мое приложение будет работать так же как и при отладке из редактора. Но откуда взялось разрешение 3432 на 4052 и почему параметры -openvr_render_width и -openvr_render_height на разрешение в VR ни в файле редактора launch_debug.bat, ни в файле скомпилированного проекта unigine_projec_VRt_2.exe.lconfig не влияют?

Вот как выглядят настройки раздела "Изображение" в SteamVR:

image.png.6dcdcec6492bd319c6893305c99c0251.png

Вот как указаны параметры в файле unigine_projec_VRt_2.exe.lconfig:

         ..."params": [
                {
                    "items": [
                        {
                            "text": "Disabled"
                        },
                        {
                            "arguments": [
                                "-extern_plugin",
                                "UnigineOpenVR",
								"-openvr_render_width",
                                "1440",
                                "-openvr_render_height",
                                "1600"
                            ],
                            "text": "OpenVR"
                        }
                    ],
                    "label": "VR Mode",
                    "type": "Choice",
                    "value": 1
                },...

И как выглядит файл launch_debug.bat:

@echo off
chcp 65001
setlocal EnableDelayedExpansion
set app=bin\unigine_projec_VRt_2_x64d.dll
$(ADDITIONAL_PATH)
start "" dotnet "%app%" -video_app auto -video_refresh 0 -video_debug 0 -main_window_size 1920 1080 -openvr_render_width 1440 -openvr_render_height 1600 -main_window_resizable 1 -main_window_fullscreen 0 -render_vsync 0 -video_offscreen 0 -sound_app auto -data_path ../data/ -extern_plugin UnigineFbxImporter,UnigineGLTFImporter,UnigineFbxExporter,UnigineOpenVR -console_command "config_autosave 0 && world_load \"unigine_projec_VRt_2\""

 

Posted
1 hour ago, sityrax said:

SteamVR думает, что мне лучше поставить разрешение 3432 на 4052

Действительно, интересно, откуда берется указанное разрешение. Можно ли воспроизвести вашу проблему на чистом проекте, созданном из SDK Browser?

Posted
3 hours ago, bmyagkov said:

Действительно, интересно, откуда берется указанное разрешение. Можно ли воспроизвести вашу проблему на чистом проекте, созданном из SDK Browser?

Да. Попробовал сейчас создать новый проект и собрать его. Так же добавил параметры  -openvr_render_width 1440 и -openvr_render_height 1600. Правда теперь SteamVR решил выставить значение немного ниже: 3408 на 4024 против 3432 на 4052 в предыдущем случае. Нашел информацию, что SteamVR должен выставлять разрешение в 140% не смотря на указанные 100% от фактического для компенсации падения разрешения в центральных частях изображений в дисплеях шлема, после их растяжения, которое в свою очередь нужно для компенсации искажений от линз. Во вкладке "Изображение", если переключить "Разрешение рендеринга" в значение: "Польз." и переключится на уровень 100% разрешение оказывается 2820 на 3332, что не соответствует 140% от 1440 на 1600:

image.png.e0f4b2220d78563a3c6317fe05317192.png

Screenshot_3.jpg

×
×
  • Create New...