User Tools

Site Tools


other:pimaxvr

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
other:pimaxvr [2024/04/27 10:50] – [iRacing Simulator] marvinother:pimaxvr [2024/04/28 11:22] (current) – [Overview] marvin
Line 2: Line 2:
  
 ===== Overview ===== ===== Overview =====
-**- Last updated 4/27/2024 -**+**- Last updated 4/28/2024 -**
  
 It is April 2024, and I have decided to create this page to share my settings for my Pimax 8K X VR headset that gives me awesome looking graphics and 90 FPS in iRacing.  But first, there is a LOT of misinformation out there.  I've looked at different posts on different forums and on Reddit and there and some of it is garbage.  I used to be a professional game developer (Bethesda Softworks, Rainbow Studios, THQ) working mainly with graphic engines so I should know what I am talking about when it comes to this stuff. It is April 2024, and I have decided to create this page to share my settings for my Pimax 8K X VR headset that gives me awesome looking graphics and 90 FPS in iRacing.  But first, there is a LOT of misinformation out there.  I've looked at different posts on different forums and on Reddit and there and some of it is garbage.  I used to be a professional game developer (Bethesda Softworks, Rainbow Studios, THQ) working mainly with graphic engines so I should know what I am talking about when it comes to this stuff.
Line 90: Line 90:
 ==== OpenXR Toolkit Settings ==== ==== OpenXR Toolkit Settings ====
 There are really no settings to set here outside of iRacing simulator. All of the settings you want to set in the OpenXR toolkit will happen later, when we are actually running the iRacing simulator. What you do want to set up here are the "On-screen menu hotkeys" so you can actually bring up the OpenXR toolkit settings in-game. I just have mine mapped to the arrow keys on the keyboard so I can find them by feel without taking the headset off. There are really no settings to set here outside of iRacing simulator. All of the settings you want to set in the OpenXR toolkit will happen later, when we are actually running the iRacing simulator. What you do want to set up here are the "On-screen menu hotkeys" so you can actually bring up the OpenXR toolkit settings in-game. I just have mine mapped to the arrow keys on the keyboard so I can find them by feel without taking the headset off.
- 
-There is only one more place to configure settings before we are ready to dive into the iRacing simulator itself. 
- 
-==== NVIDIA Control Panel ==== 
-{{ :other:nvidiacontrolpanel.png?direct&200|}} 
-iRacing has a problem rendering transparent objects such as the chain link fences that go around most tracks. They look bad. Fortunately, Nvidia offers us an easy fix that doesn't really cost anything in terms of graphics performance! 
- 
-Open up the Nvidia control panel, and click on the "Manage 3D settings" option in the left-side menu, then click on the "Program Settings" tab.  If the "iRacing: Motorsport Simulator" option is not already available in the drop-down list, go ahead and click on the "Add" button to add it. 
- 
-The only setting you need to change is the "Antialiasing - Transparency" setting - change it to "4x (supersample)". That's it. Now your chain link fences shall look glorious! 
- 
-Some people will tell you to change some of the other settings here such as setting the max frame rate to 89. Please don't do this. The "Antialiasing - Transparency" setting is the only one you need to modify. 
  
 Now we are ready to move on to the settings within the iRacing simulator itself! Now we are ready to move on to the settings within the iRacing simulator itself!
  
 ==== iRacing Simulator ==== ==== iRacing Simulator ====
-{{ :other:iracinggraphicsettings.png?direct&600|}}+{{ :other:iracinggraphicssettings.png?direct&600|}}
 Launch the iRacing UI and join a random practice session or start up a test drive session. Make sure you use the OpenXR display mode. You should not be using the OpenVR display mode because unfortunately it does not have some of the features we need (such as foveated rendering) that is critical to hitting 90 FPS. Launch the iRacing UI and join a random practice session or start up a test drive session. Make sure you use the OpenXR display mode. You should not be using the OpenVR display mode because unfortunately it does not have some of the features we need (such as foveated rendering) that is critical to hitting 90 FPS.
  
Line 112: Line 100:
  
   * Resolution = 1024x768   * Resolution = 1024x768
 +  * Res Scaling = None
   * Align = Top Left   * Align = Top Left
   * Enable SPS (VR) = ON   * Enable SPS (VR) = ON
Line 119: Line 108:
 Sky/Clouds, Cars, Pit Objects, Event, Grandstands, Objects, Foliage, Particles are all set to "high detail" The only thing in this area that I have switched off are "Crowds" When racing, you don't really notice them anyway, and they do take up significant render time, especially when passing the start/finish line on oval tracks. Sky/Clouds, Cars, Pit Objects, Event, Grandstands, Objects, Foliage, Particles are all set to "high detail" The only thing in this area that I have switched off are "Crowds" When racing, you don't really notice them anyway, and they do take up significant render time, especially when passing the start/finish line on oval tracks.
  
-For particles turn on "full res" and "soft".+For particles you should also turn on the "full res" and "soft" options as well.
  
 Set max cars to 63 and also select "draw 20(8) cars" and "draw min pits" That's plenty of cars to see on screen in front of you (20) with 8 cars in the rear view mirror.  There is no need for more than this when racing.  As for the rest of the settings - Set max cars to 63 and also select "draw 20(8) cars" and "draw min pits" That's plenty of cars to see on screen in front of you (20) with 8 cars in the rear view mirror.  There is no need for more than this when racing.  As for the rest of the settings -
Line 155: Line 144:
  
   * Show Driver Arms = ON   * Show Driver Arms = ON
-  * Two Pass Trees = ON +  * Two Pass Trees = Off 
-  * High Quality Trees = ON+  * High Quality Trees = Off 
 +  * Headlights = Low Detail 
 +  * Headlights on track in mirrors = Off 
 + 
 +Below are the settings to choose when you want to use the virtual mirror. 
   * Cockpit Mirrors = Off   * Cockpit Mirrors = Off
   * Higher Detail In Mirrors = Off   * Higher Detail In Mirrors = Off
-  * Headlights = High Detail 
-  * Headlights on track in mirrors = ON 
   * Virtual Mirror = ON (120 degrees)   * Virtual Mirror = ON (120 degrees)
  
-I currently use the virtual mirror, however a lot of people prefer to use the cockpit mirrors. Using the cockpit mirrors instead of the virtual mirror adds roughly about 0.5 to 1 ms to the render time (out of the 11 ms render time budget for 90 FPS).  If you do want to use cockpit mirrors then use these settings instead -+Using the cockpit mirrors instead of the virtual mirror adds roughly about 0.5 to 1 ms to the render time (out of the 11.1 ms render time budget for 90 FPS).  If you do want to use cockpit mirrors then use these settings below instead.
  
   * Cockpit Mirrors = Max: 3   * Cockpit Mirrors = Max: 3
Line 184: Line 176:
 This fake software based post-processed antialiasing method should be always off. Sharpening definitely should be set to off as that is the opposite of antialiasing - it makes aliasing worse. The other effects such as distortion and heat haze are so unimportant to racing that you should have them off. If you have a decent video card with plenty of video memory you should have the swap high-res cars option turned off to increase performance. However if you have an older card with less video memory you might have to turn this on. This fake software based post-processed antialiasing method should be always off. Sharpening definitely should be set to off as that is the opposite of antialiasing - it makes aliasing worse. The other effects such as distortion and heat haze are so unimportant to racing that you should have them off. If you have a decent video card with plenty of video memory you should have the swap high-res cars option turned off to increase performance. However if you have an older card with less video memory you might have to turn this on.
  
-Now, after making all of these changes to the graphic settings, you MUST click on the done button and quit the iRacing simulator. Many of these settings (including the important MSAA setting) do not take effect until you restart the simulator+Now, after making all of these changes to the graphic settings, click on the done button and you MUST quit the iRacing simulator. Many of these settings (including the important MSAA setting) do not take effect until you restart the simulator.
- +
-==== rendererDX11OpenXR.ini ==== +
-After you quit the simulator, but before you start it up again, there are a few graphics settings that the iRacing simulator has but they don't give you a way to change them via the UI.  You'd need to open up the "rendererDX11OpenXR.ini" file using a text editor such as Notepad. These are the settings that are worth changing. +
- +
-  * VirtualMirrorSize = 0 +
- +
-It's mind boggling to me why iRacing does not give us an easy way to adjust this. Setting this value to 0 (the default is 1) gives us the largest possible virtual mirror, which really helps you avoid these nasty race-ending wrecks. Obviously you do not need to change this setting if you use cockpit mirrors instead of the virtual mirror.+
  
 ==== OpenXR Toolkit ==== ==== OpenXR Toolkit ====
Line 200: Line 185:
  
   * Overlay = Off   * Overlay = Off
-  * Upscaling/Sharpening = Off +  * Upscaling/Sharpening = NIS (OPTIONAL) 
-  * Fixed foveated rendering = Preset+    * Anamorphic = Off 
 +    * Size = 75% 
 +    * Sharpness = 20% 
 +    * Mip-map bias = Conservative 
 +  * Fixed foveated rendering = Custom
     * Cull outer mask (HAM) = Yes     * Cull outer mask (HAM) = Yes
-    * Mode Performance +    * Inner resolution 1x 
-    * Pattern Wide +    * Inner ring size 45% 
-  * Turbo mode = ON+    * Middle resolution = 1/4 
 +    * Outer ring size = 65% 
 +    * Outer resolution = 1/16 
 +    * Prefer resolution = Vertical 
 +    * Horizontal scale = 125% 
 +    * Horizontal offset = 0% 
 +    * Vertical offset = 0% 
 +    * Left/Right Bias = none 
 +  * Turbo mode = Off
   * Frame rate throttling = Off   * Frame rate throttling = Off
   * Record statistics = No   * Record statistics = No
  
-What's important here are the foveated rendering settings - this produces quite a significant boost to the frame rate with very little hit on quality.  The reason the quality does not suffer so much is because we also have MSAA antialiasing turned on, which really goes far to improve the quality of the image.+The upscaling settings are optional - if you do mostly oval racing in the daytime on dry tracks, you would likely be able to sustain 90 FPS with upscaling turned off.  However, if you do race in the rain at night you might need to turn this on to hit 90 FPS.
  
-have turbo mode turned on, but be aware that this is an experimental feature of the OpenXR toolkit. If you experience issues such as the game crashing then turn turbo mode off.+The foveated rendering settings here are important - these settings produces quite a significant boost to the frame rate with very little hit on quality.  The reason the quality does not suffer so much is because we also have MSAA antialiasing turned on which hides some of the shimmering artifacts you would normally see at the edge of your vision.  The two ring sizes I have selected - 45% and 65% - are pretty much at the limit of what I can tolerate.  You want to set these numbers as low as you can bear.  People with eye tracking and DFR should be able to set these numbers a little bit lower than people using FFR.
  
-Then on the next screen, we have the appearance settings. This screen is completely optional - on this screen I have post-processing turned on and the vibrance setting turned up to around 75 to make colors pop a little more.+Turbo mode turned is currently off in my setup, but some people have reported improved frame rates with this turned on for iRacing.  You can try turning this on, but be aware that this is an experimental feature of the OpenXR toolkit. If you experience issues such as the game crashing then turn turbo mode off. 
 + 
 +Then on the next screen, we have the appearance settings. This screen is completely optional - on this screen I have post-processing turned on and the vibrance setting turned up to around 75 to make colors pop a little bit more.
  
 And... you're done! And... you're done!
  
-===== Tweaking The FFR ===== +===== Still Not 90 FPS? ===== 
-You may want to tweak the FFR settings to squeeze some more performance out of your graphics card To do this, bring up the OpenXR toolkit window and change these settings -+If your hardware set up is similar to mine, you should be racing at 90 FPS consistently on most tracks.
  
-  * Fixed foveated rendering = Custom +{{ :other:framerateoverlay.png?direct&400|}} 
-  * TODO+To verify this, you can bring up the OpenXR toolkit inside the iRacing simulator and change this setting -
  
-===== Still Not 90 FPS? ===== +  * Overlay Advanced 
-If your hardware set up is similar to mine, you should be racing at 90FPS consistently on most tracks.+ 
 +This will tell the OpenXR toolkit to draw the current frame rate and the CPU and GPU utilization numbers on the screen. There are some settings under the "Menu" tab that will allow you to move this overlay around on the screenTo the right is an example of what this will look like on your screen. Here is an explanation of the numbers you see in this overlay -
  
-TODO explain how to use the OpenXR toolkit overlay to show the FPS and CPU/GPU utilization.+  * FPS - This is the current frame rate and the goal is 90 
 +  * app CPU This is how much CPU time the application (the iRacing simulator) is using for other things (game logic, physics, and so on) 
 +  * rdr CPU - This is how much rendering thread CPU time the application and graphics drivers are using to draw each frame 
 +  * app GPU - This is how much GPU time your video card is using to draw each frame
  
-Our goal is to keep this number at or below 11 milliseconds. second divided by 90 frames is 0.01111 seconds per frame, and multiply that by 1000 milliseconds in a second, to get 11.11 milliseconds.+Our goal is to keep the "app GPU" number below 11 milliseconds. One second divided by 90 frames is 0.01111 seconds per frame, which is the same as 11.1 milliseconds per frame. If you are below 11 for the "app GPU" number and your frame rate is not 90 FPS, then the iRacing simulator is likely CPU bound on your computer. Being CPU bound means that your CPU is the limiting factorand trying to optimize the graphics settings would result in little to no improvement to the frame rate.
  
-If you're not quite getting below 11 milliseconds, there are a few options you can ease back on, to help you get there.  Try them in the order listed:+If you're not quite getting below 11 milliseconds for the "app GPU" number, there are a few options you can ease back on, to help you get there as long as you are not CPU bound.  Try them in the order listed:
  
-  - Use "normal" instead of "large" for field of view in the Pimax Client settings+  - Use "normal" instead of "large" for field of view in the Pimax Client settings (try this first)
   - iRacing graphics settings   - iRacing graphics settings
-    - Two Pass Trees = Off 
-    - High Quality Trees = Off 
     - Event = Low Detail or Off     - Event = Low Detail or Off
     - Objects = Low Detail     - Objects = Low Detail
     - Pit Objects = Low Detail     - Pit Objects = Low Detail
     - Cars = Medium Detail     - Cars = Medium Detail
-  - Enable FSR 
-    - TODO 
   - iRacing graphics settings   - iRacing graphics settings
-    - MSAA Samples = 2x+    - MSAA Samples = 2x (last resort)
  
 As a last resort you'll need to change MSAA Samples to 2x instead of 4x. Don't forget to restart the iRacing simulator if you do that. As a last resort you'll need to change MSAA Samples to 2x instead of 4x. Don't forget to restart the iRacing simulator if you do that.
Line 250: Line 249:
 Here are some tracks that I've tested these settings with so far, and the resulting frame rate.  These were tested with all of the recommended options without resorting to doing any of the things listed in the above "Still Not 90 FPS?" section. This list will grow slowly over time. Here are some tracks that I've tested these settings with so far, and the resulting frame rate.  These were tested with all of the recommended options without resorting to doing any of the things listed in the above "Still Not 90 FPS?" section. This list will grow slowly over time.
  
-^ Event ^ Track ^ Version ^ # Cars ^ Rain ^ FPS ^ +^ Event ^ Track ^ Version ^ # Cars ^ Rain ^ Grid FPS ^ Race FPS ^ 
-| Pickup Cup | Daytona International Speedway | Oval - 2008 | 24 | | 90+ | +| Pickup Cup | Daytona International Speedway | Oval - 2008 | 24 | | 90+ | 90+ | 
-| Carburetor Cup | Auto Club Speedway | Oval | 13 | | 90+ | +| Carburetor Cup | Auto Club Speedway | Oval | 13 | | 90+ | 90+ | 
-AI GTP Sebring International Raceway | International 60 | Yes | 60+ |+Rain Master Fixed WeatherTech Raceway | Full Course 15 | Yes | 80+ | 90+ |
  
-===== Screenshots ===== +===== Videos ===== 
-Here are few screenshots showing different things - these were taken by enabling "Show mirror window" in the PimaxXR runtime control center.  These are screens of the left eye - the "center" of my view is actually closer to the right edges of these images, where you see the iRacing UI.+Here is video of a Rain Master event at WeatherTech Raceway with 15 cars and rain. When at the grid the frame rate does go down to around 80 FPS because my CPU isn't fast enough to feed the GPU beast. As the race progresses, the frame rate climbs to 90+ and stays there consistently. This video was taken with upscaling (NIS) turned on in the OpenXR Toolkit settings, and was recorded at 1080P @ 60 FPS.  The recording shows only a small 1920x1080 region of the full 4K left eye image.
  
-{{ :other:screenshot1.png?direct&600 |}} +{{ youtube>54VaT9oDm4k?large }}
-In this screen shot the most obvious thing you can see is the hidden area mask working - the pixels around the four corners of the screenshot are not rendered - saving significant render time.  You can also see that the guardrail running towards the left side of the image gets more and more jagged the further away from the center of the image.  This is the foveated rendering working.  Because that part of the image is far away from the center of the view you really don't notice the jaggy edges. +
- +
-{{ :other:screenshot2.png?direct&600 |}} +
-In this screen shot take a look at the area above the brige, below the Hagerty sign. There is a chain link fence there - note how clean it looks. Also note how clean and smooth all the edges that makes up the bridge trusses look. +
- +
-{{ :other:screenshot3.png?direct&600 |}} +
-More chain-link fences in this screen shot - Take a look at how smoothly the chain link fence goes off into the distance without any jagged edges. +
- +
-===== Videos ===== +
-At some point I plan to put up a video of what my settings look like, probably going to be a cropped left eye view of some oval racing.+
other/pimaxvr.1714240212.txt.gz · Last modified: 2024/04/27 10:50 by marvin