Using Reflection Probes in Unity3D and the URP
In real life, just about everything has a reflective quality to some extent or another. While stainless steel and other metals offer a lot of reflectivity, even soft materials such as a pillow offer some amount of reflection to their environment. While reflection probes in Unity and the Universal Render Pipeline won’t yield the same photo-realistic results as the screen space reflections available in the HDRP, they will give your scene some nice general reflectivity. When it comes to developing for mobile devices or other platforms with less processing power than a modern gaming console or PC, reflection probes are your best friend.
To create a reflection probe, navigate to GameObject>Light>Reflection Probe.
You should now see the reflection probe show up in the hierarchy.
The scene view will show the reflection probe as a smooth chrome sphere. The spherical reflection probe works like a camera that captures it’s environment in 360 degrees, and then places that data into a cubemap.
I want reflections throughout this entire scene. Anterior and lateral orthographic views can be quickly accessed with the Scene Gizmo, which is handy for relocating the probe to the center of the scene environment.
With the Gizmos visible, you should be able to see an outline showing the current size of the reflection area box. Reflections will only be shown within the box, so let’s make it as large as this room.
With the reflection probe selected, click the edit bounding volume button.
The box becomes more visible, and there are central points on each side that can be pushed and pulled.
The Scene Gizmo and the orthographic view is once again used to quickly scale the size of the reflection bounding box up to that of the current game scene.
Reflection probes are more powerful of course, with reflective surfaces. To show some glossy reflections here, I bump up the Smoothness on my ground texture, which will make it very reflective.
The intensity slider on the reflection probe can be adjusted for intense or mild reflections. Beware the power of pumping up the reflections into blinding light!
Here is what the intensity slider looks like in the scene view as I adjust it.
The Cubemap Capture Settings have some handy adjustment options, with Resolution probably the most notable.
The main issue with reflection probes in the Universal Render Pipeline, is that they are not perfect. As you can see here, the reflections move about on the floor and aren’t always lined up the light source casting them. Ultimately though, these kind of reflections are reserved for builds where you don’t think the processor will be able to handle the perfect screen space reflections offered in the High Definition Rendering Pipeline.
These are low memory cost reflections, and I would be happy with this overall look on a mobile game, and it should run smoothly as well.
Here you can see the difference of a single reflection probe in the scene view, as it turns on and off .
Being that this is the end of this series into the Universal Render Pipeline, I thought I would share a montage of mostly still shot gifs from around the environment.
A cool fog sets the mood.
Go ahead and push random buttons on the computer. See what happens…
You probably don’t want to get too close to those test tubes.
Great, now you want to check out the zombie up close and personal. Yeah…no danger there…
Here is a snippet of me running through the scene using Unity’s first person controller asset.
I hope you will join me in my next article where I begin to revamp this game scene using the High Definition Render Pipeline. Thanks for reading!