Jump to content


Photo

Pixel Density / SuperSampling at SteamVR, OculusTrayTool and OculusDebugTool


  • Please log in to reply
4 replies to this topic

#1 chiliwili69

chiliwili69
  • Founder
  • Posts: 532
  • Location:Spain

Posted 02 August 2017 - 22:42

In no-VR context, "Pixel Density" is a parameter that tell us how many pixels are in an physical length of an image, commonly expressed in pixels per inch or PPI on regular monitors. I realy don´t know why the Oculus guys chose the "Pixel Density" (PD) term to refers to Super-Sampling(SS), but I think was a very unfortunate name that really mislead many of us. (even more knowing that there is another term "Pixels per eye angle" in VR-context)
Therefore, in Oculus VR-context, PD is simply SS, which is rendering at higher resolution before being downsampled. It's essentially just a very brute force way of rendering a higher quality image, producing a cleaner image than other antialiasing methods but with a much more significant impact on performance.
 
In VR with Rift, apart from the GPU panel settings, there are three ways to specify the SS:
 
1.- Oculus Debug Tool. Located at C:\Program Files\Oculus\Support\oculus-diagnostics\OculusDebugTool.exe. The SS parameter is called "Pixels Per Display Pixel Override". This value is the "PixelsPerDisplayPixel"
 
2.- Oculus Tray Tool. It is an external app you can donwload from https://www.reddit.c...ulus_tray_tool/  . The parameter is called SuperSampling (since it is really SS). This value is the "PixelsPerDisplayPixel".
OTT_supersampling.jpg
 
3.- SteamVR. In the Settings, go to Developer and you will see a SuperSampling slide bar from 0.8 to 2.4. This value is the "RenderTargetMultiplier".
SS settings.png
 
You are able to set PixelsPerDisplayPixel and RenderTargetMultiplier at the same time, but normally you should touch one or the other, but no both.
Initially I used OTT, but lately prefers SteamVR. I use the SteamVR version 1492726420 released Apr-21-2017.
 
I have been doing a number of testing changing the SS in SteamVR from 0.8 to 2.4.
At the same time, I launch the "Oculus Mirror" tool (Located at C:\Program Files\Oculus\Support\oculus-diagnostics) which displays what you actually see in the Rift. You have a number of options (described at https://developer.oc...positor-mirror/ ) but the useful for my test is that it will tell me the actual horizontal and vertical pixels of the render. Tip: To display this info you have to enable the "Visible HUD: Layer" in the Oculus Debug Tool.
You will see something like that:
Oculus mirror.jpg
 
The total rift physical display resolution is 2160x1200, but at default setting (SS=1.0) the scene is rendered at 2688x1600 since for the Rift FOV you need to supersample the scene to correct the distorsion introduced for the lense. (Don´t ask me too much about this)
With SS=1.4, the reported PD in the Oculus Mirror is 1.41 and the rendered resolution is 3764x2240 which is 8.4 million of pixels (a bit more than 4K). And remember that you want to run this at 90fps. That´s why SS affects severely the fps performance. Therefore, setting SS higher than 1.4 will require top CPU&GPU or to put BoS graphics setting to LOW.
The SS number is just a multiplier of the eye buffers, the following table shows the tests:
SS multiplier and total pixels.png
 
Be aware that there is a separated SteamVR Beta, where I think they have changed the meaning of the SS parameter in a way that it is not equal to the reported PD. But I don´t use the SteamVR Beta, so I can not comment on that.
 
CONCLUSION: if you use normal SteamVR, the SS parameter is identical to the parameter used in ODT and OTT. Just a multiplier of the default Rift render resolution (not physical display resolution).
 
Edit 4th August 2017:
The above conclusion is valid only for old version of SteamVR. Versions of SteamVR of July-2017 (and probably earlier) uses a "Linear SS". This is value between 0.6 to 5.0, in the same way used in the SteamVR Beta.
So PD="Old SS" and "Linear SS"="Old SS"^2
New SS multiplier and total pixels.png
In the picture below the "Linear SS" is set to 1.7, which is almost equivalent to PD=1.3
steamVRbeta_17.jpg
 
 
 
 

Edited by chiliwili69, 03 August 2017 - 23:11.

  • 1

i7 4790K @4.9 GHz; NZXT Kraken X-52 Liquid cooling; 16Gb 4x4 DDR3 2933 MHz Corsair Dominator Platinum; MSI Z97M-Gaming (micro-ATX MoBo in ATX case); Gigabyte G1 Nvidia GTX 1070; 240Gb SSD + 1TB HD; Windows 10 64 bits; Acer XB280HK 28" G-Sync 3840x2160; HOTAS Warthog + 10cm Sahaj extension; Slaw peddals; PlaySeat Revolution; Oculus Rift DK1&DK2&CV1 and Pimax 8K pre-ordered; Only playing in VR


#2 =TBAS=Tripwire

=TBAS=Tripwire
  • Founder
  • Posts: 768
  • Location:Perth, Australia

Posted 03 August 2017 - 01:24

Be aware that there is a separated SteamVR Beta, where I think they have changed the meaning of the SS parameter in a way that it is not equal to the reported PD. But I don´t use the SteamVR Beta, so I can not comment on that.

 

This reddit post explains the differences introduced in the scaling.

https://www.reddit.c...ear_scaling_of/

 

 

Playing around with the new SteamVR beta and definitely noticed something was up with supersampling.

RTFM

  • Supersample slider now behaves linearly where 2.0 now means 2.0 times the number of pixels. Previously the slider was applied as a multiplier to width and height, so 2.0 used to mean (2.0 times 2.0 = 4.0) 4.0 the number of pixels. Existing settings will automatically be converted to the new linear scale.

So under the previous approach, 1.3x SS would have equated to:

(1512x1.3) x (1680x1.3) = 4,292,870 pixels per eye

 

1.3x SS would now result in:

(1512x1680)x1.3 = 3,302,208 pixels per eye

 

If you now wanted to achieve the same quality as 1.3x under the previous method, you would now need:

((1512x1.3)x(1680x1.3))/(1512x1680) = 1.69.

 

I've done the numbers and came up with the ready reckoner below. Feel free to double check the arithmetic, have had a few beers.

 

Old = New

  • 1.1 = 1.21
  • 1.2 = 1.44
  • 1.3 = 1.69
  • 1.4 = 1.96
  • 1.5 = 2.25
  • 1.6 = 2.56
  • 1.7 = 2.89
  • 1.8 = 3.24
  • 1.9 = 3.61
  • 2.0 = 4.0

Edited by =TBAS=Tripwire, 03 August 2017 - 01:27.

  • 1

i7-7700k @ 4.8 | 16GB RAM | GTX1080ti | M2 SSD | TrackIR4 | HTC Vive | MSFFB2 + Joytokey | MFG Crosswind Pedals


#3 chiliwili69

chiliwili69
  • Founder
  • Posts: 532
  • Location:Spain

Posted 03 August 2017 - 07:36

Thanks Tripwire, it clarifies everything.

 

It is just the square of the old value.

If SS is the "normal" SteamVR and SSB is the new SteamVR Beta, we have SSB=SS^2

 

That´s why the limits of the slide bar in the "normal" SteamVR are from 0.8 to 2.4, and in the new SteamVR Beta they are from 0.6 to 5.0.

Completing the above table:

Old = New

0.8 = 0.64

0.9 = 0.81

1.0 = 1.0

1.1 = 1.21

... 

2.0 = 4.0

2.1 = 4.41

2.2 = 4.84

2.3 = 5.29

2.4 = 5.76

 

Since the max value in the new SteamVR Beta is 5.0, the last two values will not be able to reproduce it in the Beta.

 

Conclusion: PD=SS=SQRT(SSB)


  • 1

i7 4790K @4.9 GHz; NZXT Kraken X-52 Liquid cooling; 16Gb 4x4 DDR3 2933 MHz Corsair Dominator Platinum; MSI Z97M-Gaming (micro-ATX MoBo in ATX case); Gigabyte G1 Nvidia GTX 1070; 240Gb SSD + 1TB HD; Windows 10 64 bits; Acer XB280HK 28" G-Sync 3840x2160; HOTAS Warthog + 10cm Sahaj extension; Slaw peddals; PlaySeat Revolution; Oculus Rift DK1&DK2&CV1 and Pimax 8K pre-ordered; Only playing in VR


#4 TG-55Panthercules

TG-55Panthercules
  • Founder
  • Posts: 1018

Posted 03 August 2017 - 21:37

That´s why the limits of the slide bar in the "normal" SteamVR are from 0.8 to 2.4, and in the new SteamVR Beta they are from 0.6 to 5.0.

 

 

How can you know whether you're running the beta or not?  I tried to install the normal and not the beta version, and the help/about screen doesn't say anything about being beta. but the SS slider in mine goes from 0.6 to 5.0.  (Help/about says I'm running version 1499136050 built Jul 3, 2017 at 22:40).


Edited by TG-55Panthercules, 03 August 2017 - 21:42.

  • 1
Intel Core i7-7700K @ 5.0 GHz (Corsair H75 liquid cooler); 16GB RAM (Corsair Vengeance DDR4 3200MHz)
EVGA GTX 1080 TI SC2, 11 GB; ASUS ROG Maximus IX Code MB; Realtek ROG SupremeFX audio
Windows 10 Pro 64-bit; Oculus Rift (CV1); Logitech Force 3D Pro; Saitek Rudder Pedals and Throttle Quadrants

#5 chiliwili69

chiliwili69
  • Founder
  • Posts: 532
  • Location:Spain

Posted 03 August 2017 - 22:58

How can you know whether you're running the beta or not?  I tried to install the normal and not the beta version, and the help/about screen doesn't say anything about being beta. but the SS slider in mine goes from 0.6 to 5.0.  (Help/about says I'm running version 1499136050 built Jul 3, 2017 at 22:40).

 

Yes, I was going to put another post here to clarify exactly what you are asking.

 

You know if you run the Beta by the name of the application. Mine is "StreamVR" so it is the main branch application. If your application is named "SteamVR Beta" than is the Beta.

Also you can know that by the version of the application. If it begins by 149xxxx it is the main one. If it begins by 150xxxx then it is the Beta.

 

This afternoon I have also updated my "SteamVR" application to the last one (version 1499136050) and realised that they have also changed the SS value to linear values  (ie between 0.6 and 5.0).

 

My usual SS before was 1.3, so from now I will use 1.7 which is the equivalent.

 

I will update the first post to avoid confusions.

 

Using a "linear SS" seem to have more sense because you have an numerical idea of the extra effort that you are demanding to the CPU-GPU


  • 1

i7 4790K @4.9 GHz; NZXT Kraken X-52 Liquid cooling; 16Gb 4x4 DDR3 2933 MHz Corsair Dominator Platinum; MSI Z97M-Gaming (micro-ATX MoBo in ATX case); Gigabyte G1 Nvidia GTX 1070; 240Gb SSD + 1TB HD; Windows 10 64 bits; Acer XB280HK 28" G-Sync 3840x2160; HOTAS Warthog + 10cm Sahaj extension; Slaw peddals; PlaySeat Revolution; Oculus Rift DK1&DK2&CV1 and Pimax 8K pre-ordered; Only playing in VR





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users