Search Unity

Why does HDRP enable a lot of crap by default now like ambient occlusion and motion blur?

Discussion in 'High Definition Render Pipeline' started by TwiiK, Mar 31, 2020.

  1. TwiiK

    TwiiK

    Joined:
    Oct 23, 2007
    Posts:
    1,729
    I now seemingly have to manually add these effects to a volume profile and set their intensities to 0 to disable them. This seems so counter-intuitive to me. When was this change introduced and why was it introduced? One of the things I really liked with Unity and really disliked with Unreal Engine was that Unity started out as a blank sheet and you had to add everything you wanted yourself while Unreal Engine gave you a lot of crap by default that you had to disable, but now Unity comes with more and more crap enabled by default like environments, lightmapping, and now also post processing.

    I'm guessing I can't convince you to revert this change at this point, but is there a way for me to create my own project template that is just blank? Also is there a way for me to see exactly what post processing is enabled by default now in HDRP so I know what I need to disable? I guess this goes for everything else as well. Like why is there a sky in my scene and why does it light my objects? There is no profile or sky assigned in my lighting tab.

    If this has been answered before some place else then I apologize, but I wasn't able to find it, and this is exactly why I feel like enabling a lot of crap by default is such a dick move. Instead of me having complete control over everything that goes into my game I'm now left to wonder how I can disable or override all the crap that's there before I've even started.
     
    Last edited: Mar 31, 2020
    deram_scholzara and fct509 like this.
  2. Julien_Unity

    Julien_Unity

    Unity Technologies

    Joined:
    Nov 17, 2015
    Posts:
    72
    These are the default settings (found in the Default HDRP settings in the project window). It's expected that they don't suit everybody's need so that's why you can setup your own for your project's need from this window.
     
    ThaiAssassin likes this.
  3. Cookie042

    Cookie042

    Joined:
    Nov 25, 2013
    Posts:
    9
    Julien,
    You seem to have avoided the OP's question. While it's true you can setup a default, it seems to disable Motion Blur you must add it to the default(where you said) and set its intensity to zero. I agree with the OP that "This seems so counter-intuitive". if it's not in the default volume profile, it should not be enabled.

    It makes me wonder if it's still doing some processing anyway but you dont see anything cause it's just set to intensity 0. The way it is now it's unclear, cause it has to be enabled to be disabled. this is also the case for bloom, as far as i can tell.
     
    Last edited: Apr 5, 2020
    ThaiAssassin and d1favero like this.
  4. Julien_Unity

    Julien_Unity

    Unity Technologies

    Joined:
    Nov 17, 2015
    Posts:
    72
    > While it's true you can setup a default, it seems to disable Motion Blur you must add it to the default(where you said) and set its intensity to zero.

    I don't think that's the case. All post process volume components are designed to be neutral by default (in order to not pollute the scene by default). Just checked and motion blur intensity is 0 by default so overriding it to zero should not change the behavior. Tried this in a simple scene here and could not reproduce the issue.
    So in this case if you still have motion blur in the scene even with no motion blur in the default volume profile, it's either because there is another volume overriding motion blur somewhere or there is a bug and in this case please file a bug report with a repro scene.
    Also note that a bug was fixed not so long ago where modifications to the default volume profile would not be taken into account until the next domain reload so it could explain some strange behaviors.
     
  5. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    I'd like to make few points about this:

    - I personally dislike the current default setup, have disliked it from the moment it was introduced
    - UE4 also does this and have disliked it there as well

    What these settings do is that they split the settings even further places now. In earlier HDRP versions, you just had volumes for PP effects and frame and other settings on HDRP asset. Now to setup HDRP, we practically need to run HDRP wizard as nobody could setup this without anymore, with all settings scattered all around.

    Just to list some of the things:
    Project Settings-> Graphics: Set the SRP asset
    Project Settings-> HDRP Default settings: default PP components, default frame settings, custom PP order (why is custom PP order even here??)
    Project Settings-> Quality: Allow you to set the SRP asset again for each quality level + vsync and random texturing options
    After running HDRP Wizard you get template for new HDRP scene that already has volume and bunch of volume components for every new scene you create
    After starting new project from HDRP template you get a HDRP scene that already has volume and bunch of volume components

    If you look at this list, it may become obvious to you that they already set the PP components in 3 different places(!) and is sure to cause confusion. Do note that I don't hate having "option" to have default settings that immediately apply to all your scenes, I just dislike having these settings setup for me on each new project and in a location I shouldn't modify (more about this later).

    I totally get one reason why this was setup like this: Unity has gotten a lot of crap in past by looking subpar by default and UE4 looks "amazing" straight out of the box. The biggest difference has there been that UE4 has had these PP effects enabled by default and now Unity is doing the same.

    I don't have any great solution to offer for this but I do think there's a fundamental design flaw in HDRP's default volume settings location:

    Right now they use the volume profile which is located in the package itself. This is totally wrong location for multiple reasons. Since you are likely to want to modify this, most users just start changing the values on the project settings, modifying the asset in the HDRP package itself (which then gets overwritten by unity on the next restart/HDRP update).

    Since HDRP Wizard already adds HDRPDefaultResources -folder to your Assets, this volume profile should totally be placed there instead, not only because it's your project specific default but also because people could actually find it there + it would not be overwritten. Unity's proposed defaults don't suit ANY of my projects and I always have to modify this file, so please don't make it even more tedious.

    Edit: I'm aware you can assign your own profile asset for default profile but this is partly what I meant by making it even more tedious.
     
  6. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    The default volume option is helpful in my case. There are some post-processing/volume effects that we don't change in every scene for our project. So using the default volume we can add all those effects to it and then configure the effects that change with a volume in and for each scene.

    I think this might have been the intended use for it. So whenever I make a new project I just make a local default volume profile and assign the effects I want or disable the ones I don't want from the provided default volume (Local HDRP packages, I think editing is even now disabled in newer HDRP versions). It depends on what I want to use the project for, but it does create work for you with every new project.

    With that said it would be nice to have the default volume created by the Wizzard in the Default resources so we can modify it and have to changes saved as @rz_0lento mentioned. Also, the Project Template tweaked to include it by default since that's where we all have to start for new projects.
     
  7. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    This is the reason why I don't hate it (as it can be useful), I only dislike the way they do it now.

    It's not mandatory by any means though as you could get same effect by just adding default profile to the default scene prefab via extra global volume with low priority :)
     
  8. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    934
    >With that said it would be nice to have the default volume created by the Wizzard in the Default resources
    Thanks for the feedback from both of you.

    We hear you and we will add this to the wizard, make sense.
    We are constantly struggling with default settings and would like a nice solution. We have discuss a lot but haven't get consensus. But at least adding them by default in user project is a required step.
     
    deram_scholzara and rz_0lento like this.
  9. rz_0lento

    rz_0lento

    Joined:
    Oct 8, 2013
    Posts:
    2,361
    I feel that the HDRP settings are just really way too scattered around. It would be nice if we could get most of them just grouped under single main SRP/Graphics entry on project settings (for things that apply project wide). Could do the same on URP.

    For example after user sets SRP asset on Project Settings -> Graphics, you could just list all the rest as nice sub sections under it, one for default volume, one for default frame settings, one for custom PP, just to make it more clear these settings exist there. I'd even move quality settings there when SRPs are in use as it's tightly linked to graphics but I can see the legacy reasons for keeping this separate.

    I also feel that it would be nice to be able to launch HDRP Wizard from Project Settings -> Graphics etc as it essentially presets these things for the user. I did notice there's now popup upon startup for the HDRP Wizard which I guess is a nice way to enforce it but this brought up another issue on my end. I started to investigate why the wizard kept popping up despite I always closed it. Turned out that the new "Show on start" checkbox was hidden on the bottom, I literally had to scroll down to see it and it wasn't obvious at all for me there was even such option:

    I don't know if this happened because I had resized the HDRP Wizard window or if it's too small at the beginning and you have to scroll down to find this option. I also don't really see much value on always popping this up if all the checks pass..

    Anyway, the point I'm trying to make here is that the confusion that people face now is that they don't really know where to start looking as things are grouped bit here and there and it's not always obvious to find the right place for the related settings.
     
    Noisecrime and jjejj87 like this.
  10. SebLagarde

    SebLagarde

    Unity Technologies

    Joined:
    Dec 30, 2015
    Posts:
    934
    >they don't really know where to start looking as things are grouped bit here and there and it's not always obvious to find >the right place for the related settings.
    This is something we are really well aware and regularly discuss and it also a problem internally for our own artists / developers. We hope to be able to improve thing in the future. Not always simple to deal with built and HDRP settings spread everywhere.

    Thanks for the feedback
     
    Korindian and rz_0lento like this.
  11. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    This I couldn't agree more.
     
  12. fct509

    fct509

    Joined:
    Aug 15, 2018
    Posts:
    108
    I'm currently working on a project that is using HDRP 7.5, and Motion Blur is on by default. When I look at the default HDRP settings, the only options for Motion Blur are the number of samples. Disabling Motion Blur isn't an option that is given to us within the quality settings. Maybe setting the number of samples to zero will disable it. Maybe setting the number of samples to zero will cause it to still run, but stop it from applying the results. We don't know what it does. I just got out of a meeting where one of the HDRP issues we were trying to figure out how to get rid of, was Motion Blur and during said meeting, I had the genius idea of, "What if we add Motion Blur?" If we add Motion Blur, then maybe can can lower the amount to nothing (or close enough). The worst part is: It worked!

    We got rid of Motion Blur in HDRP by adding Motion Blur (and lowering the intensity). How is that neutral by default? The way things work right now, removing the Motion Blur volume component will enable Motion Blur.

    Adding Motion Blur gives us the ability to stop Motion Blur from being applied.
    Removing Motion Blur, will apply Motion Blur.
    That isn't what the documentation leads us to believe, but it is how this works.

    Now, we could disable Motion Vectors because Motion Blur is built on top of Motion Vectors, but Motion Vectors might get used (in my case: are getting used) by something else.

    As the OP said: Why is it done this way?
    Also: I would like an official list of which Post Processing Effects just get applied when we don't override them. And, I would like that list to get posted into the official documentation for HDRP. Developers shouldn't need to be wondering why they are getting Motion Blur effects when they never added any Motion Blur effects to their projects.

    Edit: So, there is a way to disable Motion Blur without applying Motion Blur, and that's to fully disable Motion Blur within the project. We can fully disable Motion Blur by disabling it within the Frame Settings (not the Quality Settings). On the plus side, this will improve you rendering performance because it stops it from executing the code for Motion Blur. The project I was working on went from 5-6 fps within the editor to 10 fps inside the editor when I did this. So, it looks like this answers the question of, what does setting the influence to zero actually do. I'm still not happy that we get Motion Blur without adding a Motion Blur component (override) within the scene's volume.
     
    Last edited: Nov 15, 2020
    RogueCode likes this.
  13. RogueCode

    RogueCode

    Joined:
    Apr 3, 2013
    Posts:
    230
    Is there a way to view a list of every effect currently applied to a camera at a given time? I've gone through the same confusion as the above posters and it would make it a lot easier if I could put a camera somewhere in my scene and then open a window that lists every effect it has on it, and where exactly it came from.
    Kinda like viewing element styles in a Chrome with ctrl shift I, where it tells you exactly what is overriding what and what the end values are.
     
    fct509 likes this.
  14. chap-unity

    chap-unity

    Unity Technologies

    Joined:
    Nov 4, 2019
    Posts:
    766
    There's the volume debug that sort of do that. You can select your camera and component/overrides you want to debug and it tells you what volume have influence over it in real time !

    You can access it in Window > Render Pipeline > Render Pipeline Debug and then selecting the tab Volume

    upload_2020-11-6_10-45-50.png
     
    Leniaal likes this.
  15. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,279
    Regarding scattering around of settings - this is a problem for quality levels.
    I can have a different HDRP asset for each quality level to control some things but it is very varied - e.g. I can toggle AO or SSR by quality level this way, but suppose I want to disable shadows (set to 0 count and get error bug) or some screen-space effects by quality level? It can not be done so I end up having three global volumes to control further settings for quality yet disabling a feature on one of these does not always disable it, you have to set distance or intensities to 0!!
    Not good
     
    Marrlie likes this.