Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Feedback Wanted: Lightweight Render Pipeline

Discussion in 'Graphics Experimental Previews' started by phil_lira, Sep 28, 2018.

Thread Status:
Not open for further replies.
  1. antoineConffx

    antoineConffx

    Joined:
    Jan 17, 2019
    Posts:
    8
    I've been trying to find which commit was done to fix this, do you have any ideas?
    thanks
     
  2. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    You're somewhat correct. multi_compile exists for things that can be toggled systemically (read: at run-time) and thus stripping must be dealt with at the Scriptable Shader Variant Stipping phase in the build process. If you use shader_feature, that implies that this is an author-time selection of features for that Material, so if no Materials use a given variant it gets stripped automatically.

    Simply changing to shader_feature may end up inadvertently removing variants that get changed systemically, which can lead to unexpected behaviour.

    Also, what you mention about run-time shader compilation isn't technically correct. Shader programs vary based on hardware so you will incur a run-time compile regardless. It's better to think of the build-time Shader compilation as something of an Intermediate Language. I think historically the only time this wasn't true was for console games when you knew exactly what the hardware needed.
     
  3. antoineConffx

    antoineConffx

    Joined:
    Jan 17, 2019
    Posts:
    8
    so as long as my shader variant collections define all the required variants we should be okay ?
     
  4. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    As per the Documentation I don't think that is definitively true, but I could be wrong. Because of Asset Linkages, I'd imagine in the fully automated process that the ShaderVariantCollection would validate it being included, I'm unsure if the new Scriptable Shader Variant Stripping bit in SRP could override some of that though.

    That said, if you aren't seeing issues you most likely are safe, as I'd imagine a missing Shader Variant would be quite obvious at run-time.
     
  5. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Sorry to bump this, it got lost on the previous page and hoping someone can respond to this, are there any other suggestions on how to get more than one light rendering?
     
  6. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Only Point and Spot are currently supported as additional lights. LightweightRenderPipeline.cs
     
  7. Driven

    Driven

    Joined:
    May 31, 2013
    Posts:
    77
    Unity 2019.1 and 2019.2 do not work with LWRP 5.2.3 - 5.6.1 on Android and Editor. When using 5.2.3 it's not possible to have 2 cameras (1 for UI) on Android device, because the background color doesn't get cleared thus you only see a blue screen with the elements rendered in the most top camera. With LWRP 5.3.1 and upwards this behaviour is even reproducible in the editor game view which means you can't play in the editor at all due to background color non clear bug.

    Is there any fix planned?
     
  8. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    It's not a bug, LWRP does not support Camera Stacking:

     
  9. Driven

    Driven

    Joined:
    May 31, 2013
    Posts:
    77
    Oh I didn't see that comment, thx. But it is working in 2018.3 and 4.X is there a reason why this was removed?
     
  10. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Ah right, thanks for letting me know. Apologies for not reading the notes properly.
     
  11. StefDevs

    StefDevs

    Joined:
    Jan 20, 2014
    Posts:
    23
    Check the last 2 or 3 pages, there is conversation about it. tldr; Camera stacking is hack-ey and not good for performance. They are working on better solutions that will hopefully fulfill camera stacking use cases.
     
  12. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    This might be too difficult to answer, but I was just wondering if there is an high level estimate on when you're hoping LWRP to come out of preview or any roadmap information you're able to share like 'it's hoped that it will come out or preview by 2019.1 or perhaps by Summer 2019 type estimate?? I know how hard this kind of question is to answer so sorry for asking anyway. But we're assessing our tool chain for a new project and I would really really like to use LWRP to gain features like the post processing v2, shader graph and to be generally setting up a new project to be more future proof on the way Unity is headed.

    However being in preview and deciding to go with it is currently a little risky for us, we're at a bit of a crossroad where we'd have to take a leap of faith that it will be solid enough for us to use by the time our internal milestones roll around, or whether we stick with the built-in renderer. It's a hard choice because either direction will vastly change what shaders, post-processing effects we use and develop, what materials and colour settings for environments. Once we choose one it will be harder to switch. Any info on a bit of a roadmap even if it was loose would greatly help us gauge the risk, thanks!! =)
     
  13. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    From a few pages back: ;)

     
  14. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    LWRP, SRP Core, and Shader Graph are/will be out of preview with Unity 2019.1 Public Release
     
  15. jason_yak

    jason_yak

    Joined:
    Aug 25, 2016
    Posts:
    531
    Ohhh wow!! Thanks so much for sharing that detailed roadmap and confirming that all of that is coming out of preview in 2019.1. Very excited to hear all of that. Ok, we’re in on LWRP for our new project :D super excited to take it for a spin :) thanks!
     
  16. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    @phil_lira Is it a known issue that AlphaTest is ignored during Light Baking?



    I was able to repro this in 4.x and 5.2.3. I have not tested against any of the 6.x versions.

    Edit: a word
     
    Last edited: Mar 6, 2019
  17. akilar1002

    akilar1002

    Joined:
    Jul 18, 2016
    Posts:
    70
    render loop call CetComponent cause gc, can avoid the problems?
     
  18. ItsJayD

    ItsJayD

    Joined:
    Mar 20, 2015
    Posts:
    6
    wait aren't the render pipelines meant to be production ready by 2019.3 not 2019.1?
     
  19. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    260
    My understanding is that LWRP will be out of preview (production ready) for 2019.1 and HDRP is targeting 2019.3 for being out of preview. LWRP is no longer shown as a preview package in the 2019.1 beta.
     
    ItsJayD likes this.
  20. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Just an update that the issue is not reproducible in LWRP 6.5. I have been diffing the files and making changes locally to anything that seems suspect, but to no avail. I'm curious if this might be a bug in the Lightmapper itself in the context of SRP. I was unable to reproduce the behavior in the built-in Renderer in our affected version, 2018.3.7.

    Edit 1: Filed a bug. Case # 1135899

    Edit 2: For posterity, this appears to be an issue with the Lightmapper as I had tested against 2019.1b2 and 2019.1b5 + newer and between b2 and b5 the same LWRP package begins to effectively respect cutout. Since the bug affects preview versions of the Package my guess is that no back port of a fix will be administered to 2018.3.
     
    Last edited: Mar 14, 2019
  21. martint_unity

    martint_unity

    Unity Technologies

    Joined:
    Jan 11, 2018
    Posts:
    15
  22. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Are culling layers for the base camera still supported?
     
  23. iamarugin

    iamarugin

    Joined:
    Dec 17, 2014
    Posts:
    883
  24. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    260
  25. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    The first thing that jumps out to me here is that the usage of additional GameObjects seems unnecessary as you yourself mention that in most general cases they will have the same position and rotation anyway. I would lobby for elimination of redundant data at every opportunity.
     
  26. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    Wouldn't the cameras have to be a component then? Since gameobjects in unity has to have at least a transform. While I was watching the video, I didn't look at the hierarchy at first so I was thinking the cameras were hidden and controlled through the UI until he started selecting them in the hierarchy.
     
  27. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Not necessarily. A Camera is really just a World to Camera and a Projection matrix once you get right down to it. (I'm absolutely oversimplifying here for the sake of argument.)

    If you wanted to right now you could write an additional Pass which changes those matrices (and perhaps some other scaffolding) and you would have a cheap 'Overlay' Camera.

    VR already does this in different ways depending on the mode, but for instance MultiPass it simply renders left eye and then right eye from 2 'virtual' Camera positions. You don't need 2 GameObjects or Transforms to do this at all.
     
  28. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    Ah, so it could be something similar to adding camera components to the main camera?
     
  29. Karearea

    Karearea

    Joined:
    Sep 3, 2012
    Posts:
    386
    Just pulled LWRP 5.7.2 from the package manger (2019.1.0b7), and it appears IBeforeCameraRender can no longer be found. Is this a regression, or has it been deprecated?
     
  30. andrzej_cadp

    andrzej_cadp

    Joined:
    Jan 27, 2017
    Posts:
    18
    IAfterOpaque is missing too. I'd like to know if there is any way to inject custom pass in 5.7.X.
     
  31. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    My suggestion would be to let the Additional Camera Data Component house this data. The UI could be reflected nearly identically in the Camera Inspector as @martint_unity showcases in the video.
     
  32. desertGhost_

    desertGhost_

    Joined:
    Apr 12, 2018
    Posts:
    260
    I understand the desire for a lack of redundant data, but I personally would prefer that each Camera be a component that can be attached to the same GameObject or different ones. I can think of several use cases where a user might not want the overlay camera at the exact same position / rotation.

    GameObjects, although not nearly as light as Entities, are fairly lightweight and having a few extra ones for a Camera setup is no big deal imho.
     
    Noisecrime likes this.
  33. bitinn

    bitinn

    Joined:
    Aug 20, 2016
    Posts:
    961
    As a year-long LWRP user, currently on 2018.3, I would like to see 2 things:

    - What's the upgrade path from 2018.3 to 2019.1? (Shader Graph included)

    - What's the upgrade path from 2019.1 to future release?

    I assume:

    - LWRP 4.x is dead, nowadays all my reported bugs are only fixed on 5.x or 6.x;

    - LWRP 5.x is for 2019.1, and 6.x is for 2019.2, but then what's the plan on maintaining 2 stable packages?

    - When 2019.2 comes out what happen to LWRP 5.x?

    All these talks on LWRP roadmap are great, all these sharing packages early are good, but where are the support and migration plans?
     
    FURKANKAHVECI likes this.
  34. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,980
  35. StefDevs

    StefDevs

    Joined:
    Jan 20, 2014
    Posts:
    23
  36. FURKANKAHVECI

    FURKANKAHVECI

    Joined:
    May 12, 2013
    Posts:
    27
    I have same questions
     
  37. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    244
    I'm not sure what you are referring to here, the new modular render pass stuff? we are working on putting together a post about it along with some videos showing some use cases.

    Yes this is a known issue, this is unfortunately due to the lighting system being reliant on hardcoded strings to find properties in the shader, in SRP/LWRP we wanted to not follow the past because it had some bad ideas, but this means we need to fix this by making the lighting system a bit smarter in which properties it uses for baking this information. Also in the mean time we tried to be smart by letting existing material upgrade and keep the existing properties, this is not ideal at all but was all we could do in the time. We have a high priority bug open for this and will be working on it in the coming weeks.

    Yes they are, in the video the property is not seen as it is collapsed in the 'Rendering' group.

    This is a good point, but a you mention lower down the page about a custom pass and just changing the matrices, we will be posting a video showing this workflow. We essentially have a configurable pass system for this that you can override the base camera matrices, mainly FOV and clipping planes, but this is one way we are solving some of the multi camera usage in LWRP without having multiple cameras since that is more excessive than whats needed.

    Yes this has been depreciated, now the way to achieve this is pipeline callbacks, the manual page doesn't have much in the way of info right now(must get on to that) but here you will find my usage in the planar reflections which I had to update from IBeforeCameraRender to the new system.

    This is also depreciated, it is replaced by the new RendererFeature system, we will again be doing a post showing usage of this, the new way is much nicer and will also help us to move forward with nicer tooling down the line.

    Currently it's a straight forward package update, there are some kinks such as some depreciated APIs of you have been making custom rendering hooks, some shader changes were done so there might be some API issues there too. But outside of that it should be fairly painless.

    This will be smooth, we will be keeping the path clean all the way through will upgrading between breaking changes(0.x.0) releases will be handled with either auto API upgraders otherwise we will be providing very comprehensive upgrade guides each release if anything is needed.

    Correct, and currently 5.x.x is our priority right now, and also right now 5.x.x and 6.x.x are in sync so fixes and features are implemented in both versions, as the 19 tech stream continues we will slowly leave 5.x.x behind but this won't be until we hit some breaking changes that don't get back ported to 19.1, but the idea is that you don't want to stay on the first version of a tech stream, and ideally you will keep updating until 19.4 and both unity and LWRP will be supported for 2 years after that point.
     
    FURKANKAHVECI, bitinn and Karearea like this.
  38. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    244
    Also I do want to apologise to all of you on the lack of communication and information lately, we are a small team and with 19.1 coming to a release soon and GDC, we wanted to make sure we get a good, solid foundation tech wise for LWRP done, this means we have been working around the clock trying to make sure this happens. In the coming weeks up to 19.1s release we will be making sure we get as much documentation done and plenty of examples with accompanying videos to help explain the new features and APIs that have recently changed.
     
    FURKANKAHVECI, Karearea, Immu and 3 others like this.
  39. StefDevs

    StefDevs

    Joined:
    Jan 20, 2014
    Posts:
    23
    bueno.
     
  40. antoineConffx

    antoineConffx

    Joined:
    Jan 17, 2019
    Posts:
    8
  41. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,980
    EDIT: it doesnt work on 2019.1
     
    Last edited: Mar 29, 2019
  42. liiir1985

    liiir1985

    Joined:
    Jul 30, 2014
    Posts:
    147
    Does that mean that we won't have a chance to use the production ready LWRP if we stick with Unity2018? Or there will be some degrees of backports, so it will be production ready but with less features?

    IMO, it won't make any sense if LWRP is production ready only for Unity2019, which isn't production ready itself :(
     
    Last edited: Mar 22, 2019
  43. FURKANKAHVECI

    FURKANKAHVECI

    Joined:
    May 12, 2013
    Posts:
    27
    Known Issues in 2019.1.0b8 under investigation
    Scripting Upgrade: Crash on loading scene after project upgrade form 2018.3 to 2019.1

    What happens if i upgrade to 2019.1 beta, my project scene all reference objects timelines scripts shader settings resets losing data ? Thats why most people stuck with old unity (2018,2017,5.6 etc. ((anti beta team v4 :p))).
     
  44. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Unity has already noted that support for 4.x (2018.3) has stopped. I would not count on back-ports.

    2019.1 will be production ready once it exits beta. This will likely be within the next few months if previous releases are any indication.
     
  45. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Either make a copy before upgrading, use version control, or don't upgrade until the issue is resolved. Betas are prone to issues like this and are to be used at your own risk.
     
    FURKANKAHVECI likes this.
  46. liiir1985

    liiir1985

    Joined:
    Jul 30, 2014
    Posts:
    147
    Unity 2019 is the latest tech stream, and it can't be considered as production ready till 2019.4 LTS(Or at least 2019.3). Technicall speaking Unity2018 isn't production ready yet either, although the LTS version of it is coming in the next 2 months.
     
  47. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    I'm not one to typically argue semantics, but there seems to be some confusion around that nomenclature. It seems vernacular like "Production Ready" and "Stable" are being conflated here.

    As per the Blog post about TECH/LTS: https://blogs.unity3d.com/2018/04/0...g-the-tech-and-long-term-support-lts-streams/

    "For those of you starting or in the middle of production, or just looking for the latest features, we offer the latest version of Unity with all the new features in the form of the TECH stream. For those of you who are nearing the end of production or are operating a live game, we have the LTS stream in which only bug fixes are added."

    From that paragraph it's pretty clear that TECH streams, out of Beta, are Fully Tested, Production Ready (read: can be used in Production) and LTS is what you want to try to ship on, for Long Term Support.
     
  48. liiir1985

    liiir1985

    Joined:
    Jul 30, 2014
    Posts:
    147

    Yeah, I read that blog post, and understand what it says. Unity did a great job and made very impressive progress for the last 2 yeast. But what I'm trying to say is in practise, x.1 or x.2 version are generally too buggy to use for projects that is gonna to be released before Unity x.3 version.
    And Unity advertised about LWRP in GDC 2019 that it will be production ready in 2019 Q1, but if it's only avaliable for unity 2019, that might mean for us to give it up totally. So what I need is a clearification that if we'd better not to use LWRP if our project is going to be released Q3-Q4 this year and do not want to put it on risk to release it with Unity2019.2. Because for LWRP 4.10 for its current state, we've already encountered some issues(well known issues that are fixed at 5.x/6.x branches) and don't think it's a good idea to convert the whole project to use this version of LWRP
     
    Last edited: Mar 26, 2019
  49. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    As Unity has stated, as of v5.x LWRP is no longer a Preview Package (read: Production Ready). When 2019.1 exits Beta (possibly sometime in the next few weeks), it will be Fully Tested (read: Production Ready).

    Unity has stated they are no longer supporting 2018.x for LWRP. So to use Production Ready LWRP you will have to be using at least 2019.1.
     
  50. liiir1985

    liiir1985

    Joined:
    Jul 30, 2014
    Posts:
    147
    Thanks, just wanna to be sure that 2018.x won't have chance to use Production ready LWRP.
     
Thread Status:
Not open for further replies.