Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Feedback Ways to facilitate switching render pipelines.

Discussion in 'General Graphics' started by alexandre-fiset, Jan 21, 2022.

  1. alexandre-fiset

    alexandre-fiset

    Joined:
    Mar 19, 2012
    Posts:
    714
    I know that converting a URP project to HDRP and vice versa is not recommended, nor supported. Still, a lot of developers are going to do this for various reasons, including these two:
    • Developing asset store packages compatible across SRPs
    • Creating a game for PS5 using HDRP and backporting it to Switch using URP
    So I have a few suggestions to ease that process:
    1. It would be great if both URP and HDRP each had their own script compilation defines, like USING_HDRP and USING_URP (or SRP_XXX or else). What I do now is embed the two packages in my project and change their assembly definitions to support this, but that's some unpractical manual work.
    2. Have a HDRP Lit shader available in URP. Just a shader graph that works across both pipelines and use the same texture naming convention as HDRP (and the other way around too) would be extremely useful for porting.
    3. Exposing SRP-specific paramaters for lights on their specific additionnal data script. This way we could have light intensity of 1 on URP and 10 000 on HDRP. Then when switching from one SRP to the other, the light would use the currently in use value.
    4. Categorizing Volume Profiles so that not two Color Correction exist and collide.
    I think these three points are relatively easy to address and would be super useful for a lot of developers out there.
     
    Last edited: Jan 21, 2022
  2. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,589
  3. alexandre-fiset

    alexandre-fiset

    Joined:
    Mar 19, 2012
    Posts:
    714
    For packages yes you are right, but in the context of render pipeline, even if I set these defines in my own packages, the editor itself will still list the render pipelines components such as Post Processing effects. I believe having global ones is as essential as the #if UNITY_STANDALONE kind of defines.