Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Bug Camera doesn't render anything in VR Headset when enabling PostProcess Layer component

Discussion in 'VR' started by c_martinz, Jul 4, 2023.

  1. c_martinz

    c_martinz

    Joined:
    Feb 28, 2023
    Posts:
    5
    Good afternoon!

    I've been struggling quite a lot fighting flickering in my scenes when seen in the VR headset (in the Editor everything seems fine). Vegetation probably are the assets that flicker the most since the materials play with alpha cutoff to have a good look on leaves, but other meshes flicker too.

    I tried a bunch of things already: forward/deferred rendering (deferred doesn't work in vr so I left forward), decreasing/increasing textures resolution, enabling MSAA in Quality settings (tested no AA, x2, x4 and x8), disabling HDR in Graphics settings and many other small changes that didn't work finally.

    Since any of those things fixed my issue, I searched how to enable other AA techniques besides MSAA, and found that Post Processing would do the trick (I work with built-in renderer, so I downloaded the Package Manager version).

    Followed the process to enable post processing in the scene and made it work in Editor. Added FXAA anti-alising to my player camera Post-process layer component and could see a good improvement in the Game view in Editor when it comes to the edges of the meshes, so I decided to make a build for my headset (btw, I'm using Vive Focus 3). But, when opening my application in the headset, nothing is rendered. No floor, no assets I only see Unity's default background; empty scene.

    Then, I started changing values and enabling/disabling components and I found that Post-process Layer seems to be the trigger. If it's disabled, the camera renders normally but obviously without the antialiasing and postprocess efects, and if it's enabled, it renders nothing.
    upload_2023-7-4_18-37-27.png

    Is there any incompatibility between postprocess and VR in built-in? I found discussions out there about posprocess in VR for URP but not really for built-in so I began to wonder if post-process must not be enabled for built-in render pipeline.

    I wasn't sure where to post since this thread looks like it's split in two: flickering issue and postprocess issue, so sorry if I didn't follow the process correctly!

    Thanks in advance for the help.
     
  2. gavinprior

    gavinprior

    Joined:
    Jul 27, 2020
    Posts:
    42
    This may be a stupid question, but have you added your scene to the Build Settings popup?

    Also, have you enabled post processing on your camera?
     
  3. c_martinz

    c_martinz

    Joined:
    Feb 28, 2023
    Posts:
    5
    Hey Gavin!

    Haha, don't worry. Yes, build settings is setup properly.
    And yes, post-process is setup for my camera. There is no Post Processing toggle on Cameras in Built-in RP, you have to add PostProcess Layer component to the camera gameobject in order to enable it, which I have.

    I kept doing troubleshooting and testing but didn't fix the issue yet. If I get to solve it, I'll share it here. Ty!
     
  4. c_martinz

    c_martinz

    Joined:
    Feb 28, 2023
    Posts:
    5
    Hey there!

    For anyone interested, I found the thing that was causing the scene to not render when postprocess was enabled. When working with HTC Vive, you probably will be using WaveXR as the XR Plugin. In the Project Settings -> WaveXRSettings tab, you will find some cool settings. As default, Wave XR Settings are setup as Single Pass render mode, and as far as I could know, using Single Pass in SRP will make the scene to not render correctly in the headset if post processing is enabled. So in order to fix this issue, you will just change it to Multi Pass.

    Just for your info, I decided to stay with Single Pass and disabling postprocessing. Multi Pass significantly reduced my headset performance and was not worth trading framerate for a bit better looking scene. I think for small scenes, not my case, Multi Pass would work well.

    Hopefully this helps someone :D

    Take care!
     
    gavinprior likes this.