Exploring Unity's High Definition Render Pipeline

Apr 14, 2020 at 10:00 am by nemirc

Exploring Unity's High Definition Render Pipeline

Even if Unity has been releasing new versions, I had opted to remain on version 2017 (currently on long-term support, or "LTS") because that was the last version to support PlayStation Vita, one of the platforms I develop for. What that means, obviously, is that I have been missing new features that have been added to newer versions of Unity. Something you need to know is that HDRP does not support OpenGL, only DirectX, Metal and Vulkan.

Recently, I got Unity 2019 because I wanted to support some of the new rendering features for one of the shaders I have developed (a skin shader). While doing that, I decided to take a look at the new High Definition Render Pipeline in Unity. The High Definition Render Pipeline (or HDRP) is defined as "a modern rendering pipeline that features advanced material types" and is meant to be used for games and platforms that support Shader Model 5 (DX 11 and above).

The first thing I noticed when I created a new scene is that the new scene includes a Sky and Fog Volume, and a Scene Post Process. The second thing I noticed is that the scene looks different, meaning a little darker. That’s actually caused by the Sky and Fog Volume (turning it off will make the scene look more similar to the base Unity scenes using the Standard renderer).

Materials are pretty much the same as the Standard material, but these ones support HDR for the emissive color by default. If you are upgrading a previous project to HDRP, you have the option to upgrade all your project materials to HDRP materials, which is a big time-saver if you have a lot of materials. However, this may not work if you had written your own shaders, and it will definitely not work if you were using Amplify Shader Editor (however, Amplify SE supports HDRP so you can manually edit your shaders to make them HDRP compatible).

One thing I like about the HDRP is how you can use a Diffusion Profile to create accurate SubSurface Scattering, which can be used for things like wax, milk, marble and skin. This makes the creation of realistic skin a lot easier than using the Standard renderer. In the end, I’d recommend you creating your own Diffusion Profile (that’s as simple as duplicating the existing one and tweak it to fit your needs), since this asset’s configuration depends a lot on your object’s scale in the game world. When you create your Diffusion Profile, the first thing you need to do is add it to the HDRP configuration, so it’s used by the engine (by the way, if you simply drag and drop your Diffusion Profile onto a Materia’s corresponding setting, Unity will prompt you to add it to the configuration).

One thing I don’t like is how feature-limited HDRP is right now. I often create my own shaders, so I am used to doing certain things. However, when creating HDRP shaders I noticed I can’t, for example, use shaders with custom lighting modes. Another thing I noticed is that, it seems that (at the moment of writing) real time GI is not supported. So far, I have never used real time GI for any of my games, so that is not really an issue for me. However, others might find that to be a big issue.

The HDRP includes a sample scene that you can explore. It’s a simple scene but it shows a very nice rendering quality. I got the impression the scene light was a little bit too bright, though (by the way, if you see the scene above, with the women, the same happens). Another thing is that auto-exposure is turned on by default. Auto-exposure is meant to simulate how your eyes adapt to brightness, by increasing exposure when you are in the dark, and vice versa. However, the setting is too wide, and that causes dark areas to be brighten up a lot. I really dislike this effect, so I am glad to know I can either tweak it or turn it off from the Post Process object.

Even with its limitations, HDRP is worth checking out. Personally, I will see what it can do for one of my company’s current projects, since I do think that HDRP can make games look better, if I take the time to configure the renderer.






Sign up for our newsletter

This website uses cookies to ensure you get the best experience possible More Info
Got it!