diff --git a/Source/Engine/Physics/Colliders/BoxCollider.cpp b/Source/Engine/Physics/Colliders/BoxCollider.cpp index cdc431d86..3473b5961 100644 --- a/Source/Engine/Physics/Colliders/BoxCollider.cpp +++ b/Source/Engine/Physics/Colliders/BoxCollider.cpp @@ -29,6 +29,8 @@ void BoxCollider::SetSize(const Vector3& value) void BoxCollider::DrawPhysicsDebug(RenderView& view) { + if (!view.CullingFrustum.Intersects(_sphere)) + return; if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger()) DebugDraw::DrawBox(_bounds, _staticActor ? Color::CornflowerBlue : Color::Orchid, 0, true); else diff --git a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp index 42ea9d492..916c2b34b 100644 --- a/Source/Engine/Physics/Colliders/CapsuleCollider.cpp +++ b/Source/Engine/Physics/Colliders/CapsuleCollider.cpp @@ -41,6 +41,8 @@ void CapsuleCollider::SetHeight(const float value) void CapsuleCollider::DrawPhysicsDebug(RenderView& view) { + if (!view.CullingFrustum.Intersects(_sphere)) + return; Quaternion rot; Quaternion::Multiply(_transform.Orientation, Quaternion::Euler(0, 90, 0), rot); const float scaling = _cachedScale.GetAbsolute().MaxValue(); diff --git a/Source/Engine/Physics/Colliders/MeshCollider.cpp b/Source/Engine/Physics/Colliders/MeshCollider.cpp index 8989ec3aa..185ac9be2 100644 --- a/Source/Engine/Physics/Colliders/MeshCollider.cpp +++ b/Source/Engine/Physics/Colliders/MeshCollider.cpp @@ -69,6 +69,8 @@ void MeshCollider::DrawPhysicsDebug(RenderView& view) { if (CollisionData && CollisionData->IsLoaded()) { + if (!view.CullingFrustum.Intersects(_sphere)) + return; if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger()) { Array* vertexBuffer; diff --git a/Source/Engine/Physics/Colliders/SphereCollider.cpp b/Source/Engine/Physics/Colliders/SphereCollider.cpp index 41983ec2c..1ff955c3d 100644 --- a/Source/Engine/Physics/Colliders/SphereCollider.cpp +++ b/Source/Engine/Physics/Colliders/SphereCollider.cpp @@ -29,6 +29,8 @@ void SphereCollider::SetRadius(const float value) void SphereCollider::DrawPhysicsDebug(RenderView& view) { + if (!view.CullingFrustum.Intersects(_sphere)) + return; if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger()) DebugDraw::DrawSphere(_sphere, _staticActor ? Color::CornflowerBlue : Color::Orchid, 0, true); else diff --git a/Source/Engine/Physics/Colliders/SplineCollider.cpp b/Source/Engine/Physics/Colliders/SplineCollider.cpp index e74b38c37..9cd6a9dba 100644 --- a/Source/Engine/Physics/Colliders/SplineCollider.cpp +++ b/Source/Engine/Physics/Colliders/SplineCollider.cpp @@ -90,6 +90,8 @@ bool SplineCollider::CanBeTrigger() const void SplineCollider::DrawPhysicsDebug(RenderView& view) { + if (!view.CullingFrustum.Intersects(_sphere)) + return; if (view.Mode == ViewMode::PhysicsColliders && !GetIsTrigger()) DebugDraw::DrawTriangles(_vertexBuffer, _indexBuffer, Color::CornflowerBlue, 0, true); else