New to VR and Pimax. Lost and confused

I’m new to VR but not 3D / stereoscopic vision as I’m a die-hard user of Nvidia 3D Vision on 3x screen setup (mostly for racing games). I just Just got a Pimax 5K Super with the plan to get a 12K when it comes out. I’m having a VERY DIFFICULT time figuring out how VR works in general with all the “middle-man” programs.

  1. First off, I’m confused on the resolution. There’s the resolution in-game, the resolution in Pi-Tool then there’s the resolution in Steam VR. What is all this? 3 different resolutions that somehow all work at the same time? What is going on???

  2. Just for now, I want to run a game - let’s use rFactor 2 (RF2) for this particular example - at native resolution settings for my headset’s screens which are 2560x1440 each on the 5K Super. The problem is, RF2’s settings are not detecting the VR headset, instead, they’re detecting my monitor and the resolutions and refresh rates are going by my monitor (Samsung Odyssey G7), not my headset. So the max res and refresh rate it shows in-game is 2560x1440 and 240 Hz. How do I set the game to the proper resolution and refresh rate for the headset?

  3. I set Pi-Tool resolution to 1.0 which, I’m assuming, means native (2560x1440 / eye). However, when I do the same in SteamVR - I set it to 100% - the resolution it shows is 2560 x 2104. So that means SteamVR is going to be messing with the resolution and aspect ratio? I just want to run everything in Native res for now to keep things simple and to avoid image scaling, potential distortions, etc.

  4. I have Pi-Tool and SteamVR set to 90 Hz but RF2 set to 240 Hz. How is that possible?

  5. Pi-Tool and SteamVR are both fairly centred in my VR view but RF2 is on the right-side. So I have to turn my head sharply to the right in order to look straight in the VR world in the game. Why is this happening? How do I fix this?

  6. How does the FOV work? Do games automatically detect the VR headset and the FOV I’m using and then auto-adjust the game’s FOV for that particular headset & FOV setting in order to achieve a 1:1 scale with real-life view? I want to make sure I’m using the “proper” 1:1 FOV setting. With regular monitors, this is easy because you can use a FOV calculator where you plug in the size of your screen, how far away your eyes are from it, etc. Then the calculator will tell you exactly what to set the game’s FOV so that it achieves a 1:1 scale size with real life. How can I be sure this is set correctly with my game in VR? Doesn’t the game need to know A. the VR headset being used and B. the FOV the headset is using in order for the game’s graphics to set the correct in-game FOV for me???

I’m so lost. 3 days now I’ve been messing around and am still completely lost. Sometimes i feel like I should just quit VR, get a refund, and go back to 3D Vision on triple 27" monitors…

1 Like

VR works very differently than a monitor with resolution. To drive the full resolution of a VR headset you need to actually render higher than the headset’s resolution as it needs to be generated in such a way that offsets the distortion and unfolding when presenting the imagine onto the display to go through the lenses (I’m really reducing the complexity of this here and not explaining it accurately whatsoever, just for the sake of brevity).

Personally, I just set 1 in pitool and control the resolution from the steam overlay to adjust for performance. That’s not the ideal way to do it but I find it the handiest way to do it. If a game runs particularly well then I will set it to 1.25x in Pitool and 100% in steam overlay.

Anyway, don’t worry about the resolution too much in VR. What’s more important is that you have a solid FPS, once you have that locked down then you can worry about the resolution. Although try not to focus on numbers too much, just be mindful of your experience, if it looks clear or blurry to you in game is the main thing to consider.

I’m saying this but I would never actually take my own advice. I am constantly tweaking the settings and paying attention to the numbers but that’s because I’m simultaneously smart enough to know I should but dumb enough to not listen to my own advice.

FOV is set entirely within Pitool and games have no control over it. Forget about resolution numbers etc in the traditional way you’re used to. All you should think of resolution in VR is “how clear is the image and how taxing is it on my PC to produce”. Aspect ratio is not something you will ever need to consider in a practical way like you would with a traditional monitor.

What you need to do is find the FOV and refresh rate that works well for your personal perference and performance capabilities. Personally, as a 5KS user, I think 120hz with normal FOV is the sweetspot.

I would recommend just doing this:

Set FOV to normal, refresh rate to 120, Render resolution to 1.0, foveated rendering to normal (or whatever the middle setting is called).

Ignore in game settings like resolution or refresh rate, they typically do nothing in VR and are just hold overs from the non-VR version. (Not always but most of the time). The only settings you should worry about is traditional graphical ones like shadows, msaa, bloom, yadda yadda.

Once you got your settings locked in then the only thing you really should need to do is when you boot a new game consider 2 things:

If the game looks unholy messed up, like weird double images, or things popping in and out in your periphery, then turn on “Parralel projections” in pitool and restart steam VR and the game. This will fix those issues BUT you want it turned off unless it’s necessary as there’s a performance impact (I believe 15-20% with normal FOV).

The only other setting then is to just doodle about with the resolution in steam VR overlay if you’re finding it hard to get a steady FPS because the game is demanding. Then also just the usual graphical setting adjustments to get the optimal settings.

Feel free to shoot me any questions, I know this was a messy info dump ha. It’s a great headset though and doesn’t take long to get to grips with it.

One you got you

2 Likes

Whoa, where to begin…

When VR support is written into a game, it retreives all needed specifications from the VR runtime: FOV (camera frustum matrices for each eye), resolution, refresh rate, etc, bypassing any related game graphics settings that may remain in the game for use with a monitor – they do not matter.

“Native resolution” works a little differently with VR, because there is a whole host of factors which complicate the matter, beginning with the HMD lenses, which distort the image, compressing things seen through it toward its centre. This means the effective observed resolution is higher in the middle of the frame, than it is out in the periphery - not at all uniform across the frame (the full explanation is a little bit more complicated).

Usually, this central, and highest pixel density, part of the view is argueably the most important, and we want to make use of its effective resolution by rendering at least roughly one pixel for each screen pixel there, which means a higher rendered resolution overall – unfortunately rasterisation, as it is generally done, does not support variable resolution across the frame, so the same higher resolution has to be rendered for the entire image, even where it is essentially wasted on a part of the view where the display panel can not reproduce it. For many VR HMD lenses this rendered resolution increase amounts to about 1.4 times the width and height of the frame, over the display panel’s absolute resolution in pixel count.

Generally it is more useful to think of resolution in terms of Pixels Per Degree, than any other unit of measure, when talking VR.

PiTool is “only” Pimax’s settings GUI for their own driver and VR runtime: piserver.exe. Games can be written to directly interface with piserver, but very few are, so it can also appear as a headset driver to SteamVR (…or “OpenVR”, as its runtime and API is called (“SteamVR” is really more the extended parts of it, which ties in with the Steam services- and online store platform), which already has a lot of “legacy” game support.

(For the future, the relatively new: “OpenXR”, will supplant the proprietary APIs that have gone before it, such as those from Oculus, Valve, and Microsoft. That is not to say there will only be one VR runtime: All the VR runtimes from those three can already be addressed using the OpenXR API, as an alternative to their own, older and deprecated ones.)

The game speaks with OpenVR (SteamVR), which speaks with piserver, which has the HMD hardware access.

Some functions of OpenVR are not used, but deferred to equivalent functions in piserver; This includes e.g. the counter-distortion, which compensates in software for the optical distortion of the lens, and the production of extrapolated “fake” frames, whenever the game can not deliver real ones fast enough to keep up with the HMD refresh rate.

When you start SteamVR, it gets the HMD specs from piserver - all that resolution and FOV, and refresh rate stuff. These will be values for these after they have been modified by any settings you may have chosen in PiTool. Hence the need to restart SteamVR, if you change anyting major in PiTool.

…so 1.0, or 2.0, or whatever resolution in PiTool, determines what 100% is in SteamVR. SteamVR can then apply its own modifiers on those base values, before passing them on to the game.
Resolution is given to the game as a: “recommended resolution”. The game is perfectly free to completely ignore this recommendation, and substitute its own, and some infamously do. SteamVR will accept any resolution the game hands it back.

Of note is that the values in PiTool factor size, so x2.0 is twice the width and twice the height, resulting in four times as many pixels, whereas the percentage in SteamVR factors area, so 200% is only the square root of two as many pixels; x2.0 in pitool is the same as 400% in SteamVR.

Different games handle play space differently…

The SteamVR dashboard pops up in front of you, in the direction you are currently looking, when you open it.

…but for the game, if it lacks its own “recenter” button, it may e.g. be set to assume forwards is always the forwards you got when you set up your physical playspace in SteamVR; This is the early stage, where you are asked to point at your monitor: Playspace Forwards is the opposite direction to that (…quantized to the orthogonality of the final rectangle that is fitted within the boundaries you map out in your room), so that you stand with your back to your computer, with the HMD cable usually draped down your back, and over to the graphics card connector.

The SteamVR dashboard has a recenter button bottom left – you may be able to use that, to one-shot recenter.

EDIT: Ninja’d. :7

2 Likes

The actual rendering resolution is controlled by a combination of the PiTool setting and the rendering resolution percentage in SteamVR. Think of these are being multiplied by each other to produce the actual width and height being rendered. I would generally recommend just leaving PiTool set at 1.0 and controlling resolution with SteamVR since that can alter the resolution in real time while PiTool resolution changes will require restart.

The rendering resolution width and height shown in SteamVR are the actual values being used.

Your game (rFactor 2) does not control the VR headset’s resolution. It’s showing values for your monitor. This is misleading and useless, but all too typical for flat games that have been retrofitted to support VR. VR support is often just hacked in and doesn’t really appear in the UI properly. And they may require you to go to your desktop to perform some functions and only go into VR mode once you’re actually on the track or whatever. I consider this kind of VR “support” to be terrible, and it sounds like it’s the primary reason for your confusion right now.

I highly recommend that you do not run a flat game that only has a hacky “VR mode” as your first VR game. Buy a real VR game and cut your teeth on that to become familiar with VR first.

There’s no such thing as rendering at native 1:1 resolution on a VR headset. This is a concept from conventional flat monitors that does not apply to VR. On a monitor, there is a distinct advantage to rendering at exactly 100% of the panel’s resolution. Not so for a VR headset. 99% works just as well as 100% or 101%.

What is considered 100% resolution on a VR headset is arbitrary and is usually set by the headset manufacturer to be oversampled above the physical panel resolution to produce roughly the same effect as 100% on a conventional monitor. Essentially this is the point where raising the rendering resolution higher will start producing diminishing returns. 100% is usually a good starting point.

What RF2 reports is BS. Ignore it. Again, this is why I suggest learning VR with real VR games first. They won’t have these kinds of problems. And it’s really helpful to be versed in VR prior to dealing with a flat game that has only hacked VR support in.

I’m not familiar with RF2 myself, but other racing games that have VR modes (like iRacing) let you assign a button to recenter your position in VR. So you hold your wheel and look directly forward and then push this button to straighten everything up and have you sitting at the right spot in the cockpit.

Incidentally, because your real world height comes into play when you’re using VR, now the ability to adjust your mirrors just like when you’re in a car RL matters. And different racing sims have varying levels of support for this.

Essentially all of the racing sims out there are flat games which have only grafted on VR modes at some point. And all of them, in my experience, are frustrating to get setup and use with VR. Don’t get me wrong, they’re great once you actually have VR working, and you’re on track. But each of them have totally substandard VR support, and their developers clearly consider it no sort of priority. It’s a pretty sad state of affairs considering how compelling VR is for these kinds of simulators.

In flight sims, it’s much the same except there is VTOL VR which is a true VR flight sim. And it’s the only one that exists so far.

FOV is controlled only from PiTool. If any game your playing has controls for FOV, these are for monitors only. They have no affect on VR.

Pimax headsets are unique as far as I know in having any control of FOV at all. Other headsets just always run at their max FOV. Pimax headsets have much wider FOV available, and so they have the option to reduce it if needed. This is done by simply not using the additional pixels at the farther edges.

Thank you. You’re all a big help in making me understand what’s going on here.

  • How much input lag (irrespective of framerate, or, assuming the same frame rate) does SteamVR add? I mean, normally as soon as a GPU/game is finished rendering a frame, the image gets sent to the monitor. Now though, if I understand correctly, after the GPU renders the image, it gets re-rendered (or upscaled/downscaled) by PiTool and SteamVR or at least just by SteamVR. That represents at least 1, if not 2, extra rendering processes which have to take place in-between when the original image was rendered and when the player actually sees it. Is that what is happening or does it work differently than that (since VR works differently than standard monitor rendering)?

  • I could have sworn my game, rFactor 2, was working fine with parallel projection disabled. After messing around with different refresh rates and FOVs, I now get the double image with PP disabled. I’ve also restarted PiTool, the headset, SteamVR. Has anyone ever had this happen? Or did I just have PP enabled without realizing it? Man, I could have sworn it was off.

  • Should I be doing the auto-SteamVR optimization thing every single time I change resolution, refresh rate, FOV in PiTool?

  • It seems every time I power the headset down / restart it, I have to re-run the room setup in both PiTool and SteamVR, it’s pretty annoying and inconvenient. Is this normal?

  • Every time I quit a game, I get thrown into the SteamVR world. It’s all black with some grid lines on the ground. I’m stuck there until I take my headset off (which I don’t want to do) and manually close SteamVR on my PC monitor’s desktop. Is there anyway to bypass this? It’s very inconvenient. I’d love it if I could be thrown back in Pitool - the one that’s visible in the headset; I do get auto-sent to this but only after closing the SteamVR world first.

Just for some extra info.

  • CPU: 12900KS 5.3 GHz all-core (e-cores disabled), cache 5.0 GHz
  • RAM: 32 GB (16 GB x 2) Samsung B-die dual-rank DDR4 @ 4200 MHz 16-16-16-32 w/ subtimings tuned
  • GPU: RTX 3090
  • VR controllers: none (ATM)
  • Basestations: none (ATM)
    95%+ of my VR use if for racing games (I have a cockpit with wheels, pedals, etc.) therefore 3 dimensions of movement I get without the basestations is just fine for me.
1 Like

This is intended and necessary for VR. There is no such thing as native resolution in VR. Generally if you have a 2000x1000 display you need to render at 2800x1400 (roughly) to achieve a balance for the pincusion/barrel distorition that is an inherent part of VR.

So if you want to get the most out of your display 2560x1440. You do in fact want to aim for 2560 x 2104. But this is can be a little misleading still at all it does is achieve the native resolution of your display AT the center. This matters of course, but YOU have to balance whether that’s important to you.

Going beyond 2560 x 2104 provides super-sampling
Going below means you wont see the best you HMD can offer.

Keep in mind that unlike with flat displays there’s not that WOW factor where the entire image looks more crisp when native resolution is used. There is no such thing as a native VR resolution, but rather an optimal resolution, below which you are not getting the most out of your HMD, above which may be wasted on super-sampling, where you may want to trade for performance.

Also important the distortion is very different with PP mode on vs. off
With PP mode ON you will see much larger SteamVR 100% resolution.

Acutal 8KX display resolution 2160 horizontal lines.
PP Off


PP On

This is primarily why you get poorer performance with the PP mode on.

But note that when PP mode is on the shape of the rendered area is VERY different

With PP Off the binocular shape is reasonable and grows linearly with the FOV.


With PP On the butterfly effect occurs.

Most importantly you may note ALOT more pixels are devoted to the edges, where the middle get fewer pixels per degree. With PP mode on you are rendering MORE PPD in the outer regions than in the center. It’s terrible.

Consider eliminating Steam VR as your home. It’s in the settings

Also Consider eliminating any home screen at all with

Further allowing you to play Non VR games without quietly eating at your resources while playing other games

FOV is calculated by Everything that OpenVR does (OpenXR in some instances).
You should not have to change your FOV if the game supports VR. There are exceptions in flat-to-VR conversion mods like VorpX. FOV also get misused as World Scale, which is a different factor that applies to how far apart each eye truly is in VR.

Just use 1.0 on Pitool. 100% in SteamVR, 1.0 Pixel density in game. If you MUST lower the resolution do so with the one you’ll always use such that you NEVER have one saying 0.5 while the other is 2.0 etc.
Note that SteamVR uses total pixels so Steam VR 200% = 1.414X anywhere else.

A lot of the challenge you’re having is because you don’t have controllers. For instance that void that SteamVR puts you in when you’re not in a game is actually functional if you have controllers.

Theoretically, controllers were supposed to be optional. But they aren’t really. Or at least you’re going to struggle without them (like you have been).

You’re also missing out on a lot of the VR experience and VR games without controllers.

This isn’t actually true. I did some testing around this, and the results were that it doesn’t matter how the rendering resolution is arrived at. The display quality is always the same at the same rendering resolution (height x width) no matter what combination of Pitool and SteamVR settings you use to get there.

I believe the interaction between these settings in Pitool and SteamVR is only being used to calculate the final width and height that will be used. It doesn’t appear to be going through two separate scaling steps (one scaling for Pitool and one scaling for SteamVR) in the actual rendering pipeline.

1 Like

What I meant to convey is stick with one thing to use as your control lever. Naturally going .5 on one and 2 on another is usually the same result (thats a peformance topic and not what Im referring to at all). What I dont want is for someone to inadvertently leave a per-game setting in steamVR and somewhere else on a different game, make their per game adjustment in pitool, then in another game have it set in the game as a pixel density. Thats a mess and Ive read too many posts where people cant figure out why their one game looks like crap vs another and they forgot they had changed it elsewhere in the settings. This becomes incredibly important when you start involving other scalers such as NIS, FSR DLSS etc.

Vives and Indexes have a button on the side of them, which serves to let you “click” on stuff in the SteamVR dashboard if no controller is present (you get a dot in the middle of the view, to gaze-point with).

Maybe an option could be added to PiTool, which lets you remap the p8k/5k volume buttons to such functionality…

One would like to spend some time playing as opposed to just shooting at the moving target that is graphics perfection so I settle for some basics for SS on my 5K+. ymmv

It is a daunting task setting visuals. You have multiple places you can adjust SS and key visuals. The game’s settings, In particular, GPU, SVR, Pitool and 3rd party tools like PimaxXR.
All of these update regularly and in that regard alone, I find how and where I change settings has evolved accordingly and like those other things remains fluid. Tis the nature of this hobby.

I start with running Pitool at 1.5 RQ and will go to 2 if the headroom is available., Doing this often negates the need for AA in game.
I use144Hz almost exclusively and always in fast moving games. It stays smooth at lower fps while the lower refresh rates don’t.
Smart Smooth OFF. I prefer SVR Smooth if needed but hardly ever use. Affects sharpness and has artifacts.
In game, I will play with the graphics adjustments based on each games idiosyncrasies.

Now this is just what I do atm, after years tweaking. If your have “anything different” from me on this list…
1 HMD including model and version
2 Pitool version and firmware version
3 cpu, gpu modo ,ram, windows ,drive and requisite software for same
4 installed software and versions
5 svr settings,
6 game settings
7 eyeballs
8 visual cortex
9 personal expectations
10 things i forgot to list :grinning:

then your mileage will definitely vary. :laughing: