Understanding Frustum and Occlusion Culling in Unity3D

Jared Amlin
5 min readJan 5, 2022

--

You may have heard of these terms before, but what do they really mean? Let’s break this down piece by piece, and then get into using occlusion culling in your Unity project.

The medical definition of occlusion is the blockage or closing of a blood vessel or hollow organ. While occlusion in video games is not medically lethal, a similar line can be drawn.

Ambient occlusion is used in 3D software to create more realistic soft shadows by blocking the ambient light source with the object or objects casting the shadow. It detects each surface area and how obscured it is from the ambient light sources, to generate more realistic graphics. Similarly, an occlusion map is used to determine which areas of a 3D model should indirect lighting, and how much.

With occlusion culling, objects that are outside of the main camera view, or blocked by other objects in the scene, will not be rendered. This is a very powerful and useful tool when it comes to saving a whole lot of GPU processing while running a game. Could you imagine having a giant game map where the computer is constantly updating the entire map, rather than just the particular room the player is currently in? Occlusion culling really enables people to make modern games as large and beautiful as they are.

Before jumping right into occlusion culling, let’s talk about frustum culling. Unity automatically performs frustum culling, which means it will exclude all Renderers that are outside of the view of the Main Camera’s view frustum. More on that here

https://docs.unity3d.com/Manual/UnderstandingFrustum.html

The weak spot to frustum culling, is that it does not check if one object is being blocked by another object. Unity might spin it’s gears unnecessarily rendering objects that won’t be visible to the player. Occlusion culling prevents Unity from rendering objects that aren’t immediately needed. With that all being said, let’s get into setting up occlusion culling for your Unity project!

Navigate to Window>Rendering>Occlusion Culling.

--

--

Jared Amlin

I am an artist and musician, that is currently diving headfirst into game development with C# and Unity3D.