capability vs performance?
accuracy and precision vs less?
greets
capability vs performance?
accuracy and precision vs less?
greets
I personally so far use HDRP.
HDRP supports less platforms. No mobile, no switch, and it’s gonna be pretty tough to get it to run on old gen consoles (PS4/xbox).
If you intend to target players with fairly weak hardware, HDRP is not a good idea.
HDRP has a lot more graphical features than URP. (Volumetric fog, Screen space global illumination, SSR, fancier shadows, tesselation, Temporal antialiasing, etc)
From my experience, the GPU lightmapper does a worse job when using HDRP, where If i switch to built-in or URP, it’s mostly fine. (using auto-UVs)
HDRP uses realistic lighting, exposure can be a pain sometimes. some people don’t bother with realistic values and do things the old way, until it feels right.
If your project is 2D, you’d be better served with URP.
My main issue with URP is the unbelievably slow development. Hopefully TAA lands in 2022, along with improved SSAO since currently it not only costs 2-3x compared to HDRP, its quality is pretty bad. I won’t even talk about volumetric fog
The trade off basically is HDRP has more graphical features built-in, comes with the engine and isn’t held back by weak platforms such as mobile. Performance requirements are a bit higher. Development is a lot faster compared to URP.
URP, less so, more of a blank slate but it’s also more customizable (especially when it comes to lighting from what I hear, where in HDRP it’d be quite a bit tougher) URP would probably be a good choice if your a shader wizard and plan to make many fancy graphical features by yourself. URP also supports switch, mobile. And has less CPU overhead compared to HDRP, this becomes less important once your project passes a certain size/performance threshold.
In the end, the only truly proven render pipeline so far is the old built-in RP.
May it rest in peace.
The two SRPs are divided by your target platforms. If you think of graphical features being whatever the targets support then you are on the right track.
The absolute wrong way to decide on an SRP is to think about what features you want, because if the hardware can’t do it then it’s tough luck. With HDRP you need compute shader hardware that also needs to be good at compute shaders, bandwidth etc. Memory consumption is dramatically different with both pipelines too, which bites people late in development.
URP can and will still make use of compute but you can fall back gracefully and support any platform without it, so porting is actually not a problem unlike HDRP where it may not be possible to port without a massive undertaking indies probably can’t manage.
URP recommended
PS4, PS5, xbox, nintendo, PC, laptops, mobiles, etc - basically everything.
HDRP recommended
Simulations, Arch VIS, movie making, high end PC and console only.
Fixed for you. On PS4 and Xbox One HDRP uses over 8-10 milliseconds of main thread CPU time on an empty scene. It’s a performance nightmare.
I wonder how they optimized BOTD and fountainbleau to run on PS4 and Xbox one
Because they are just small scenes with zero game logic and physics going on, so they can just burn the remaining ~20ms of main thread rendering stuff at 30fps.
A renderer shouldn’t use that much CPU, this is bad design at a fundamental level.
Sad thing is right back in the early days (before RT) it ran pretty well for a time. I think it’ll stay a problem until 2022 DOTS 1.0 Hybrid Renderer.
yea,one nightmare for me is Unreal people are running dense vegetations on a gtx1060 in 1080p 60fps while i can’t even get a similar HDRP scene without grasses to reach a stable 60fps on same graphic card.
Lets tag @pierred_unity and @chap-unity for awareness…
unity needs a GPU driven terrain and indirect instanced tree rendering soon… The performance of the new terrain demo sucked a lot didn’t ran well on high end aswell
while the uniengine one runs buttery smooth!!
The terrain demo is not optimized almost at all. The amount of triangles is insane. For a public demo it’s weird they thought it was okay to release it in this state.
There’s also some TAA ghosting/blurriness on all the foliage which happens because motion vectors are lost when using instancing, which the terrain does for trees/detail objects.
Honestly you can get pretty dense forests with billboards/imposters for trees, and indirect instanced grass. For the terrain just use a good pixel error value, and keep an eye on triangles.
Chugs more than Thomas the Tank Engine.
Wow I forgot how pathetic Unity had become! 3 fucking incompatible renderers!
Anyway, thanks for the low-down, guys, I’ll forget HDRP even exists.
7 incompatible renderers and counting
Steady on, that’s a bit extreme, no? URP is fine, Built-in is fine, just HDRP needs some room to do it’s work and it can’t if it’s held back by other issues.
Obviously not for asset authors.
I don’t think Hybrid Renderer is the solution, because Unity is still stubbornly clinging to CPU-driven rendering. While (AFAIK) Hybrid Renderer does use indirect instanced rendering, the indirect data is produced by the CPU. Even if it uses jobs to do so, even a modest GPU can churn through at least one order of magnitude more data than a 4~8 core CPU. We are one year into the 2nd console generation since the industry started moving towards GPU-driven rendering.
And Hybrid Rendering is a system built on top of SRP. It won’t help about the massive overhead you get from an empty scene because both URP and HDRP have a fundamental flaw: the bulk of their C# work can only be executed in the main thread. It’s worse in HDRP because to URP does much less stuff right now, in comparison, but merely preparing CommandBuffers every frame adds up pretty quickly when you’re not on high-end CPUs and since the process involves managed Unity objects (ComputeBuffers, RenderTexture, etc) none of it can be offload to a separate rendering thread.
Being able to do rendering on another thread is one of the things that should have been addressed at the beginning of the development of the SRP architecture. The new render batch API is a first step towards that, but I can’t help to feel having to “register” meshes and materials to get an IntPtr that can be used on jobs doesn’t feel very elegant.
URP isn’t fine. It’s been more than 4 years and it’s still lacking compared to built-in, with a ton of shader variant issues.
If the only benchmark for a RP is that it runs, then something’s wrong already.
Then there’s URP’s SSAO costing 3-4x that of HDRP while providing lower quality.
They are all fine. As an asset store developer, I work with all of them on a daily basis, with all 7 :). And I would say it is a problem for game developers too if they rely on the asset store. If not, you will be fine.
For instance, I start a project in URP 2020.3 LTS because that’s what unity advises you to use, and use some water shader from the store, then decide to move to 2021.3 LTS in a few months because I want to use the new terrain detail system. If for some reason, the water developer doesn’t update it, I’m stuck to 2020.3 or I need to find another water system or I need to fix it myself, costing development time.
So one will need to think not only about the render pipeline they choose but also the version they choose, the resources available (built-in features, assets, tutorials) for that pipeline/version.
In my experience and perspective:
HDRP is Unreal Engine
URP is the Unity Default
Standard is Frostbite game engine
I am speaking about lighting and graphics
So:
Default unity users can use URP
Standard fanboys can still on the built-in pipeline
UE4 fanboys can use HDRP and don’t thing about its performance
I can’t help but think there’s a lot of detail that would change your mind but everyone is entitled to their own opinion.
Said like a soldier in pain putting a brave face on. Fear not, I do very much know the pain asset authors go through. Some of them even monetise that very pain point because if they didn’t, Unity wouldn’t address it!