In the past, there was only Built-in RP, so it was very easy to start a 2D or 3D project. However, nowadays, the project must be started according to its needs, so you may wonder, what does the project need? To answer this question, the following factors must be considered:
- If a video game is being developed for a PC you can use any of the three Unity Render Pipelines available since generally, a PC has larger computing power than a mobile device or a console. Then, if the video game is aimed at a high-end device, does it need to graphically look realistic? If so, you could start in both High Definition and Built-in RP.
- If the video game is wanted to be graphically in medium definition, you can use Universal RP or, as in the previous case, Built-in RP too. Now, why does Built-in RP appear as an option in both cases?
Unlike the previous ones, this Render Pipeline is much more flexible, hence, it is much more technical and does not have pre-optimization. High-Definition RP has been pre-optimized to generate high-end graphics, and Universal RP has been pre-optimized for mid-range graphics.
Another important factor when choosing the Render Pipeline is the shaders. Generally, in both High-Definition and Universal RP, shaders are created in Shader Graph, which is a package that brings an interface that allows the development of shaders through nodes.
This brings with it a positive and negative side. On the one hand, you can produce shaders visually through nodes without the need to write code in HLSL. However, if you want to upgrade the unity version to a higher version during production (e.g. from 2019 to 2022), it is very likely that the shaders will stop compiling because Shader Graph has independent versions and updates.
The best way to generate shaders in Unity is through HLSL, since this way you can ensure that your program compiles in the different Render Pipelines and continues to work regardless of the Unity update. This concept will be discussed later when reviewing the structure of a program in HLSL in detail.