sityrax Posted January 16, 2025 Posted January 16, 2025 Здравствуйте! Могу ли я в коде или настройках своего проекта изменить разрешение, которое выставляется в SteamVR для скомпилированного приложений (SyeamVR -> Настройки -> Изображение -> Настройки видео для приложения). Т.к. по умолчанию выставляется разрешение больше, чем поддерживает шлем и на которое рассчитано приложение и, как следствие, частота кадров падает в 2 раза. Например, для теста из редактора выставлено 2000 на 2364 и тут все работает стабильно хорошо, но для готового проекта выставляется 3432 на 4052 и вот тут уже начинаются сильные просадки по FPS и изменение этого параметра непосредственно влияет на частоту кадров. Но вот изменение разрешения для STEAMVR HOME не влияет на производительность домашней сцены. Попробовал добавить следующие параметры в файл unigine_projec_VRt_2.exe.lconfig: "-openvr_render_width", "2880", "-openvr_render_height", "1600" Но это не помогло.
bmyagkov Posted January 17, 2025 Posted January 17, 2025 Добрый день! 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. Спасибо!
sityrax Posted January 17, 2025 Author Posted January 17, 2025 (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 January 17, 2025 by sityrax
bmyagkov Posted January 20, 2025 Posted January 20, 2025 On 1/17/2025 at 5:53 PM, sityrax said: Не знаю как именно оно выставилось, но допускаю, что сделал это сам напрямую в SteamVR некоторое время назад. On 1/16/2025 at 3:57 PM, sityrax said: Например, для теста из редактора выставлено 2000 на 2364 и тут все работает стабильно хорошо Не могли бы вы прикрепить скриншот, на котором будут видны параметры, с которыми вы запускаете проект из редактора? Хотелось бы увидеть не только разрешение, но и общую картину настроек для случая, когда приложение запускается с необходимыми параметрами и ожидаемой производительностью. Спасибо!
sityrax Posted January 20, 2025 Author Posted January 20, 2025 Уточню, что в редакторе я нашел где выставляется разрешение только для окна приложения, а оно на разрешение в самом шлеме не влияет. Скриншот настроек в SteamVR для отладки из редактора я отправлял выше: Здесь параметр "Пользовательский множитель разрешения" установлен в оптимальное для моего приложения значение и задержка между кадрами составляет около 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: Вот как указаны параметры в файле 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\""
bmyagkov Posted January 20, 2025 Posted January 20, 2025 1 hour ago, sityrax said: SteamVR думает, что мне лучше поставить разрешение 3432 на 4052 Действительно, интересно, откуда берется указанное разрешение. Можно ли воспроизвести вашу проблему на чистом проекте, созданном из SDK Browser?
sityrax Posted January 20, 2025 Author Posted January 20, 2025 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:
Recommended Posts