Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Resolved Runtime Graphics & Quality Settings Menu

Discussion in 'SRP Dev Blitz Day 2022 - Q&A' started by Andy-Touch, Sep 29, 2022.

  1. Andy-Touch

    Andy-Touch

    A Moon Shaped Bool Unity Legend

    Joined:
    May 5, 2014
    Posts:
    1,445
    Hi devs!

    Making a graphics and quality settings menu is a very important requirement for PC games; and is fairly tricky to make with SRP. Settings needed to be runtime accessed are scattered everywhere; on various renderer assets, built in systems (QualitySettings, GraphicsSettings, etc), components that live in scenes etc. And some of the time the required values are sealed and/or can not be set without some sort of reflection script; for example, this community-made UnityGraphicsBullshit is a foundation many people build off of as a work around.

    The current recommendation of just setting up multiple renderer assets (for High, Medium and Low) and swapping between them in Quality Settings does not align with what settings options gamers require today. They ask for individual custom settings per render 'topic' so you can tune Texture quality seperate from Shadow quality seperate from Reflection quality etc. Look at the quality menu of any AA or AAA game released in the last 10 (or more!) years.


    My main question is: whats the roadmap for the workflow of making an in-game graphics & quality settings menu to NOT be a pain? Especially when it comes to mixing URP and HDRP in the same project?

    (I know I raised this a number of times during the development of Gigaya as we were tackling this, but as im on the other side of the fence now in community-land ill raise it publicly here. :D)
     
    Last edited: Sep 29, 2022
  2. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    244
    Hi Andy!

    Yes! we are very much looking to solve this, it's a major pain point when trying to develop truly cross platform experiences.
    There are a few things here we are looking at:
    • Getting parity with HDRP to allow lighting settings similar to what you have asked above to be controllable via Volumes
    • We will be adding Public API to set any values on the pipeline asset that do not require a dedicated shader variant
    There has been discussions(no solid plans as of yet) to have settings on a pipeline asset that you can toggle or flag somehow to tell the SRP that a you want to change this settings dynamically at runtime or to set it in stone, this way we can strip variants when you know you are not wanting to dynamically change a setting and keep the variant when you do want it to be dynamic. But again there is no solid plans and there is required work going on in the shader pipeline to allow this to be possible in the future.

    As for that script, it seems like a good path to unblock stuff atm, though it does use reflection which can be not great. If all that someone needs is to enable/disable shadows across the scene it's better to sue the shadow checkbox on the camera, but this is the only thing really available out of the box right now.
     
  3. Andy-Touch

    Andy-Touch

    A Moon Shaped Bool Unity Legend

    Joined:
    May 5, 2014
    Posts:
    1,445
    Thank you, Andre! Looking forward to when these land in a release. :)
     
  4. Andre_Mcgrail

    Andre_Mcgrail

    Unity Technologies

    Joined:
    Dec 9, 2016
    Posts:
    244
  5. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,237
    Not sure why the idea of being able to change all these options was not factored in during development of URP, I mean it's expected in PC games of the last 10 years or more as @Andy-Touch touched on (excuse the pun).

    There needs to be more actual game developers/development going on inside Unity.
     
    vivian-a and JamesArndt like this.