DCS VR Shaders Mod (now with instructions!)

,

This looks interesting!

Short summary

Talented modder alters shaders (self-contained programs that run on graphics card) to tune DCS for a VR display performance.

Slightly longer:
Main change is only rendering a circular FOV instead of the rectangular window that is rendered in unmodded DCS. You don’t see the edges of the screen in your goggles anyways. Also some small optimizations to shadows etc to make them a lot more FPS friendly at a small visual quality cost. MSAA is only applied to the center of your FOV, as you do not notice it at the edges.

Is it really that good?

YES IT IS! (this blue thing is a link and you should click it)

I’m sold. Oh it’s free?

It is, but it is slightly more difficult than a regular mod install because shaders are not compiled everytime you start DCS: they usually stay the same, unless you deletel them. So now we have to change the ‘recipe’ (which is what applying the mod does) and remove the previous shaders so DCS has to ‘cook’ the new ones according to the modded recipe.

Can we take this step by step?

We certainly can.
Just read and click the links.

If using OVGME, scroll to the bottom! There are 2 steps that are different for you, for the rest it is the same

  1. Download and install Notepad++ (necessary for adjusting the FOV for most users, and if you want to use a script to make your life easier. Just do it!)
  2. Download the latest version of the mod
  3. (only if you have another headset than the Vive:) Inside the
    VR Shaders mod, go to Bazar\shaders\deferred\_HMD.hlsl and adjust the MASKSIZE value.

    The default is optimized for HTC Vive. Lower value = higher framerate. If set too low, you will see distortions around the edge of your FOV. For Odyssey, I find 0.575 to be sufficient, Rift users report using 0.59
    3.a Before applying the mod, download the shader removal script by @fearlessfrog
    3.b and extract it to some place (your desktop will do if you are lazy, join the club!)
  4. Use notepad++ to open the batch file you just extracted and edit the locations to the actual locations of your DCS and Saved games folders.
  5. Press Ctrl+S or save
  6. Run the script (you have to type ‘Y’ and press Enter after seeing the location in there is correct, only then does it remove shaders)
  7. Apply the mod by pasting it over your DCS directory such that Bazar is merged with Bazar etc. Press "merge all"or something like that.
  8. Start DCS, be prepared to wait 10-20 minutes, start a mission, wait a few more minutes, and you should have about twice the framerate. Happy flying!

Be aware that this mod does not play nicely with Night Vision Goggle in DCS. Disable it by following the list below wihtout step 4 and 5

What if I want to update DCS? Or if I want to change the FOV later or am having problems?

  1. if using OVGME, disable all your mods of course (including the VR shaders mod)
  2. I HIGHLY recommend you clean DCS to remove any traces of the mod* using the ‘CLEAN’ button in @SkateZilla ['s updater utility])(Skatezilla's DCS Updater Utility GUI) (check out the video if this is your first time using it
  3. Update or repair DCS
  4. Run the vrmodprep script by @fearlessfrog
  5. Re-apply the mod (either paste it in DCS or enable through OVGME)
  6. Launch DCS and wait for the shaders to compile

*OVGME cannot track all the changes that are made through shader compilation, and thus disabling the mod in OVGME does not fully remove it, unlike other mods.

I use OVGME to manage my mods because I fly in 229th or another awesome squadron.

Good on you! In that case, still follow the above procedure. but just
change these two steps:

Step 1 becomes: Download this OVGME-ready version I made here, and put it in your Program mods folder or something (I am not teaching you OVGME here)
VR Shaders mod.zip (61.5 KB)
(If you can do this yourself and this file becomes outdated, please update this post (every user can).)

Step 6 becomes: Apply the mod using OVGME.

Make sure the zip in your mods folder contains the version of the mod with your custom MASKSIZE if you changed that.

TO PLAY ONLINE in servers requiring integrity check
you have to overwrite the modded files with this orginal ones

bazar/shaders/deferred/decoder.hlsl
bazar/shaders/deferred/gbuffer.hlsl
bazar/shaders/deferred/atmosphere.hlsl
bazar/shaders/deferred/shadows.hlsl
bazar/shaders/materialfactory/ils151.hlsl
bazar/shaders/model/functions/glass.hlsl

report says you loose just some of the mod benefits…

Source
https://forums.eagle.ru/showpost.php?p=3614607&postcount=421

4 Likes

Very cool! I’ll try it out this afternoon and report back. :sunglasses:

2 Likes

I’d say! :scream:

The inlaws have gone home… I can unpack my simbox tomorrow and try this.

2 Likes

So, a quick initial test, using the F5 instant action mission over Las Vegas, would suggest this make quite a difference. I need to tweak the mask size, as I am seeing artifacts at the edges of my vision, but it really smooths things out when you are maneuvering hard. Silky smooth. :heart_eyes:

2 Likes

Always cool to see any change that will make DCS smoother. This mod fails Multiplayer Integrity checks, FYI.

1 Like

How is visual quality? Is it a big sacrifice?

edit: nm, running them myself to have a look-see.

single test run. A definite reduction in image quality. I think I’ll take the performance hit for better looks (ie unmodded)

To be honest, I didn’t see a major reduction in image quality. I adjusted the mask size to 5.8 to get rid of some weirdness at the edge of my FOV, but other than that it looked just fine. The Mod doesn’t like the M2000C out the box, so I had to restore the original Bazar\shaders\model\functions\glass.hlsl file, but other than that, so far at least, I like the performance increase. I’ll do some more testing today if I get the chance.

1 Like

Well, I finally unpacked my SimBox again. I really need to make a new and improved version, that I can stow and unpack faster…

Anyway, I installed Kegetys shaders. I increased the masksize to .65. I see @PaulRix use .58. Will try that later.

But, long story short… Impressive performance increase! :astonished:
Even on 5GHz and a 1080TI.

I see some artifacts associated with smoke and surf. But all very minor.

It’s incredible that such an increase in performace is possible!

Thanks Mr. Kegetys!

1 Like

It is very impressive. I’m hoping that ED is talking directly with Kegetys with the aim of further refining the process and adding it as an official options setting (thus allowing it’s use in multiplayer).

1 Like

I tried .58 Masksize, but saw a wee bit of distortion at the edges. Increased to .60 and distortion is gone. I guess this value will be somewhat personal preference, just like IPD. Come to think of it, it might also depend on your face-lens distance as well. I use the thin padding from VR Cover. I think that makes the FoV increase slightly, as the padding is thinner than the stock CV1 padding.

From what I gather, this masksize thing is something that wasn’t in DCS and Kegetys enabled it…?

Will be very interesting to see where we go from here. What will Kegetys find out next, and what will ED pick up on…

Personally I think ED should throw money at him and invite him to become a consultant/contractor. If I was King, that’s what I would do ;).

2 Likes

@PaulRix for king! :crown:

2 Likes

Just tried it out. A really nice performance boost, on an i5 @4.5GHz and a Nv1070.

Looking at what it does, it mainly removes things. A lot of the effects work within limits on a 1980 resolution flat screen, but scale badly for the stupidly high resolutions that VR needs (not the resolution that you see, just what the game needs to render for 3D wide field of view lens display).

Because the effects scale badly, and because we can’t really see anything too subtle in VR anyway, then it makes sense just to turn things off. The shaders altered effectively do that (or move the z distances out more). The MSAA rendered in the center is a nice idea still has a performance impact for me, so I prefer just to run a higher Pixel Density.

I think the best way of getting improvements in VR is to buy @NineLine, @bignewy and more of the DCS devs headsets for them to play DCS in regularly. :slight_smile:

Like a lot of fringe hardware (fancy HOTAS, 4k displays, MFDs etc) it’s often the case of the accessibility of those working on it all the time, and their feedback, making the case better for it than anyone outside on a forum asking. :vr:

1 Like

Its been passed along to the team already, thanks all!

2 Likes

Just tried to give it a shot via JGSME (and manual shader clearance). DCS stuck on the load screen.

By the way, do any of y’all get a weird shader effect at night with VR? It’s like the whole screen has a filter applied, not just night coloring and shading.

First time using the new shaders it can take 10+ minutes or so to recompile. It looks like it isnt doing anything (no notification on the load screen), but it is.

Hmm. I knew to expect that, but I thought it recompiled the shaders before you began a mission. I was experiencing the hangup before I even got into the main menu. Guess I should give it another go.

Do you know what I’m talking about regarding DCS night rendering? It’s like I’m looking at everything through a thin piece of black cloth…

Not seen that. Maybe gamma a bit high? The mod install instructions don’t say but it is probably worth removing your User/Saved Games/DCS.Open Beta metashader and fxo cache folders.

Starting DCS for the first time, since changing the shaders, took forever. I almost gave up too :slight_smile:

Ok, what with the patches and hotfixes, was getting a bit finger weary of all that moving of folders each time just to reapply the VR mod.

Here’s a script to run to prepare for the VR Mod shaders change. It removes the caches of the shader files that ship with DCS to force the HLSL changes to be ‘recompiled’ when you first enter the map. So the usage would be:

1 - Copy in the ‘shaders’ folder as per the instructions in the VR mod linked in the first post of this topic.

2 - Use this script to remove the old cache, to make the above work.

Note: Check your paths in the following script, as they are unlikely to be exactly the same as mine. I couldn’t be bothered to look up the registry key of the DCS install location, so should just be a quick find/replace in notepad.

@ECHO OFF
set /p AREYOUSURE=Are you running the Open Beta, and is it installed at E:\Games\DCS World OpenBeta? (If not edit this file) [Y/N]: 
IF /I "%AREYOUSURE%" NEQ "Y" GOTO END

echo Removing caches
del /q "%USERPROFILE%\Saved Games\DCS.openbeta\fxo"
del /q "%USERPROFILE%\Saved Games\DCS.openbeta\metashaders2"

:: Find/Replace 'E:\Games\DCS World OpenBeta' to be your install location
del /q "E:\Games\DCS World OpenBeta\Mods\terrains\Caucasus\misc\metacache\dcs"
del /q "E:\Games\DCS World OpenBeta\Mods\terrains\Nevada\misc\metacache\dcs"
del /q "E:\Games\DCS World OpenBeta\Mods\terrains\Normandy\misc\metacache\dcs"
del /q "E:\Games\DCS World OpenBeta\Mods\terrains\PersianGulf\misc\metacache\dcs"

echo Removed caches. Restart DCS with each map to rebuild (can take 10 mins per map load)

vrmodprep.zip (530 Bytes)

3 - Run DCS and go grab a coffee as it takes a while. I tend just to pick Instant Action one per map and then it’s done.

PS As per all scripts, if not sure don’t do it, ask.

2 Likes