Jump to content

VR headsets (HTC Vive Pro 2, Varjo XR-3) render resolutions


photo

Recommended Posts

Posted

Hi,

Is there a way to know the current render resolution used with a VR headset, e.g. HTC Vive Pro 2 or Varjo XR-3?

It is not that simple to understand impact of:

  • SteamVR > settings > video > render resolution > custom with x%
  • ViveConsole > settings > display settings > manual with performance to extreme
  • VarjoBase > headset > resolution quality > manual with very low to highest

Also, is there a proper way to evaluate such render settings without VR activated?
E.g. render_virtual_resolution set to 2x or 4x the render per eye?

Regards,
Charles

Posted

Hi Charles,

SteamVR/Varjo and other VR runtimes usually provide our renderer with final resolution we should render with, so changing render resolution% in either of the runtimes causes our renderer to use a bit different resolution than HMD is designed with, meaning higher or lower visual fidelity depending on the scaling chosen in the UI.
 

To get current VR render resolution you can use VR::getHMDResolution(VR::VIEWPORT_TYPE_CONTEXT) and VR::VIEWPORT_TYPE_FOCUS for Varjo XR-3 when using Peripherial Rendering mode in order to get resolution of focus viewports.

I am assuming you want to evaluate overall scene performance?
render_virtual_resolution doesn't affect VR rendering at the moment but you can use render_vr_emulation instead which doesn't require VR since it's just an engine running it's stereo pair render logic with specific resolutions and with Fov of 110.
 

Hope this helps!

  • Thanks 1
  • 4 months later...
Posted

Hi,

Thanks for the indicaiton, we do have it now implemented.

render_vr_emulation could render in stereo.. but render_virtual_resolution could let us test any headset / settings eye resolution.. 
Right now, I simply double the native headset resolution..
e.g. HTC Vive Pro 2 (2448 x 2448 per eye) -> render_virtual_resolution 4896 2448
Is it correct? Better way to proceed?

Regards,
Charles

Posted

Hi,

Currently you can use render_supersampling to bump up the resolution that engine renders internally and it should work with VR Emulation modes.
In near future we want to extend VR Emulation mode with more HMDs and other options for VR emulation.
 

  • Thanks 1
Posted

Hi,

So that I understand correctly..

If I set render_vr_emulation 2 -> stereo with HTC Vive Pro resolution 2016x2240.

Whereas native resolutions:
- HTC Vive Pro is 1440 x 1600 pixels per eye -> combined resolution of 2880 x 1600 pixels.. so why 2016x2240 with render_vr_emulation 2?
- HTC Vive Pro 2 is 2448 x 2448 pixels per eye -> combined resolution of 4896 x 2448 pixels
- Varjo XR-3 (peripheral area) is 2880 x 2720 pixels per eye -> combined resolution of 5760 x 2720 pixels

To simulate a Varjo XR-3, you propose to use:
- render_vr_emulation 2
- render_supersampling 1.735 (2880*2720/(2016*2240))

Is it right?

Regards,
Charles

Posted
Quote

If I set render_vr_emulation 2 -> stereo with HTC Vive Pro resolution 2016x2240.

Because of the lens wrapping HTC Vive Pro resolution needs to be set to 2016x2240, later after post processing it becomes smaller.

Quote

To simulate a Varjo XR-3, you propose to use:
- render_vr_emulation 2
- render_supersampling 1.735 (2880*2720/(2016*2240))

Yes, something like that. However, there will be always overhead regarding the HMD runtime and driver, so it's anyways will require to test in real HMD :)

Thanks!

  • Thanks 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

  • 3 months later...
Posted

Hi,

I try to use render_vr_emulation but I get a crash.
Tested with VR sample demo.. started with stereo3D disabled from SDK browser.
Here is the call stack with null ptr "vp"

image.thumb.png.661912e3ad7a2a429c5dffe54d24f254.png

Would you reproduce the issue?

Regards,
Charles

Posted

Hi Charles,

Yes, this issue is related to multithreaded rendering. You can still use vr_emulation, but you'll need to disable render_multithreaded, which may result in some performance loss.

The good news is that this bug is scheduled to be fixed in the upcoming 2.20 release.

Thanks!

  • Like 1

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Posted

Hi,

Thanks for explenation.

I confirm that it is not currently usuable since monothreaded rendering drops the pefr from 130 to.. 90.

Nice to see it will be fixed in 2.20.. any release perspective just for info?

Regards,
Charles

Posted

Hi,

Another question, this time regarding Varjo XR-3 headset with dual displays per eye..
- LCD peripheral 2880 x 2720 pixels per eye (30 PPD)
- uOLED focus 1920 x 1920 pixels per eye (70 PPD)

SteamVR -> settings supersampling simply ignored

VarjoBase -> simple rendering, vertical sync deactivated, changing resolution quality:
- very high (35 PPD) -> HMD context 1660 x 1420 / focus 1076 x 1076
- ultra high (39 PPD) -> HMD context 2192 x 1880 / focus 1200 x 1200
.. with code VR::getHMDResolution(VR::VIEWPORT_TYPE_CONTEXT) and VR::getHMDResolution(VR::VIEWPORT_TYPE_FOCUS)
(It is indeed the resolution mentionned in small in VarjoBase..)

So, can you help (again) to understand a bit these resolutions?
How many pixels? Still 4 pictures despite simple rendering option? Or 2 only and VR::VIEWPORT_TYPE_FOCUS should be ignored?
How can we (plan to) emulate it?
- render_vr_emulation 2
- render_supersampling 1.735 (2880*2720/(2016*2240)) -> 2880*2720 is only the native peripheral res, none of the one displayed (e.g. 2192 x 1880)

Regards,

 

Posted

Hi Charles,

You can determine if you have 4 or 2 viewports by using isUsingFoveatedRendering it will return 4 when engine renders 4 viewports and 2 when only context viewports are rendered.
Also render_supersampling is used for context viewports and render_supersampling * render_stereo_focus_supersampling is used for focus viewports.

Hope this helps.

×
×
  • Create New...