# Perform Frustum Check

**URL:** <https://forums.unrealengine.com/t/perform-frustum-check/287524>\
**Category:** Cinematics & Media\
**Tags:** culling, visibility, unreal-engine, question\
**Created:** [July 6, 2014, 12:42pm UTC](https://forums.unrealengine.com/t/perform-frustum-check/287524 "2014-07-06T12:42:30Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![TooManyCrashes](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@TooManyCrashes](https://forums.unrealengine.com/u/TooManyCrashes)\
**Post date:** [April 7, 2015, 6:57pm UTC](https://forums.unrealengine.com/t/perform-frustum-check/287524/6 "2015-04-07T18:57:31Z")

</div>

You can do it like this:

```
bool IsInFrustum( AActor* Actor)
{
	ULocalPlayer* LocalPlayer = GetWorld()->GetFirstLocalPlayerFromController();
	if (LocalPlayer != nullptr && LocalPlayer->ViewportClient != nullptr && LocalPlayer->ViewportClient->Viewport)
	{
		FSceneViewFamilyContext ViewFamily(FSceneViewFamily::ConstructionValues(
			LocalPlayer->ViewportClient->Viewport,
			GetWorld()->Scene,
			LocalPlayer->ViewportClient->EngineShowFlags)
			.SetRealtimeUpdate(true));

		FVector ViewLocation;
		FRotator ViewRotation;
		FSceneView* SceneView = LocalPlayer->CalcSceneView(&ViewFamily, ViewLocation, ViewRotation, LocalPlayer->ViewportClient->Viewport);
		if (SceneView != nullptr)
		{
			return SceneView->ViewFrustum.IntersectSphere(
						Actor->GetActorLocation(), Actor->GetSimpleCollisionRadius());
		}			 
	}

    return false
}
```

---

_[View the full topic](https://forums.unrealengine.com/t/perform-frustum-check/287524)._
