1. Welcome to VRCat! Please note that this message board is not related to VRChat in any official manner. It is run entirely by the community, and moderated by the community. Any content present has not been reviewed by VRChat moderators or staff. Your use of these forums implies understanding of this message. Thanks!
    Dismiss Notice

Worlds Post Processing and You

Discussion in 'Tutorials and Tools' started by Silent, Oct 7, 2018.

  1. Silent

    Silent Member

    Joined:
    Nov 19, 2017
    Messages:
    32
    Likes Received:
    22
    Hi everyone!

    I've written this explanation of why post processing is important and why you technically should always use it. It'll also explain how to set it up properly, to avoid comments like "There's too much bloom and my eyes are burning!" and "Why do my colours look so weird here?".

    Post Processing and You

    I tried to keep it short and concise, but please don't hesitate to ask me questions!
     
    Vectorius and Mr.Crane like this.
  2. Tupper

    Tupper The Strongest
    Forum Staff

    Joined:
    Nov 14, 2017
    Messages:
    111
    Likes Received:
    106
    VRChat:
    Tupper
    I'll note that SSAO isn't just perf-heavy in VR, it also doesn't look quite right thanks to it rendering differently in each eye. I'd strongly recommend against it.
     
    Mr.Crane likes this.
  3. Silent

    Silent Member

    Joined:
    Nov 19, 2017
    Messages:
    32
    Likes Received:
    22
    I've updated the guide to add an example profile. Adding proper post processing is now easier than before!

    Also, depending on what's included in 2017, I might be adding a guide on using the newer Post-Processing Stack 2 when it's officially out.
     
    shotariya likes this.
  4. Silent

    Silent Member

    Joined:
    Nov 19, 2017
    Messages:
    32
    Likes Received:
    22
    I've updated the guide to add instructions for the new Post-Processing Stack 2, which is supported in the 2017 update!
     
  5. Revo

    Revo New Member

    Joined:
    Dec 27, 2018
    Messages:
    1
    Likes Received:
    0
    Does post processing stack 2 really work in vrchat? I get the error `NUnit' could not be found when i try to upload
     
  6. Silent

    Silent Member

    Joined:
    Nov 19, 2017
    Messages:
    32
    Likes Received:
    22
    Are you using the linked version 2.1.1? That might be an error with another script in your Assets folder. Make sure you didn't extract the Tests folder - if you did, delete it.
     
  7. kevin aguilar

    kevin aguilar Member

    Joined:
    Nov 13, 2018
    Messages:
    25
    Likes Received:
    2
    First of all, i want to Thank you for your time and awesome work.
    My question is, will this setting fix the double screen per eye effect I get when I enter my world with the Vive?
     
  8. Desunyan

    Desunyan New Member

    Joined:
    Nov 18, 2017
    Messages:
    3
    Likes Received:
    2
    VRChat:
    Desunyan
    I strongly disagree with proposed bloom threshold setting, it should be set to 1. In this case bloom will be only applied to colors above regular LDR level and should not be an issue with most avatars since typically avatars not using HDR colors.
    When threshold is set to 0.01 bloom literally applied to everyhing on screen including menu.
    This also mentioned by Unity Premium tutorial: "Post Processing Effects: Bloom"
     
    #8 Desunyan, Oct 14, 2019
    Last edited: Oct 14, 2019
  9. Silent

    Silent Member

    Joined:
    Nov 19, 2017
    Messages:
    32
    Likes Received:
    22
    Bloom is always applied to the entire screen, including the menu, whether it's at 0 threshold or 20. That's misleading advice. The reason I recommend this is explained in the guide.

    The point of setting the threshold to zero is to ensure that the rest of the settings are set consistently. Unity's recommendations make sense if you're making a game and control all the assets. However, in VRC, we do not control the avatars people upload. Furthermore, for non-professionals, starting off with a reasonable baseline makes the most sense.

    I think 0 threshold and 0.1 intensity is a reasonable baseline because it looks nice even with physically correct materials and proper tonemapping. Using a low threshold means all types of lighting behave in a consistent and predictable manner, which is helpful when setting up lighting. It's also a little closer to an energy conserving workflow, as even though we're increasing the overall intensity of the light in the scene, we're only increasing it by the average*the bloom intensity, which is very manageable.

    You might believe that using no threshold isn't a reasonable baseline, but in my experience, that is not the case.
    • If you crank the bloom up to 1 intensity with 0 threshold, everything gets super bright because you're doubling the brightness of the entire scene. This doubling carries over to the tonemapper, so the resulting colours look skewed and wrong.
    • If you set the bloom to 1 intensity with 1 threshold, everything over the threshold gets super bright. So a torch or an errant puff of smoke from someone's avatar can cause blinding flashes. It also means that the border between bright and dark objects has massive artifacts, because bloom is rendered into a lower resolution buffer. This is especially a problem in VR. And, finally, it causes issues with tonemapping because the values are still doubled.
    • If you set the bloom to 0.1 intensity with 0 threshold, there are no problems. (0.01 intensity if using post-processing v1) Only bright objects have bloom. And brightness is relative to the surroundings of the object... like in real life. Furthermore, there are no issues with unrealistic colour spikes after tonemapping. It just works.
    The idea behind bloom is that it's simulating imperfections in the lens capturing the image. Those imperfections diffract the light they receive and spread it around. The reason why bloom is noticeable far more for bright things is that a bright point blurred over a dark area means you'll see the tail spread out across it. And the best bloom has a very fast falloff and a long tail. By comparison, using a threshold means a harsh cutoff. It creates blobby bloom that's common in old games. It looks ugly, and lots of people dislike that bloom.

    If you make a Unity scene with the default skybox and a directional light of 1 intensity, the sphere's brightness in the lit portion will be above 1.0 because of the influence of the ambient light. So, should the sphere bloom? Maybe if you want to simulate a misty environment, but generally... not really. So what's the fix for that, setting the threshold higher? Even if we set the threshold to 1.0, how strong should the bloom intensity be? I've seen people crank it to 2 or even 10 because they want things to glow more. Then, they wonder why people in their worlds glow as bright as the sun. I've seen lots of worlds set that way! And, as far as I know, people don't like that, either.

    I'll also note that out of all the worlds I've made, I've only received complaints about the bloom in them with two - one where people were staring directly into the sun, and the other was a misty forest. I've also helped quite a lot of people set it up in their worlds and they were happy with the results. If you want bloom to smear all over your screen with this setup, you have to actually try for it. Maybe you should try it yourself before you knock it.

    So, in summary, advising people to use a low threshold and intensity encourages a look that's both more eye pleasing and physically comfortable. As such, I won't be changing the recommendation without a more convincing argument.