'Unity', Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. And elsewhere (more info. R/Unity3D: News, Help, Resources, and Conversation. A User Showcase of the Unity Game Engine.
What you will get from this page:You’ll learn to assess when to use the High Definition Render Pipeline (HDRP) and how to start using it for production. Based on Jennifer S. Roig-Deslandes’ session from Unite Copenhagen 2019.
Among the most frequent questions Unity engineers get from creators are “What is HDRP?” and “How can I use it in my project?” So we put together this list of considerations to help you understand how you can use the High Definition Render Pipeline (HDRP) in your projects to get the most out of it.
Let’s start by answering a few questions to assess if your project is ready for HDRP:
- Are you on the right target platform?
The first question you need to ask yourself is if you are shipping on a supported platform. If you’re planning to ship on consoles such as Xbox One and PlayStation 4, Windows (DirectX 11, DirectX 12 and Vulkan), Mac (Metal), and VR headsets (PlayStation VR, Oculus Rift, OpenVR, Windows Mixed Reality), then we’ve got you covered. There’s currently very little support for Linux, and no support for Nintendo Switch, OpenGL, and mobile platforms.
- Are you in the right production cycle?
HDRP will be out of preview with the Unity 2019.3 release. We strongly recommend you use HDRP with that version onwards; with Unity 2019.3 Long-Term Support (LTS) and above, you will have full support. If you use HDRP with any previous Unity versions, you’ll have to do all of the maintenance yourself.
- Do you have technical pillars that are compatible with HDRP and production skill sets?
Working with HDRP requires a lot of upgrade and maintenance. To move from the Built-in rendering pipeline or the Universal Render Pipeline, you’ll also have to ramp up on technical knowledge for HDRP. Make sure that you and your team allocate some time to learn this tech.
- Is it the right tech for your artistic vision?
HDRP is grounded in physically based rendering and offers a unified lighting pipeline. Also, it comes with several tools for your artistic needs: Visual Effect Graph, Look Dev, and post-processes. For characters and environment, HDRP offers skin, hair, and eye shaders, as well as subsurface scattering and some support for terrain.
If you’re still deciding what render pipeline to use, here are a few things to consider. HDRP is supported with Unity 2019 LTS and above, and it comes with its own high-definition post-processing stack. It also comes with ray tracing support, VFX Graph support, Shader Graph support, and state-of-the-art graphics features.
If your project contains complex scenes, HDRP will scale better than with the built-in rendering pipeline. However, if you're planning to ship on both mobile and consoles, HDRP might not be the right tech for you.
HDRP is all about unified and coherent lighting. It's about performance and, of course, state-of-the-art technology.
Unified and coherent lighting
HDRP is a physically based rendering pipeline, which means that you can use real-life input to create your Scene. For example, the light’s luminosity is expressed in Lumens or Lux.
Artists are now able to author assets independently of the context. When the context changes, your visuals remain coherent within the project.
Performance at its heart
HDRP features are compatible with high performance on all the platforms we currently support. We want you to achieve your project’s artistic vision without compromising on performance.
State-of-the-art technology
HDRP uses technology that is standard for the video game industry: physically based rendering, physical lighting units, and physics-based components, all combined with user-friendly tooling.
Getting started: Creating your first project with HDRP
To get started with HDRP in your project, we recommend the following steps:
- Understand the tech through demos and samples.
All the demos that Unity produces are made with the same tech you're going to get when you download the HDRP package. Here are two of the demos that you can dig into right away: Fontainebleau and Spaceship. Both demos come with extremely handy documentation and blog posts that explain how they were created.
Every HDRP Package release also includes samples.
- Create a new project from the HDRP template in Unity Hub
If you’re ready to dive in, here’s how you get started with creating a project with HDRP in Unity: Open up the hub, create a new project, choose the High Definition Render template, and you're all set. The Editor will open and you can just play with it.
- Use the Render Pipeline Wizard
If things aren’t going smoothly, the Render Pipeline Wizard will help you identify any issues in your project. You can find it under Window > Analysis > Render Pipeline Wizard.
Convert your game: From the built-in pipeline to HDRP
If you’re already working on a project that uses the built-in render pipeline and you want to convert it to HDRP, here are the steps we recommend.
As a preliminary step, make sure you’re using the Unity version you need. To make a decision, review the documentation. When you open Package Manager and click on High Definition RP, you’ll see the version you’re running. Below that are some links – most importantly, one for documentation and one for the changelog.
Note that every major version of the package corresponds to a compatible version of Unity. You can find this information in the Package Manager. For example, the 5.0.1 version of the HDRP package is compatible with Unity 2019.1. Once you’ve established which version of Unity and corresponding HDRP package are the right combination for you, you can proceed with upgrading your project.
How do you actually upgrade your project?
First, make sure to remove the post-processing stack your project is currently using, because the HDRP has its own post-processing stack. To do this, select Post Processing in Package Manager and click Remove.
Then, you need to make sure you are in the linear color space. Go to Edit > ProjectSettings > select Player > go to OtherSettings to see the Color SpaceSettings. Change this value from Gamma to Linear.
After that, download the HDRP package. In Package Manager, select High Definition RP, and click Install. Make sure to update to the latest patch version for your Unity version.
To use HDRP in your project, you need to use a High-Definition Render Pipeline Asset. In the Project window, right-click on Assets and go to Create > Rendering and select High Definition Render Pipeline Asset. Then, make sure to assign it to the project: go to Edit > Project Settings > Graphics and select High Definition Render Pipeline Asset.
The Render Pipeline Wizard
If something doesn’t look right, that may be because the materials you’re using are not compatible with HDRP. Use the Render Pipeline Wizard to check that your settings, materials, and lighting are compatible with HDRP.
The Render Pipeline Wizard (Window > Analysis > Render Pipeline Wizard) gives you a full list of potential issues in your project. You can check the issues individually or click Fix All.
Convert your materials
Once all issues are fixed, you can start converting your materials. To convert your materials, go to Edit > Render Pipeline > Upgrade Project Materials to High Definition Materials; all Standard Lit/Unlit Shaders in your project will be converted to HDRP Lit/Unlit Materials for you.
Then, change your lighting from non-physical lighting units to physically accurate ones. After you’ve converted your materials and tweaked the lighting, you need to recreate post-processing.
Post-processing is already enabled by default for your project in Project Settings > HDRP Default Settings > Volume Components. For example, Tonemapping and Bloom are enabled by default, but you can change that through Volume Components. You can also create your own volume for your scene and add a new profile for it in this section.
Have a look at the HDRP settings. There are various places where these can be found:
- You can adjust project-wide settings in two places:
- HDRP Default Settings, let you specify, for example, if you want shadows or not in your project
- HDRenderPipelineAsset also has several settings for, for example, decals or post-processing
- Volume Components show the settings for your current scene, such as post-processing and sky. The settings can be local to your Volume or global to your scene.
- Camera-based settings enable you to tweak masks, Background, Projection, Field of View, and more.
Once you’ve established the settings for your project, you may want to make further adjustments.
There are several ways to customize the rendering process in the HDRP package.
- Custom Passes: To render a selected list of Scene objects with a different material, so you could render them a second time
- Custom Fullscreen Passes: To render a fullscreen quad with a specific material
- Custom Post-Processes: To render your own post-process
The HDRP source code is also available on GitHub, so you can adapt it according to your project needs. However, we strongly encourage you to make a copy to branch out and regularly integrate all the bug fixes Unity provides.
If you want to learn more about how you can start using the High Definition RP in your project, make sure to check out the HDRP Overview manual, read the most recent blog post, and join the discussions on the forums.
Yes!
Meh.
Unity3D allows developers to create 2D and 3D interfaces. In this tutorial I will be explaining how to set up a simple GUI (graphical user interface) or HUD (heads up display), which shows the lives/score of a player. There are currently several 3rd party UI building solutions for Unity, such as Autodesk’s ScaleForm or UniSWF. Both of these 3rd part solutions use Adobe Flash to create the UI elements, and are said to be quite intuitive, although I haven’t yet had the opportunity to try them myself. Although it should be noted that their is a good reason such 3rd party tools exist, as at the time of this tutorial, 2d interface and menu systems in Unity leave much to be desired…
Using your favourite graphics tool such as Photshop, create the assets you would like to bring into your game.
It’s nice to create some kind of backing for the text to sit on top to make it easy to read. Making sure the backing graphic doesn’t clash with the underlaying graphic styles in your game, It should stand out, and be easy to identify.
Unity 3d News
The game I am using this menu in is a marble game where the player rolls around picking up gems. So I want to track the players lives (marbles) and how many gems have been collected.
When your graphics are completed Export them individually as PNGs on a transparent background (pngs retains transparency and are lossless). Give your files meaningful names. Mine are named gui_balls.png and gui_gems.png
*Note – Adding a slight drop shadow can be a nice way to make your graphics stand out.
Open your existing project, or create a new one. In your project tab create a folder called ‘GUI’ and drag in your new graphic files.
In Unity3D, 2D elements must be added to the scene just like any other game object. Go to and select GameObject > Create Other > GUI Texture
Once you do this, Unity will by default add the Unity logo to the game scene, If you click the ‘Game’ tab you should now see the Unity3D logo in the center of the screen. You will also notice that ‘UnityWatermark-small’ has been added to the Hierarchy window.
Next order of business is to rename the object to something more suitable, change the object name in the inspector panel and hit Enter. I will give my GUI texture object the same name as my image file, ‘gui_gems’.
Now we need to assign the correct texture to our GUI texture, you can do this by selecting the small circle icon in the inspector to the right of the texture info.
This will bring up the ‘Select Texture’ panel which should list a variety of default Unity textures as well as your own. Find your image and select it, or if you can’t see it, type the first few letters of your image names (this is why nice naming conventions help, if like me you named your image ‘gui_something’ you could now see all the gui items just by typing ‘gui’ – this can be really helpful in a massive project with many GUI items).
Now jump to your ‘Game’ tab you will see the texture has updated. Nice!
Create a ‘GUI Text’ object just like we did with the ‘GUI texture’ object, by going to GameObject> Create Other > GUI Text
Rename the the object to something appropriate, I am naming mine ‘guiText_gems’.
With your guiText object selected, you will see the ‘Inspector panel’ has a lot of useful info and options. The default text is ‘Gui text’ change it to whatever you like. Also change the font size to about 20, and change your font colour so it is not the same colour as your backing.
If you switch to your ‘Game tab’ you will see that there is an issue…. the text is behind the graphic. This demonstrate how finicky the 2D ui process in Unity will become. To fix this you need to change the Z position of the Gui Text, this is not to be done in the 3d view as its very sensitive and you can easily move your text out of the game scene by just moving it 1 cm on screen. Instead change the Z position in the inspector to be .1 more than the graphic. eg if your backing graphic has the z coordinates of 100, change the text z coordinates to be 100.1
Once the text is in front of the graphic, alter the ‘Pixel Offset’ properties in of the text in the inspector to fine tune your positioning.
The default font used is Arial. If you want to use a custom font you need to a copy of the font file (another annoying obstacle). you can take fonts from the windows folder or use a site like dafont to download free font files. Just add a folder called ‘fonts’ to your project and drop the font files in there. Fonts can then be set the same way as textures were set for the GUI texture object. In the inspector, find the property ‘Font’ then click the circle to the far right, then select your font.
Unity Versions Download
Unity gives you some options to position the Gui Text and Gui Textures individually. This I have found is a major pain in the ass. I found it to be easier and more intuitive to add both the text and graphic to a parent component, then to position that component. So lets to that.
Create an empty game object by selecting GamObject > Create Empty
Name this object whatever you like, I named mine ‘HUD_gems’ then drag your two gui objects onto the new empty object to make them a group
Now with the Parent object selected, change the X and Y coordinates in the Inspector tab to an appropriate position by referencing your Game tab.
Repeat the process for more HUD items. I will show how to script these items in an upcoming tutorial,
happy game making!
Unity Games Free
John