Search Unity

Official What's new in 7.2.0

Discussion in 'Universal Render Pipeline' started by phil_lira, Feb 13, 2020.

  1. phil_lira

    phil_lira

    Unity Technologies

    Joined:
    Dec 17, 2014
    Posts:
    584
    Upgrade Guides
    We started writing upgrade guides to help you transition from previous versions of the pipeline. We will write upgrade guides for minor and major updates. Patch updates don’t require guides as they are essentially bug fixes.

    Camera Stacking

    In the Universal Render Pipeline (URP), you can now use Camera Stacking to layer the output of multiple Cameras and create a single combined output. Camera Stacking allows you to create effects such as a 3D model in a 2D UI, or the cockpit of a vehicle. It also allows you to composite post-processing correctly with world space UI.



    A Camera Stack consists of a Base Camera and any number of Overlay Cameras. When rendering cameras in a stack, the rendering is composited into a single render texture as if all cameras were a single one. In order to do this, the pipeline inherits several settings from the Base camera when rendering Overlay cameras. This is not only useful for performance but also allows you to configure consistently stacking rendering settings in the Base camera, such as viewport or HDR, and have those settings be automatically propagated to all cameras in the stack. You can still configure some rendering settings for each Overlay camera for optimal artistic control such as post-processing, shadows and use customized renderers with custom render passes.

    There’s still work planned to improve camera stacking solution in URP. Some of that work consists of:

    • Support for Base and Overlay cameras to receive and cast shadows from other cameras.

    • Cache culling results for cameras in the stack

    • Support for Camera Stacking in 2D renderer and when using Multi-pass VR Mode.
    For more information about how to configure and use camera stacking refer to the URP Camera Docs.


    Universal Rendering Examples Updated

    Universal Rendering Examples are updated to 7.2.0.
    Here are some of the examples that were added:


    • 3D Character Menu with custom blur post-processing.


    • 3D Cockpit with World Space and Screen Space Camera UI.


    • 3D Skybox with stacking of depth and stencil.


    • FPS shooter using Camera Stacking.




    Post-processing v2 in Universal Render Pipeline 2019

    While working on Universal Render Pipeline for 2019.3 we developed an Integrated Post-Processing stack that is better coupled with the pipeline. This allowed us to deliver several performance improvements in the pipeline. The new stack also supports new effects like Camera Motion Blur and the Volume Framework.


    Earlier this year we decided to drop support for PPv2 in URP in favor of this new integrated post-processing stack. However, the new stack is currently missing a very important feature for users: custom post-processing.


    Based on this feedback, we decided to add support to PPv2 in URP as a fallback mode in 7.2.0. This way developers will have a choice to still keep using PPv2 for the next 2 years in 2019 LTS. PPv2 is removed from URP in 2020.


    If you have the PPv2 package installed, there is now an option to select PPv2 stack from the pipeline asset. It works the same way as it used to work in LWRP and with the same limitations: no camera stacking and no support for Ambient Occlusion, Temporal Anti-aliasing and Motion Blur.


    You cannot use both PPv2 and the new integrated stack at the same time. Enabling one disabled the other. Also note that PPv2 is provided as a fallback option and doesn’t support new URP features such as camera stacking.


    VR Multi-pass mode
    Multi pass VR mode is now supported with Universal Render Pipeline. Multipass rendering is a minimum requirement on many VR platforms and allows graceful fallback when single-pass rendering isn't available.

    This also fixes some single-eye rendering issues that were caused because VR was falling back to MultiPass.


    2D Renderer Improvements
    Transparency Sort Mode and Transparency Sort Axis are features that are present in the built-in render pipeline but missing from URP. In 7.2.0, they are added back to the 2D Renderer.


    Now you can also change the default material that’s going to be used when you create new Sprites. This is useful when you have a custom Sprite shader that you want to apply to all new Sprites in your project.


    Blend Styles in the 2D Renderer Data are now automatically enabled/disabled, depending on whether there are 2D Lights that actually use them.


    If you are making an unlit 2D game but want to use the 2D Renderer due to Shader Graph, you’d be glad to hear that Sprites now render with a faster rendering path when no 2D Lights are present.

    Shadows on transparent objects

    URP now supports consistently transparent objects receiving shadows. This includes particle shaders as well.

    There is a new setting in the renderer asset to choose whether to enable or disable shadows on transparents globally.

    All stock and shader graph shaders will upgrade correctly to handle shadows in transparent objects. If you have written custom HLSL shaders to sample shadows check our 7.2.0 package upgrade guide.



    MaterialDescriptionPreprocessors
    Two new AssetPostprocessors and Shader Graphs add 3ds Max Physical Material and Arnold Standard Surface Material partial support for FBX files in the ModelImporter.

    Basic PBR material properties like Base Color, Metalness, Roughness, Specular IOR, Emission and Normals are imported and mapped to custom shaders in Unity.




    Sample of Arnold Standard Surface Materials in Maya


    Arnold Standard Surface Materials imported in Unity


    A word about post-processing in the new Integrated Post-processing stack (v3)

    You can already leverage the custom render pass injection system in URP to do custom post-processing. We want to provide you with a template to create such a render pass and that you can easily add to a renderer. for more information about how to do it and link to one example check this forum post
     
  2. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Just for clarification,
    1. what the difference between camera stacking and renderpasses?
    2. does camera stacking allow each camera to have its own resolution (say hi def UI on low rez scene geometry)?
     
  3. Arfus

    Arfus

    Joined:
    Mar 12, 2013
    Posts:
    29
    That awkward moment you have over 7.000 .fbx files in your project and the new AssetPostprocessors decide to go over every single .fbx file again... Already waiting over 2 hours for Unity to launch and I'm not even at 5%.
     
    soorya696 and Lars-Steenhoff like this.
  4. phil_lira

    phil_lira

    Unity Technologies

    Joined:
    Dec 17, 2014
    Posts:
    584
  5. phil_lira

    phil_lira

    Unity Technologies

    Joined:
    Dec 17, 2014
    Posts:
    584
    When rendering a camera there are several logical steps that composite your frame, things such as "draw opaques", "draw skybox", "draw outlines", "draw transparents", "draw post-processing", etc. These are what we call "logical" render passes. I say logical because they can turn out to be less actual render passes in GPU. To make it simple you can think of actual render pass when a render target switch occurs. It's possible for example that you render your entire frame with a single render pass.

    For a single camera it goes like:
    1) Do culling
    2) Execute a bunch of ScriptableRenderPass for this camera
    3) Resolve camera target to screen (if required)

    now for camera stacking, you want to continue rendering render passes to the same render target of the previous camera. So it goes like this:

    For each camera in the stack:
    1) Do culling
    2) Execute a bunch of render passes
    3) If last camera resolve to screen.

    In the end you can think of camera stacking as not resolving camera target to screen and just continue executing render passes until the stack is finished.

    It does if using Overlay UI and the UI is in the last camera in the stack.
     
  6. Arfus

    Arfus

    Joined:
    Mar 12, 2013
    Posts:
    29
    I don't think it's actually the same issue though. I upgraded URP to 7.2.1 and the moment I clicked update to 7.2.1 for ShaderGraph Unity decided to reimport every single fbx file again.

    I'm fairly certain that this is due to the fact URP has 2 new AssetPostprocessors (FBXArnoldSurfaceMaterialDescriptionPreprocessor & PhysicalMaterial3DsMaxPreprocessor).

    I'm guessing that Unity now decided to go over all the assets again, due to the fact there are new AssetPostprocessors for models. I'm obviously not 100%, but my specific issue has nothing to do with playerprefs deleting.

    Also, to note. Some assets take a fraction of a second and others take almost 10 minutes. It could also be that this is an issue related to our RemoteAssetCache, as the editor.log seems to refer to that over and over again.

    Example log:
    Start importing Assets/AssetPathPlusName.fbx using Guid(307e06e6fe1908a4ab48f17d5b8a544e) Importer(-1,00000000000000000000000000000000)
    Done importing asset: 'Assets/AssetPathPlusName.fbx' (target hash: 'cfdf65606761d2437b408f84e4b53699') in 0.080424 seconds
    RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(307e06e6fe1908a4ab48f17d5b8a544e) Importer(-1,00000000000000000000000000000000)' Target hash='cfdf65606761d2437b408f84e4b53699'
    RemoteAssetCache - Download - Metadata - success:true, namespace:81e94844d19a16919208533e08183531, key:98834b208eb36e0102de4f23f7f0054b​

    I'd love to give you guys an actual project that allows you to reproduce this, but there's no way I can send out a project with over 7000 assets...
     
    alexvector likes this.
  7. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    @phil_lira Just wanted to say thanks for your hard work with URP. I decided to use it for my latest game and am very much in love with it, because it empowers me but never gets in my way. If I want to do a certain thing, I find it much easier to do in URP than I do in built in.

    The quality of the rendering is outstanding, and the forward renderer system for managing things like stencil or depth is a stroke of genius. I'm concerned about multi cam perf in VR and so on but hopefully all will get resolved without a tile resolves being a big thing.

    Thank you!
     
    JoNax97, rustum, quixotic and 3 others like this.
  8. phil_lira

    phil_lira

    Unity Technologies

    Joined:
    Dec 17, 2014
    Posts:
    584
    @Arfus thanks for reporting we will investigate this.
     
    alexvector and Arfus like this.
  9. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    6,493
    Thanks for the answer it clarify a few things

    I would still like some more precision about how much I can push the resolution thing:

    1. Can I do High rez proximity vs a low rez rendered background (as done in KLM jets)?

    2. Render particles or foliage on a low rez render, then composite it with the high rez scene (as done with Grid the racing game)?

    3. Render the scene in low rez, but has just a few focus objects in high rez composited on top (like eyes of character, fence, wire, etc...)?

    4. Simulate a fixed foveated rendering that adapt to performance scaling (center stay high rez, but background and peripherie goes low rez, done in Mario Odyssey)?

    If not possible with URP, can a CRP allow to do that?

    Resolution tricks, with proper art direction, help with managing fillrates and performance when done cleverly. I think the official name is Extended Low Resolution Rendering.

    Thanks again.

    EDIT: what about anamorphic pixel rendering?
     
    Last edited: Feb 15, 2020
    Peter77 and JesOb like this.
  10. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,109
    Also will be amazing to have boolean operation on culling results. Like compute cull results 'A' from wide camera, then compute subset 'B' from 'A' using middle wide camera (may be with additional mask), from subset 'B' compute cull results 'C' for narrow(scope) camera.

    Then compute cull results for background rendering as 'A' - 'B' draw background on low res and then on top render 'C' in high res. This is rendering stack for frame of Scope Aimed game.

    upload_2020-2-15_15-1-6.png

    It will be great to have example setup like this in Universal Rendering Examples
     
  11. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,109
    Additionally suggest to remove default render pass from top and make it part of list. Just make it unremovable and may be Slightly different view but in place of actual rendering:
    upload_2020-2-15_15-32-9.png
     
    Immu likes this.
  12. Arfus

    Arfus

    Joined:
    Mar 12, 2013
    Posts:
    29
    That awkward moment it's still importing even after letting Unity do its thing for a full weekend...
     
  13. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I can't update to 7.2.0, I can only see 7.1.8 in the package manager. When changing the manifest.json version to 7.2.0 I get a not found error...

    The strange thing is I can get 7.2.0 in a new project.

    Please advise.
     
  14. Arfus

    Arfus

    Joined:
    Mar 12, 2013
    Posts:
    29
    Update to Unity 2019.3.0f6 and restart Unity.
     
  15. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I'm already using 2019.3.0f6. Unity has been restarted many times.
     
  16. alexvector

    alexvector

    Joined:
    Oct 9, 2019
    Posts:
    26
    Just to chime in on the FBX import issue, I tried upgrading our project to 7.2.0 last week (along with a full 2019.3 update) and we got the same FBX issue. Deleting the Library folder causes a rebuild of a few hours instead of minutes even when everything has already been cached on the Accelerator.

    I initially tough that it was related to the Accelerator ( even posted here https://forum.unity.com/threads/accelerator-not-working-for-some-assets.828081/ ) but I confirmed with a test project that URP 7.2.0 (and 7.2.1) causes the issue. With 7.1.8 everything is fine, so we went back to that for the moment.

    To repro I just created a new URP project, upgraded it to 7.2.1 and .connected it to an Accelerator. If I delete the Library folder. All FBX are imported and added the the cache server every time.

    Start importing Assets/ExampleAssets/Models/safetygoggles_low.fbx using Guid(6296e48663fd7ad46b1a2af507f871cf) Importer(-1,00000000000000000000000000000000)
    Done importing asset: 'Assets/ExampleAssets/Models/safetygoggles_low.fbx' (target hash: '239b35153d1c3d3c804a4ff4d78f79a6') in 0.137548 seconds
    RemoteAssetCache::AddArtifactToCacheServer - artifactKey='Guid(6296e48663fd7ad46b1a2af507f871cf) Importer(-1,00000000000000000000000000000000)' Target hash='239b35153d1c3d3c804a4ff4d78f79a6'​

    It does't take a long time with that small project, but if you compare the log with the same project but with 7.1.8, that one does not do the importing and AddArtifactToCacheServer every time, it actually downloads the artifacts.

    Looking forward to be able to use 7.2.x the new features look nice! :)
     
    JesOb and Arfus like this.
  17. Arfus

    Arfus

    Joined:
    Mar 12, 2013
    Posts:
    29
    Glad to see I'm not the only one with this issue. We've disabled the AssetPostprocessors for now. This seems to prevent the massive reimport times. Luckily we weren't planning on using these features anyways. So it's no gamebreaker for us.
     
    alexvector likes this.
  18. stephanedupont

    stephanedupont

    Joined:
    Dec 31, 2017
    Posts:
    14
    About the URP clashing with the new input system package.

    It still happen on 7.2.1.

    I see that the incriminated code is inside a
    Code (CSharp):
    1. #if ENABLE_LEGACY_INPUT_MANAGER
    region, but it still crashes. The code in the region seems to be executed even when the active Input Handling is set to the new Input System Package.

    Known problem? Am I missing something?
     
  19. stephanedupont

    stephanedupont

    Joined:
    Dec 31, 2017
    Posts:
    14
    If I understand this correctly (am I?) this allows for 2D games using a perspective camera to set this to orthographic and have the transparency sorting based not on the distance to the camera position, but on the position on the axis the camera is "watching" (usually Z-axis).

    Assuming I'm correct about this, is there a way to have this also for sprite rendering order, regardless of transparency? It seems the default behavior is to render them according to their positions to the camera position, so in the case of a 2D game with perspective camera, the sprite rendering order is not based on their position on the Z-axis but the distance to the camera (and the only fix I found is to automatically set the order in layer to something proportional to the Z position of the game object).
     
  20. AaronSmarter

    AaronSmarter

    Joined:
    Jan 31, 2018
    Posts:
    1
    Can't upgrade URP to 7.2 in Unity 2020.1.0 and 2019.3.0f6 via Package Manager. Am I missing something?
     
    cxode likes this.
  21. stephanedupont

    stephanedupont

    Joined:
    Dec 31, 2017
    Posts:
    14
    I think maybe you have to click on "all versions" of the package?
     
  22. cxode

    cxode

    Joined:
    Jun 7, 2017
    Posts:
    268
    @AaronSmarter I've been struggling with this myself on projects upgraded from 2019.2 and I finally figured it out.

    A manifest from before 2019.3 has this line:

    Code (csharp):
    1.  "registry": "https://staging-packages.unity.com",
    You have to remove that, otherwise you can't install some packages. I've observed this with URP 7.2 and InputSystem 1.0.0-preview.5.

    It's very frustrating that Unity does not remove this automatically in the upgrade process from 2019.2 to 2019.3. There was absolutely no indication it was causing problems. It took weeks from when I first noticed the problem and when I randomly stumbled upon the solution.
     
    Antony-Blackett and Immu like this.
  23. Livealot

    Livealot

    Joined:
    Sep 2, 2013
    Posts:
    228
    Thanks for sharing these great new Universal Rendering examples. I think mobiles scenarios when I think URP, so it would be awesome if the URP examples showed us how to handle common mobile scenarios like screen rotation, and being able to handle both portrait and landscape.

    In the mage example, it looks like the Player UI addresses this but there's something slightly off about the Shop UI. :)
    CamStackPortrait.JPG
     
  24. phil_lira

    phil_lira

    Unity Technologies

    Joined:
    Dec 17, 2014
    Posts:
    584
    We wanted to do this for day one but there are some cases we need to handle like you said, prevent removing and reordering and some other minor issues. It needs more UX work and it got de-prioritized in our list due to working on more urgent features and quality work.
     
  25. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,109
    OK
    Glad to know that some day UX will become better :)
     
  26. Fewes

    Fewes

    Joined:
    Jul 1, 2014
    Posts:
    259
    Thank you for making the very sensible decision to retire the screen-space shadow mask. This finally fixes the longstanding issue with aliasing you'd get when using MSAA, which was of particular bother when rendering for VR devices. Just wanted to ask if you've noticed any performance loss/gain from this change?
     
  27. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,981
    @phil_lira when can we expect actual documentation on URP? As @jbooth has eloquently put it in another thread, its gotten absolutely insane that there still is no docs for another 6-12 months. I can understand beyond a year ago not having any, I can even to some degree understand 6 months ago.

    But your now saying its production ready - but it has no proper docs?!

    Im still struggling to understand why this hasnt been addressed yet and it would be great to hear with some actual timeframes what is being done for when.
     
    Rich_A, cxode, Peter77 and 1 other person like this.
  28. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    So... 8.0.1 is out. What’s new in 8.0.1?
     
  29. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,981
    Yeah would be great to get this info and some proper docs. If its production ready but without documentation, its not production ready.
     
  30. Meceka

    Meceka

    Joined:
    Dec 23, 2013
    Posts:
    423
  31. seffles

    seffles

    Joined:
    Oct 2, 2013
    Posts:
    32
    This gives me confidence...


    [8.0.1] - 2020-05-25
    Fixed
    • Fix Changelog
     
  32. Abruzzi

    Abruzzi

    Joined:
    Feb 6, 2015
    Posts:
    44
    Hi!
    URP 7.2.1 and URP 8.0.1 has bug with Shadows on Terrain if you set "No Cascades" in Pipeline Asset Settings:

    upload_2020-3-5_15-43-1.png

    Shadows just do not render!

    How to repro: Just create new project 2019.3 + URP 7.2.1 or 2020.1 + URP 8.0.1. Create terrain and cube above them, you will see shadows, go to pipeline asset and change Cascades to No Cascades -> shadows disappear. Two or Four Cascades works fine!

    Thanks
     
  33. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
  34. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    779
    Me too. Good to know Unity will still be around in 3-4 months time! :)
     
  35. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,981
    The best changelogs are the ones that travel back through time.
     
    DebugLogWarning likes this.
  36. Shaunyowns

    Shaunyowns

    Joined:
    Nov 4, 2019
    Posts:
    328
    Hey, do you mind sending a bug report in on this? I've sent this post over also.
     
  37. Abruzzi

    Abruzzi

    Joined:
    Feb 6, 2015
    Posts:
    44
    Yeap I sent bug report via Unity "Report Bug...". Case 1226530 in fogbugz! Thanks!
     
  38. quixotic

    quixotic

    Administrator

    Joined:
    Nov 7, 2013
    Posts:
    122
    So, the features here are documented including camera stacking: https://docs.unity3d.com/Packages/c...nes.universal@7.2/manual/camera-stacking.html we are still working on improving our overall documentation and do have a new dedicated technical writer that recently started. What documentation would be most helpful for you?
     
  39. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,363
    how does the outline work?
    it has the same artifacts as reversed hull outline
    also it is very expensive : 39fps with, 46fps without

    upload_2020-6-21_19-3-43.png
     
  40. laurentlavigne

    laurentlavigne

    Joined:
    Aug 16, 2012
    Posts:
    6,363
    answer to me: drag and drop Outline PostEffect in Renderer of the Outline pipe and get magnificent cheap outline with no artifact
    upload_2020-6-21_19-31-18.png

    .... but also not much separation... is there any way to increase saturation on these outlines to get better separation within a character?

    upload_2020-6-21_19-31-33.png