The HDRP Time of Day asset helps you to create awesome and quick lighting setups for your project in HDRP.
We automate the generation and placement of many HDRP settings and object for you, so that you get a working configuration out of the box that you can fine tune to your hearts content.
The system can be used as standalone product without any additional tools, but also goes great alongside of our terrain generator Gaia – if you use it together with Gaia, please make sure to read the installation instructions below.
To use the system, you need to have Unity Editor version 2021.2 and higher in the HDRP Pipeline. (The system makes use of features solely found in this pipeline version and above).
If you install along an existing Gaia Pro 2021 installation, please note that Gaia Pro 2021 contains an older, embedded version of HDRP Time Of Day. This should automatically be handled by the installation process of the package.
If the automated installation runs into an error, or cannot be started due to compilation issues in your project, it can be triggered manually from this menu entry as well:
If you want to remove the embedded version manually, make sure to remove the folder Procedural Worlds\Gaia\Gaia Pro\HDRP Time Of Day first from your Gaia installation.
Then you need to delete these language pack files from within the Gaia installation:
If you install Gaia Pro 2021 after the HDRP Time Of Day system, you can rule out the directory and those language files in the package importer window to prevent them overwriting files in the HDRP Time Of Day installation.
Adding the system to your scene
To use the system, you need to add it to the scene first. This can be done in the following ways:
1. By adding the HDRP Time of Day System from the Window menu to the scene. (This allows to add the system without Gaia being involved at all)
2. If you have Gaia installed, you can add the system by selecting "Procedural Worlds Sky" in the Gaia Manager "Create Runtime" tab when adding the runtime components to your scene:
If you are running HDRP in Unity 2021.2, this will add the HDRP Time Of Day System then
3. By switching to "Procedural Worlds Sky" on the Gaia Lighting Object if a different Lighting Profile was set up before:
This allows you to bring in the system into scenes where runtime was already set up before.
Configuring the system
Once the system was added to the scene, locate the "HDRP Time Of Day" object in the scene hierarchy to configure it. If Gaia is part of the scene setup, you can find it below the "Gaia Lighting" object, if used without Gaia the system will sit in the scene root.
The System has a lot of settings that allow for complete customization of the look of the day and night cycle. Before you start, make sure the correct camera is set up in the system:
If not, drag and drop the main camera into this slot.
Time of Day Settings
To get a feeling for how the system works, look at the next section and adjust the time of day slider to the left and the right:
You should see an immediate impact on the lighting in the scene as the time of day changes:
The settings sections below reveal how this is controlled: Most settings that you can find in the different panels below is mapped to the current time of day via a curve mapping - The value at the left side of the curve is being applied as the time of day slider is all the way to the left (0:00 o' clock), the value at the right side of the curve is being applied when the time of day slider is all the way to the right (24:00). This means as the slider "travels through the day", the different settings that use an animation curve below will be altered accordingly.
For example when looking at the fog settings, imagine a line would be drawn from the slider to the curves below - the point where the line would intersect with the curves would be the value that is applied for that setting at that time of day.
You can tell for example that the fog distance is closer around midnight and further away around noon. Note that the "Fog Color" uses a color gradient - same principle, the fog color is selected according to the position of the time of day slider.
When clicking on the curves you can see a more detailed view that allows to edit the curve and which also reveals the scaling of the curve:
The scale can be vastly different depending on what the value is that we are editing - a distance as displayed above would be measured in meters, a multiplier value might be single digits only.
It would exceed the scope of this documentation to list every setting that can be found in the time of day system, but note that if you hover over the field descriptions and / or click on the help button in the top right corner of the UI, you will get on-screen help that explains what a value is good for:
Most of these settings directly relate to global HDRP volume components which can be found in the children objects of the HDRP Time Of Day object:
The great advantage of that is that you can still run additional local volumes and / or override volumes to override settings from the HDRP Time Of Day system since all settings are processed within the HDRP standard.
With a basic understanding how the settings are being processed, you can start the scene, and activate the "Auto Update" checkbox in the Time Of Day Settings, and enter a value like "100" as multiplicator.
You should now notice how the time progresses and the Time Of Day slider is pushed forward automatically:
Reflection Probe System
The reflection probe system is an optional system that uses a global reflection probe to cast sky reflections. This adds a great deal of lighting quality when using SSGI (Screen Space Global Illumination) As the later unity versions take reflection probes into consideration when applying SSGI.
You can enable the system in the time of day manager at the top in global settings. The reflection probe system requires a profile which contains all the data. Note that 2 profiles have already been provided for you a one night probe which only has 1 night probe and 5 probes throughout the day. Then there is a 24 hour profile that has each hour baked out, this gives the best lighting quality results.
1. Toggle to enable the system.
2. Probe profile that holds all the data used for the system.
3. Render mode, sets how the system should behave, currently only sky mode is available.
4. Render distance, how far the render distance of the probe will be render for. The probe follows the Player/Camera set at the top of the panel.
Is this system expensive? No it's actually very fast since the probes are pre-baked out and stored in the profile there is no realtime update on the probe so it does not need to update or bake out data. The system just switches out the data (Applies the probe and intensity) so it's very fast.
This is with SSGI on and the probe system disabled.
This is with SSGI on and the probe system enabled.
Here you can see how much the probe system effects the overall lighting quality of the scene. Now SSGI can be expensive and should only be used on low quality unless you have high gpu specs.
Post Processing Settings
The same principle of mapping the time of day to a curve (or color gradient) applies for the post processing settings panel as well. The only difference is that the values edited here fall in the realm of HDRP post-processing.
Ambient Audio Settings
The Time Of Day system comes with a feature to play different Ambient Audio soundloops while the time of day progresses.
The "Ambient" slots take on a soundfile that is being looped while the respective section of the day is active. The Volume settings help to fine tune the volume during the day and when a weather effect is running. The "Time Of Day Intervals" define the duration of the 4 different segments "Morning", "Afternoon", "Evening", "Night" during the day. (The setting is expressed as a scalar value where 0 would be the start of the time of day loop, and 1 at the end. The "0.25" from the screenshot above would translate to "the morning loop plays for the first quarter of the time of day loop".)
The system can override the fog settings when the camera goes under water - this helps with creating underwater VFX.
You can choose to apply these settings in sync with the Gaia underwater VFX, or you can switch the System Sync Type to "Custom" to integrate your own solution via scripting (see HDRPTimeOfDayProfile.ApplySettings())
The system allows you to define weather effects that can kick in as the time of day progresses.
The Min / Max Wait time determines how long it takes until a weather effect becomes active. The Weather profile contains override settings for the regular time of day settings. In this way the rain effect alters the cloud settings, fog settings and lighting settings etc. to make it appear like it is raining:
Additionally there are also particle VFX being played back that are supplied in the weather profile. During runtime you can quickly start and stop the weather effects with the respective buttons. To develop your own weather profile, you can use the "Copy Settings Over" button to copy the current active settings from the time of day system into the weather profile.
If you were to develop a new weather effect you could define how this effect should look like across the different times of day, then when you are happy with it, move the settings in the weather profile.
Lastly, the debug settings help with testing and developing your scene and the time of day system there in.
Round Up: Will round the 'Fetch Debug Information' to the nearest whole float value. (Example 0.445543 = 0.44)
Show Debug Log: Will enable debug logs ro be shown in the console that have not been forced. This should always be left enabled to log any errors the system has.
You can use the "Simulate Speed" and the "Start Simulation" button to run the time of day cycle in the editor.
"Fetch Debug Information" prints information about the current time of day values into the console.
"Refresh Time Of Day Components" forces an update on the components controlled by the Time Of Day system in case an outside influence changed settings.
Add Time Of Day Debug UI: Will add a simple runtime ui to control a few settings in the time of day. This helps give examples on how to modify settings at runtime.
"Remove Time Of Day" lastly will remove the system from the scene again.
These profiles are being stored in the project hierarchy of your project and hold all the settings of that section. Saving of those settings happens automatically. By duplicating those settings objects (or creating new ones from scratch) you can store variants of those settings and also apply them across scenes.
When you drag a settings object into that slot, the values stored within will be applied to the scene automatically. This equals “loading settings from disk”.
Please be aware that if multiple scenes are using the same settings objects, those settings will be shared between the scenes (which usually is desirable when you want one consistent configuration across the scenes).
If you want to have separate settings between scenes (e.g. Scene A has daytime lighting, Scene B has night lighting, there is no time of day progression), you would rather want to duplicate those settings objects and create individual settings for each scene:
You can override certain aspects of the lighting system by setting up volume overrides in the scene. If a camera enters such a volume, the regular values in the HDRP Time Of Day system will be overridden accordingly.
To set up such a volume, create an empty game object in the scene and attach the HDRP Time Of Day Override Volume Component to it.
A different type of override is the Interior Weather Controller – it allows you to block particles from weather systems inside of volumes – this can be used to block snow / rain from entering buildings or caves.
You can set these up the same way, but you will also need a collider on that object:
Volume Overrides Demo Scene
To give some example setups for those volume overrides, we added a demo scene under Procedural Worlds\HDRP Time Of Day\Demo Scene.
Run this scene in play mode and explore the different signs to get instructions about testing the different override effects.