Maximum Steam VR resolution vs HMD resolution

I’ve been wondering if there’s any way to calculate what is the maximum Steam VR resolution that still improves the image? I have removed SVR limits, but at some point raising resolution does not improve image, even makes it worse, maybe? I remember back in a day with CV1, consensus was that going above 1.8ppd was pointless. Anyone came up with similar math for Pimax (no PP, full FOV).

I wonder what are your opinions on this topic? Is there a way to calculate optimal SS value in relation to panel resolution? Cheers!

5 Likes

This is an excellent question.

4 Likes

It’s a tricky one because of the optics, but still, there should be rough mathematical solution to this :slight_smile: There are many folks smarter than me here, looking forward to their inputs.

1 Like

I think it is a good idea to invite @SweViver to this topic :slightly_smiling_face:

2 Likes

@mirage335 surely has some pointers…? :wink:

I believe he mentioned 2400 vertical pixels on the 8KX in native mode with Pimax Rendering Quality at 1.25 and SteamVR SS at whatever is needed to hit that resolution.

Not sure about other headsets but he also has a 5K+ and must have an idea about that too.

4 Likes

Just empirical data, but make of it what you will:

I recently increased PiTool rendering quality to 1.75 from 1.25 and decreased SteamVR SS from 100% to 52%. This kept the effectively reported total resolution at pretty much the same level, the perceived image quality within the 8KX, however, was markedly improved.

With the lack of actual insight into how PiTool works in combination with SteamVR it is impossible to give defintive answers beyond actually tinkering yourself, trial and error.

8 Likes

For my eyes changes above 3250p verticaly are not visible in most simulators I playing with 8kx. But I still see some improvment in BigScreen app.

3 Likes

@twack3r, @Yata_PL - could you share the recommended SVR resolution you get with your settings?

2 Likes

Thanks for raising this question again.

Is there anybody in the pimax world who knows how to set Pitool rendering and SteamVR SS the best way ??

Considering the same SteamVR resolution, is it better to get Pitool the highest, or the lowest ?

We can here so much different things here and there…

And those testings are quite exhaustive.

Would be really helpful to get an answer for good

Sure, here its is:

2 Likes

And would you say, that going above this does no longer improve the image? That’s the core of my question - where is the limit?

1 Like

I think it’s absolutely clear that using a larger PiTool multiplier and a smaller SteamVR SS (1.75*0,52 > 1.25 * 1) setting is always preferred. Some edge cases might apply for titles requiring parallel projection.

What has been asked since the dawn of time is for Pimax themselves to a) explain the rendering pipeline using the interatcion between PiTool compositor and SteamVR as well as b) provide some best practice recommendations based on that.

The reason they still haven’t done this plus the fact that consecutive PiTool iterations in part completely changed best practices compared to previous versions leads me to believe that they are approaching this by trial and error as well.

8 Likes

That is really difficult to answer tbh.

In the extreme there definitely is a diminishing marginal return on what is effectively downsampling, as has always been the case. But not only does this now depend on native panel resolution and the displayed content but also actual physical perception.

So in theory, given perfect eyesight and a physiognomy perfectly suited to Pimax’s geometric distortion profile, there should be a ‘best case’ resolution offering the highest visual fidelity at an acceptbale compute cost.

As it stands, at least afaik, we are left with ‘keep PiTool as high as possible and adjust SteamVR SS until you get an acceptable result given your computing budget’.

4 Likes

Best way is to use something like Elite Dangerous, where the high contrast really shows even the smallest differences in removing haze or sharpening the edges of text. VirtualDesktop, with bright white text on black background, works too.

  • Oculus CV1 - Significant/noticeable beyond 3x TotalSR . Possible benefit up to 4x TotalSR.
  • Pimax 5k+ - Stops significantly/noticeably improving beyond 2.5x TotalSR.
  • Pimax Vision 8kX - Significant/noticeable up to at least 1.75x TotalSR, probably 2.25x TotalSR. Practically anything above 1.5x TotalSR is not worthwhile, and 1.4x TotalSR is usually a good compromise with top-end hardware being capable of that.

Obviously, there is somewhat of a downward trend, hinting at both limits of supersampling and optical/lens limits.

TotalSR - again I am referring to the total amount of vertical pixels rendered, divided by the native vertical resolution of the headset.

PPD? With that 1.8 number, I think 1.8x TotalSR is what you are actually referring to.

Anyway, at the time I bought an Oculus CV1, with a GTX 1080, I also thought 1.8x TotalSR was past the point of diminishing returns. Such thinking probably had more to do with the limitations of the GPU hardware at the time. Later I went back with my RTX 2080 Ti. With the ability to render a decent framerate and very high resolutions, I found very noticeable differences up to >3x TotalSR as mentioned above. It is really not possible to judge whether resolution is still improving when the framerate is not smooth.

Extremely high supersampling, and especially image sharpening filters, also tend to strongly bring out pixel walk (or at least RGB subpixel) artifacts, which are rather strong with the Pimax 5k+.

4 Likes

hit the fps limit!! whith your hardware.

Very helpful, thanks! Just to doublecheck - this is from your own experementation, or is there any mathematical/graphics rendering explanation why image improvement stops?

1 Like

While I have not worked it up to a solid mathematical proof, I strongly suspect a few interacting limits.

  • Nyquist frequency/rate limit of sorts. From 2x TotalSR to 3x TotalSR, with already 2x whole rendered pixels per display vertical pixel, why should there be any difference at all? My strong suspicion is this is due to a combination of 3D texture render mapping, anti-aliasing, blur filtering, all combining some small amplitudes from ‘neighboring’ pixels. Keeping in mind of course anti-aliasing is a very helpful technique, these ‘artifacts’ combined with a bit more supersampling could prove worthwhile even when contrasted with a mathematically ‘ideal’ rendering pipeline. In any case, a 10x TotalSR is going to have so little amplitude going to any adjacent pixels, there will not be a 10x improvement. After all, a single LED per eye, is going to be rather uninteresting, no matter how many rendered pixels are behind it.
  • Geometry/Texture limit. Especially with text, close to 20/20 human vision, at reasonable projected distance, the resolution of the source material becomes comparable to the display resolution. This explains why the ‘haze’ in Elite Dangerous VR, as well as games like PavlovVR, largely disappears in the Pimax Vision 8kX, is tolerable in the Pimax 5k+, but is absolutely awful in the original Vive (or the Oculus CV1 which was the same with an added diffuser).
  • Diffraction limit, both from VR lens and human eye lens. Optical blur is becoming obvious in the Pimax Vision 8kX. Some from the Fresnel lenses having limited performance, some not.
  • Exit pupil mismatch. Subtle but very important. As the eyes move side to side, the pupils have moved very significantly out of alignment with the lens ‘sweet spot’. I try not to notice, but this causes the center of the displays to become blurry when looking even slightly toward the edges. Another noticeable side effect is the reflection of the eyes in the VR lenses changes.
3 Likes

There are three things which come to play (with regards to the final image quality):

a) optics
b) rendered resolution
c) image transformation (pre-lens warp)

ad a) As long as you can set up the headset in a way that you can see individual pixels (or display pixel matrix) you are fine, for what concerns the lenses.

ad b) The rendered resolution determines how much information can potentially end up on the display and it also determines how good it can be. In other words, if the app renders resolution (X, Y), the final image can only go up to this resolution (information wise, not pixel wise), no matter what happens in between.

ad c) There are not so many ways how to transform the rendered image at resolution (X, Y), to display image at res (W, Z), because there is only one transformation which is (mathematically) correct, if you want to have the final image look right (when observed through the lenses).

So theoretically, there should not be any difference in the perceived image quality (in the headset), rendered at the same resolution. However there are recurring reports from people who claim that setting “unbalanced” PiTool Render Quality and SteamVR supersampling gives better results (in terms of image quality), even though the rendering resolution remains the same.

How is that possible?

The only explanation (I found plausible) is the one given by @Gared here (https://community.openmr.ai/t/best-quality-settings-for-steamvr-ive-found/22614/34).

This would mean that Pimax warping function (which is basically non-linear sampling function) does work better on the higher res images. In other words, it probably uses not very good sampling algorithm (so it needs higher res, to achieve better results).

I guess only Pimax knows how good/bad their algorithm is, but the truth is, there seems to be enough evidence that @Gared was right, and you need to factor that into your settings.

So far I have not answered (not even touched) the original question :slight_smile:, so here it goes. In general (not talking about VR now, but the normal 2D image), there is certain limit where increasing supersampling does not improve the overall quality. My guts feeling is that it is about 2.0x (by dimension), or 4.0x (by pixel count = what SteamVR uses), where something like 2.0x (by pixel count) can already improve things. The same (assuming you are not limited by lenses) applies to VR headset except, that the same idea about some supersampling “limit” applies not to the pixel res, but to the PPD.

You need to know the PPD (pixel per degree) density the headset can display (which is an analogy to the regular monitor res in 2D world) and then get rendered image resolution which would relate to that PPD (as the rendered res can also be characterized by pixel per degree - in this case rendered). Because the PPD of the headset is not linear and the most important part is the center of view, you would want rendered PPD in the center to match (or oversample) the headset PPD in the center.

So theoretically, if you know the PPD of the headset in the center, you can calculate the rendering resolutions for the particular “oversampling” factor (in the view center). The thing to keep in mind is that the “oversampling” factor I wrote about above is something completely different from SteamVR SS, or PiTool RQ, because it applies to angular density. The question is if it is worth an effort :wink:.

7 Likes

First time I have heard a plausible alternative explanation for the blur that results from PiTool Render Quality <=1.0 . That said, I still find blur filtering more plausible, as I saw the same type and degree of blurring in non-Pimax headsets.

2 Likes

question of how Pitool’s multiplier impacts quality indeed is a very elusive one :slight_smile: But your post made me wonder about the following - what if we exclude HMD/VR and just focus on 2D screen. Same question I raised applies (at certain point, raising supersampling does no longer help). But you partially answered that, thanks :slight_smile:

2 Likes