Global Illumination changes with the Unity 6 Beta (2023.3) release, we want to hear your feedback!
Hi all, following on from our request for feedback with the previous tech release, we now want to hear about your experience using the changes to global illumination we delivered with the Unity 6 Beta release. We do this so that we can make sure we are providing you with the best products for your day to day experience in Unity.
If you have experience with using the global illumination changes delivered with the Unity 6 Beta (2023.3) release, please help complete the survey linked below (extended until May 31st, 2024):
Feedback request survey: Global Illumination changes with the Unity 6 Beta (2023.3) release
Whatās changing with the Unity 6 Beta (2023.3) release?
Unityās Light Baker
C# Light Probe Baking API
With Unity 6 we introduce a new API for baking Light Probes. Baking no longer relies on the Lightmapping delegates, where the user gets callbacks during the baking process. Instead, the process is very explicit and free of side effects, for example enabling the user to control how many probes to bake at a time to balance execution time vs memory usage.
We use the APV probe baking editor code as the example for how to use the API, find this example here on github.
Documentation is available now: RadeonRaysContext, RadeonRaysProbeIntegrator and RadeonRaysProbePostProcessor.
Note that this API is only available for Light Probes. Other lighting data like Lightmap support is planned for a future release.
Adaptive Probe Volumes
Bake only Probe Volumes
Baking lighting data can take a long time, especially when including lightmap data in the build process. With this feature, we have enabled you to bake only Probe Volume data, significantly improving iteration time. This feature uses the first version of our new public C# Light Probe Baking API mentioned above.
In the Adaptive Probe Volumes Tab, you can choose to only update Probe Volumes using the Generate Lighting dropdown menu
Baking many probes uses less memory
In the past, baking large Adaptive Probe Volumes with many probes has been problematic, and canceling bakes in this use case could take many minutes. This was mainly due to too many probes being baked in a single batch, which would cause memory to spike.
With this improvement, we are able to lower memory consumption when baking many probes, and stopping the bake process is now much more responsive.
Virtual Offset now uses Unityās new internal Ray Intersector API
Adaptive Probe Volumes now use Unityās new Ray Intersector API to perform Virtual Offset calculations when baking probes. This replaces a temporary implementation which used a physics collider workaround for offsetting invalid probes embedded in meshes.
These improvements result in a considerably simpler authoring workflow, with much faster lighting data generation.
APV Sky Occlusion
With this feature, we enable creators to apply a dynamic time of day lighting scenario to their virtual environments. You can now manually change or you can script (i.e. Shader Graph, Timeline) sky settings and see Light Probe-lit indirect lighting from the sky update in real-time.
In HDRP we have enabled sky color to be sampled dynamically from the sky.
In URP, ambient probe real-time updates is not yet supported. However, sky color can be animated (scripted). Our recommended min-spec device range is GLES 3.2 and above.
Using Sky Occlusion can achieve more color variations of static indirect lighting from the sky as compared to APV scenario blending.
URP: Blend Lighting Scenarios
Baked lighting is inherently static and limits the ways in which creators are able to build more interesting, dynamic experiences like time of day, or on/off lighting scenarios.
Now at feature parity with HDRP, with āBlend Lighting Scenariosā, you have the ability to bake individual probe volumes lighting scenarios to be used in your virtual environments, and blend between them at runtime using scripting.
This way there is no need to duplicate the scenes to store multiple probe volumes bake results and one can easily swap the baked lighting data for day/night transition or switching lights on and off in a room. For developers, it can also be very useful to compare multiple baked results and iterate more quickly. Our recommended min-spec is GLES 3.2 and above.
Multiple lighting scenarios can be baked then blended at runtime. This only applies to probe volumes data, other elements like lightmaps, lights position or intensity need to be handled manually.
APV is now supported with AssetBundles / Addressables
Previously, APV has not been compatible with AssetBundles / Addressables. With this release, APV will now support the AssetBundles / Addressables workflow, however at the expense of Disk Streaming.
Note that one drawback of this option is that itās now impossible to partially load APV data in memory since they are regular assets. This means that in multiple scene setups, the memory footprint is that of the full baking set instead of just the loaded scenes.
This new optional code path can be enabled in the Graphics Global Settings in the new Probe Volume tab.
APV disk streaming now supports a non-compute path in URP
Disk and GPU streaming is now supported with all platformed that run Adaptive probes volumes.
Probe Adjustment Volumes
Probe Adjustment Volumes are an important tool at the artistās disposal when fixing-up problem situations in probe-based lighting setups. In Unity 6, we have made some usability changes to improve lighting quality, ease-of-use and increase iteration speeds.
Probe Adjustment Volumes: Workflows
Automatic isolation of probes is a new feature, enabled by default when placing Adjustment Volumes. Now, probes which are not affected by the Adjustment Volume can be hidden when placing and sizing the volume. This should make it easier to see what you are affecting when working in crowded Scenes.
Automatic isolation of probes is a new feature, enabled by default when placing Adjustment Volumes.
Further to this, probe lighting data can now be baked directly from the Probe Volume and Probe Adjustment Volume components. This is a convenience allowing faster iteration and the ability to generate probe lighting data without needing to also compute expensive lightmap data.
When placing Probe Adjustment Volumes, it is now possible to quickly preview your changes by using the āPreview Probe Adjustmentsā feature directly from the component. Iterating to find just the right setup should be much easier!
Probe Adjustment Volumes: Override Sample Counts
The new āOverride Sample Countsā mode available for Probe Adjustment Volumes in Unity 6 provides users with precise control over how baking time and quality is distributed throughout the Scene. Now problem areas with noisy probes can be easily fixed-up by locally increasing sampling. This allows areas with challenging lighting conditions - such as deep interiors - to be quickly improved, especially when using the new preview features described above!
With Probe Adjustment Volumes itās possible to override the number of samples for a specific area
Reduced light leaking through limiting noise
When using multiple subdivision levels, one can use sampling noise to hide the visible seams. However, in interiors this would often cause light leaking issues because the noise could easily push the sampling position through a wall, resulting in overly bright or dark pixels.
This improvement limits the direction of the noise in a cone toward the camera, considerably reducing the risk of light leaking when using sampling noise in complex environments.
The amount of noise remains the same, but when the noise is directed in a cone towards the camera, there is significantly less leaking
Known Limitations
Adaptive Probe Volumes in URP do not support lighting normalization for reflection probes.
Enlighten Realtime GI deprecation path notice
Note that Unity 6 is the last supported release for Enlighten Realtime GI. You can find more details on our previously communicated deprecation path in the Update on Global Illumination 2021 forum post .
More information about the previous 2023.x/Unity 6 Beta (2023.3) releases
Here are links to previous requests for feedback, for the 2023.1 and 2023.2 tech stream respectively: