Unity Render Pipelines | What are They and Which Should you Use
If you've been working with Unity for a bit, you've probably come across the term "Render Pipeline", but what actually is a render pipeline and what does that have to do with you and your game?
All games have to have a render pipeline, and even if you don't know which one you're using, you definitely have a render pipeline in your game. These are really important because they can impact graphics quality and performance and you don't want to get to the end of development only to realize that you can't launch to certain platforms. And while it can sound really intimidating, I promise that if you stick around you're going to understand what they are and which one you should be using.
What is a Render Pipeline in Unity?
Unity uses Render Pipelines to determine how to take the information in your game's scene and display it on your screen. That's it.
Unity comes with a default render pipeline, but render pipelines are not a one size fits all approach, and not all render pipelines fit every type of game.
If you're creating a gorgeous, intricate 3D game that you only plan to launch to PC or console, you probably don't care about optimizing for mobile performance. On the other hand, if you're creating a cartoony, casual game for mobile or Switch, you probably don't care about having to render super high-quality graphics.
For years, Unity only had 1 render pipeline, the built-in pipeline, that tried to fit the "one size fits all" approach and wouldn't allow developers to create their own custom pipelines.
Developers kind of had the obvious question: "What do I do if I want something more custom?"
Well, that, is exactly what Unity has done in the past couple of years. Enter the different Render Pipelines.
Unity has 3 main render pipelines:
- Built-in Render Pipeline
- High Definition Render Pipeline (HDRP)
- Universal Render Pipeline (URP)
Think of HDRP and URP as sort of presets that Unity has built for you because you actually can make your own and customize your own render pipeline if you are so inclined.
But let's get into what these are actually built for.
The Built-in Render Pipeline
If you're starting a new 2D or 3D project, you will by default be using the built-in render pipeline.
The built-in render pipeline has been the default and standard for many years, and is still a perfectly viable solution for making your games. When in doubt, it's a good place to start, since it has optimizations for both PC and mobile. The only caveat here is that it's not particularly great for either. Keep in mind, up until a few years ago, this was the only option so it had to cover a wide variety of scenarios. The built-in pipeline is kind of like those stretchy dresses that claim to fit everyone. Yes, they fit everyone, but are they really doing anyone any favors? That being said, many developers still choose to use the Built-in over other methods, because they're already familiar with it, and there's tons of support. And, as we say in the South, if it ain't broke don't fix it.
But with that being the only option, many developers started to complain that they couldn't customize the render pipeline to their own games. Because why optimize for mobile and sacrifice graphics when you only plan to launch to higher-end consoles and PC.
Enter HDRP.
The High Definition Render Pipeline (HDRP)
So after facing a lot of complaints, Unity ends up creating the High Definition Render Pipeline, that's designed specifically for game developers who want to make gorgeous, 3D, realistic games and launch to high-end consoles and PC. With HDRP, Unity releases a bunch of enhancements having to do with lighting, shadows, atmosphere, and cinematic post-processing effects. Now, these things are very GPU-intensive, but with mobile and switch being out of the picture, you can have all of these effects and not worry about being held back by the "lower-end" consoles. (Sorry Switch I love you boo)
So Unity creates this, but game developers still weren't happy, because now PC game developers have this shiny awesome pipeline, but what if I want mobile optimized? Or both? What if I want great graphics and great performance and want the ability to launch my game to any platform?
So Unity goes fine, I guess we can do that.
Enter URP.
The Universal Render Pipeline
If you want the best of both worlds, that is great graphics and performance, that's where URP comes in. While it may not have all of the graphical rendering capabilities that HDRP has, if you want great graphics without sacrificing performance, URP is where it's at--Especially if you want the flexibility of being able to launch to any platform.
URP also has access to some of the new features that Unity has created, such as better post-processing effects, and a built-in shader graph. It should be known that Unity fully intends to phase out the built-in render pipeline in favor of the Universal Pipeline.
Now all of this sounds great, but before you start upgrading all of your projects to URP, there are still a couple of things to keep in mind.
Why Not Switch?
Even though HDRP and URP have been out for a few years, there are a couple of problems:
- Support is limited--Lots of tutorials and documentation online focus solely on the built-in pipeline
- Assets on the asset store haven't caught up yet--If you want to be able to use any asset from the Unity Asset store, nearly all are going to support the built-in pipeline, but finding assets that support HDRP and URP can be a little tricky sometimes, and even big studios are struggling with converting all of their assets over to the new pipelines.
Knowing that it may be challenging to build out the game you want to make, especially if you're using a template or asset pack that doesn't support the other pipelines.
Now I know that's a lot of information, but let's keep it simple. If at all possible, use URP or HDRP. If you only want to launch to PC and higher-end consoles and you want to prioritize great graphics, go with HDRP. For everything else, go with URP. However, if you're not comfortable with doing that, that's still totally okay for now.
That's a good rule of thumb to have, but sometimes it's just not feasible, so if you feel unsure, it's still perfectly okay to use the built-in pipeline.