How to get Rid of Rendering Issues in Half Life Alyx WITHOUT Parallel Projection!

I have great news guys! After having solved the culling/object popping issue here:
https://community.openmr.ai/t/how-to-play-half-life-alyx-without-parallel-projection-on-pimax-headsets-and-starvr-one/28751/

I’ve finally figured out how to solve Half Life Alyx rendering blood spatter, bullet holes, shadows and other things all weird in the right eye on wide FOV headsets.

The solution is to disable Multiview instancing by adding this into the Half Life Alyx launch options:

+vr_multiview_instancing 0

So the final line will look like this:

-console -vconsole +sc_no_cull 1 +vr_multiview_instancing 0 +vr_enable_volume_fog 0

Now I can enjoy a full field of view without any rendering issues and without parallel projection on the StarVR One! This also works for Pimax headsets.

There is a slight performance decrease however when you disable multiview instancing. You can optimize performance however by disabling volume fog and following the guide here:

I don’t own a Pimax headset so someone should test the performance difference between using my method vs parallel projection.

UPDATE: Get rid of shadow culling by adding

+vr_shadow_map_culling 0

You might have to re-enter the command in the console whenever you play a new map/save slot.

Fix volume fog by using

+volume_fog_enable_stereo 0

Instead of

+vr_enable_volume_fog 0

25 Likes

For those wondering what Multiview instancing does. It basically saves on some rendering costs by rendering the scene once for the left eye, and then shifting and adjusting the image for the right eye. This works as intended on smaller FOV headsets like the Index. But for wide FOV headsets, the rendering gets messed up. So disabling it, means rendering the same image again for the right eye.

8 Likes

That is quite awesome! Very nice find :pi_thumbsup:

4 Likes

legend, will report back when I test it. :smiley: thx for all your hard work

4 Likes

I’d be curious to see the performance gains with this compared to having to use parallel projections

2 Likes

I think the best way to test this is to disable half life alyx’s auto fidelity system and set the fidelity to the very max like this:

+vr_fidelity_level_auto 0 +vr_fidelity_level 8

And then go into a wide open space in HL: Alyx and compare the performance difference between my method with and without volume fog enabled versus just using parallel projection. I suspect my method will yield a much higher performance because PP renders an entire scene twice (once per eye) which is very costly. Someone with an 8K-X should test this.

I get a smooth performance and a decent image on my StarVR One by leaving auto fidelity on, disabling volume fog, running at the lowest refresh rate 72Hz (90Hz is fine but lower results in better image), disabling motion smoothing, and under alyx graphics setting Characters → Low , Shadows → Medium, Fog → Medium. (Character setting has nothing to do with character detail apparently)

3 Likes

Update: Turns out that disabling multiview rendering has almost no affect on GPU but mostly on the CPU.

Single Pass Stereo rendering (also known as Multiview rendering on OpenGL/Vulkan) is a rendering feature for Oculus devices running on Android. It is available with the Unity version 5.6.

In a typical OpenGL stereo rendering, each eye buffer must be rendered in sequence, doubling application and driver overhead. With Single Pass Stereo rendering, objects are rendered once to the left eye buffer, then duplicated to the right buffer automatically with appropriate modifications for vertex position and view-dependent variables such as reflection. It primarily reduces CPU usage, and the GPU performance is unchanged largely. If your application is CPU-bound or draw call bound, we strongly recommend using Single Pass Stereo rendering to improve performance.

Source: Using Single Pass Stereo Rendering and Stereo Instancing | Oculus Developers

5 Likes

Today, I received my second StarVR One unit, however it is the ‘XT’ version. That one uses a different tracking system so, It may use a different software to run it.

Interesting finding between the two units:

The Lenses. They are different. The none xt have the typical Fresnel rings texture. But the XT does not, is a complete smooth lens. Unfortunately, since it does not run with Compass i cant test the visuals

9 Likes

Good find, thank you!

4 Likes

Hey @NextGenVR - I tried it with the 8k+, works just fine and finally all those fluids look hmm “nice” ;-).
Cool thing! I think I will be playing Alyx more then once - just an awesome VR Experience that keeps getting better!
I did not try a performance delta - without you parameter and with PP and with your parameter and without PP . If I get the time I will try.

Thanks for sharing!

6 Likes

Good work, man! Thanks!

5 Likes

Nice catch man, it feels like new game without that stupid errors. I will play it one more time :wink:

I wish there is similar trick for Follout4VR…

3 Likes

This works perfect, thank you so much for sharing. I just played some HLA with Pimax 5k+ on 2080 Ti and it ran very smooth. I wish I had this fix before!

4 Likes

thanks for sharing this , works great , blown away by HL Alyx !!

4 Likes

Do you know if this will work instead of adding it inside of steam. as /i have multiple hmds and only want this enabled with pimax

@SweViver i don’t remember but in the new Pimax Exp we have the ability to add custom arguments for launch in pitool?

2 Likes

@SweViver @NextGenVR do we have the ability to add custom arguments? See post above and does this trick really improve the performance?

2 Likes

i think the trick is to remove pop in and other culling issues so that you can run with PP off and gain the performance that running with PP off provides

so in short yes
@SweViver when tricks like this are discovered is there a way for PE to just add these arguments by default when launching the game built in to PE?

most of us aren’t going to even know how to add args to the command line.

I know how the trick works, thanks for explaining. But if you use fpsvr do you realy see performance gains? Maby in game the pop up and culling ting is doing weird things wen you don’t see them with the trick on. And remember when you don’t use pp pistool render the game in les resolution so whe have to test the difference with the same resolution. @NextGenVR @SweViver

1 Like

Curious about your settings in Half Life, I’m getting aliasing on certain objects. Extremely noticeable on the giant power lines linked to the tower during the intro part on the balcony. Is there a setting to adjust for this or do you see it at well?

2 Likes

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.